agentsclimarketplace

Proto skill

Skill Ruisi-Lu/proto-skill

Guide for proto — the pluggable multi-language version manager by moonrepo. Use when installing tools, pinning versions, configuring .prototools, writing plugins, or troubleshooting version detection.From its SKILL.md

Install
npx -y skills add Ruisi-Lu/proto-skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

3.4 KB, 828 tokens by cl100k_base, as published. Nobody here has run it

proto

Always check moonrepo.dev/docs/proto for the latest API.

proto is a pluggable, multi-language version manager (toolchain) built in Rust. It manages versions of programming languages and tooling (Node.js, Bun, Go, Python, Rust, Deno, …) via a single CLI, using a .prototools TOML config file for per-directory version pinning.

References

When to Use

SituationAction
Install / upgrade a language or toolproto install <tool> [version]
Pin a version for a projectproto pin <tool> <version>
Check for outdated toolsproto outdated
Set up shell activationproto activate <shell>
Add a custom tool via pluginEdit [plugins] in .prototools
Create a new pluginUse the non-WASM schema or WASM
Detect why wrong version is runningSee version detection order

Quick Reference

Install proto itself

# Windows (PowerShell admin)
irm https://moonrepo.dev/install/proto.ps1 | iex
# macOS / Linux / WSL
bash <(curl -fsSL https://moonrepo.dev/install/proto.sh)

Common commands

proto install node          # Install latest Node.js
proto install node 22       # Install specific version
proto install               # Install all tools in .prototools

proto pin node 22 --resolve # Pin resolved version locally
proto pin node 22 --to global

proto outdated              # Check for newer versions
proto upgrade               # Upgrade proto itself

proto run node -- --version # Run a tool (or just use shim: node --version)
proto versions node         # List installed versions
proto uninstall node 20     # Remove a specific version

Minimal .prototools

node = "22"
npm = "10"
go = "~1.22"
rust = "stable"

[settings]
auto-install = true
pin-latest = "local"

Shell activation (recommended over shims)

# Add to end of ~/.zshrc / ~/.bashrc
eval "$(proto activate bash)"   # bash
eval "$(proto activate zsh)"    # zsh
proto activate fish | source    # fish
# Add to $PROFILE
proto activate pwsh | Out-String | Invoke-Expression

Version Detection Order

proto resolves versions in this order (first match wins):

  1. Explicit CLI argument: proto run node 22.0.0
  2. Environment variable: PROTO_NODE_VERSION=22.0.0
  3. .prototools (traversing up from cwd)
  4. Tool-native files (.nvmrc, package.json#devEngines, etc.)
  5. Global pin at ~/.proto/.prototools

Key Paths

PathPurpose
~/.proto/proto home directory ($PROTO_HOME)
~/.proto/tools/<tool>/<version>/Installed tool binaries
~/.proto/shims/Shim wrappers (added to PATH)
~/.proto/bin/Symlinks for pinned tools
~/.proto/.prototoolsGlobal version pins
./.prototoolsProject-local version pins
~/.prototoolsUser-level config

What ships with it: 4 files

11.5 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 326,834. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.