From mise-toolkit
Adding a tool to the mise registry by creating registry/<name>.toml. This is the 90% case for "add support for X to mise" — usually a one-file PR pointing at an existing backend (aqua > github/gitlab > pipx/npm/cargo/go/dotnet). Use when contributing a new tool short-name to jdx/mise.
npx claudepluginhub ray-manaloto/claude-code-marketplace --plugin mise-toolkitThis skill uses the workspace's default tool permissions.
When users want to install a tool with `mise use <name>` instead of `mise use <backend>:<owner>/<repo>`, that short-name lives in `registry/<name>.toml`.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
When users want to install a tool with mise use <name> instead of mise use <backend>:<owner>/<repo>, that short-name lives in registry/<name>.toml.
This is almost always the right answer for new tool support. Don't write a new backend.
Use the official preference order from docs/registry.md:
aqua: — first choice. Check the aqua-registry for the tool. If it exists, point at it.github: / gitlab: / forgejo: — for tools released on the respective forge but not in aqua.pipx: — Python tools.npm: — Node tools.go: / cargo: / dotnet: — last resort (compiles from source).vfox: or asdf: for new entries — supply-chain reasons.You can list multiple backends in priority order so users on different setups get the best one available:
backends = ["aqua:owner/repo", "github:owner/repo"]
# registry/<tool-name>.toml
backends = ["aqua:owner/repo", "github:owner/repo"]
test = ["<tool-name> --version", "<expected substring of output>"]
description = "One-line description of the tool"
backendsAn array, ordered by priority. mise tries them in order; the first that resolves the requested version wins.
For aqua, the value is aqua:<aqua-registry-pkg-path> — the path used in the aqua-registry, e.g., aqua:cli/cli for the GitHub CLI.
For github, it's github:<owner>/<repo>. Same for gitlab/forgejo.
For language ecosystems: pipx:<pypi-name>, npm:<npm-package>, cargo:<crates-name>, go:<go-module-path>.
testA two-element array used by the registry e2e test (e2e/cli/test_registry). The first element is a command to run after installing the tool; the second is a substring that must appear in the output. Example:
test = ["ripgrep --version", "ripgrep"]
Use the simplest possible smoke test — --version, --help, or similar. Don't write tests that need a working internet connection beyond the install itself.
descriptionUsed for mise registry <name> and mise search. Keep it under 80 characters.
aliases = ["alternative-name"]
os = ["linux", "macos"]
Let's say you want to add bun-mise-toolkit-example, a fictional tool released as a binary on GitHub at myorg/example. It exists in aqua at myorg/example.
# registry/bun-mise-toolkit-example.toml
backends = [
"aqua:myorg/example",
"github:myorg/example",
]
test = ["bun-mise-toolkit-example --version", "v"]
description = "Example tool used in mise-toolkit docs"
ls registry/<name>.toml and mise registry <name>.mise install <name>@latest
<name> --version # should match your `test` substring
mise run test:e2e cli/test_registry
registry: add <name>
No scope. Same format for both new tools and fixes to existing entries.node vs nodejs), use aliases rather than separate files.os = ["windows"] (or whichever) to the registry entry.vfox: or asdf: backends to a new entry.aliases instead).test command that requires network beyond the install.mise-contrib-add-backend — only for genuinely new install ecosystemsmise-backends-overview — backend preference rationalemise.jdx.dev/registry.htmlregistry/ directory in jdx/mise — copy from a similar tool