From the terminal: it's just mise
An AI setup is one mise config file. Apply, check, share, and remove it with the mise commands you already have.
There is no powermise command. An AI setup compiles to one ordinary mise
config file, so everything you’d do with it from a terminal — or a script, CI,
or your dotfiles — is plain mise. AI Setups need mise 2026.10 or newer.
Where a setup lives
Section titled “Where a setup lives”Applying a setup in the app writes one file into your mise config directory:
~/.config/mise/conf.d/powermise-<name>.toml(If you set MISE_CONFIG_DIR or XDG_CONFIG_HOME, it goes there instead,
the same place mise looks.) It looks like this:
# Generated by powermise for the AI setup "engineering-agents". Do not edit:# powermise rewrites this file when the setup changes. Remove the setup in# powermise (or delete this file) to remove it from mise.
[tools]claude-code = "2.1.251"node = "26.8.1""npm:@openai/codex" = "0.151.0"ripgrep = "15.2.0"
[bootstrap.packages]"brew-cask:claude" = "latest"(That’s on a Mac with Include desktop apps on: the Claude app comes from Homebrew Cask. On Linux, packages like git come from apt instead.)
mise always reads files in conf.d, so there’s no environment to switch on:
the setup’s tools work in every terminal where mise is activated. Homebrew
can’t install a specific version, so Homebrew packages are always latest.
mise installs Homebrew packages and casks itself — Homebrew doesn’t need to be
installed.
mise doesn’t put the commands from Homebrew formulas on your PATH, so a
setup that declares brew: formulas also adds each formula’s own folder:
[bootstrap.packages]"brew:hermes-agent" = "latest"
[env]_.path = ["/opt/homebrew/opt/hermes-agent/bin"]That’s /opt/homebrew on an Apple Silicon Mac and /home/linuxbrew/.linuxbrew
on Linux and WSL. (mise doesn’t install Homebrew formulas on Intel Macs or
Windows.) It isn’t all of /opt/homebrew/bin, which would also put Homebrew’s
copies of the formulas’ dependencies — its python3 or node — ahead of your
mise tools. Casks are apps, so they need nothing on PATH.
The setup itself — which harnesses you picked — is saved separately, in
~/.config/powermise/selections/<name>.toml.
Apply it
Section titled “Apply it”mise bootstrap --yes --only packages,toolsThis is exactly what Apply runs. --only packages,tools keeps the run to
installing things, so any dotfiles, services, or other [bootstrap] settings
in your own config aren’t touched. To see what it would do first:
mise bootstrap planmise bootstrap installs everything your mise config asks for, not only the
setup’s — the app’s review sheet lists anything else it would pick up.
Check it
Section titled “Check it”mise bootstrap status # packages and tools: installed or missingmise ls # tools, and which config file set each oneYour own config wins
Section titled “Your own config wins”The setup never edits your config.toml. If your config already pins a tool
the setup also declares — say jq = "1.7" — mise uses yours, and the app
says so on the setup’s page. To change a version the setup picked, set it in
your own config rather than editing the generated file.
Remove it
Section titled “Remove it”Delete the file — that’s all Remove Setup does to mise:
rm ~/.config/mise/conf.d/powermise-engineering-agents.tomlAnything it installed stays on the computer. To delete tool versions no config uses anymore:
mise prune --toolsHomebrew, apt, winget, and Scoop packages stay installed; remove them with their own package manager if you no longer want them.
Other machines, dotfiles, and CI
Section titled “Other machines, dotfiles, and CI”The generated file is plain mise config, so it travels like any other:
- Another computer: copy the file into that machine’s
conf.dand run the apply command. Or copy the setup from~/.config/powermise/selections/and apply it in the app there — it recompiles for that machine’s platform. - Dotfile managers like chezmoi or yadm: manage
~/.config/mise/conf.d/powermise-*.tomllike your other mise files. - CI: commit the file next to your project’s mise config, or write it into
$MISE_CONFIG_DIR/conf.d/in a setup step, then run the apply command.
A setup compiled on macOS declares Homebrew packages; one for Windows declares winget or Scoop packages. Compile for the platform you’ll apply on — the setup editor’s Preview for menu shows each one.
What powermise writes
Section titled “What powermise writes”conf.d/powermise-<name>.toml, only when you click Apply. It’s written atomically and never follows a symlink.conf.d/powermise-<name>.files/, beside it, when the setup has MCP servers: one source file per agent, which the fragment’s[dotfiles]merge entries point at.- Its own folder,
~/.config/powermise/: saved setups and app state.
It never edits your own mise config files, and it never runs mise with
MISE_YES, which would make mise trust configs on its own.
Plugins
Section titled “Plugins”Plugins install with the agent’s own command, run through mise x so a
mise-installed agent is found:
mise x -- claude plugin install github@anthropic-plugin-directory --scope usermise x -- codex plugin add github@openai-curated-remotemise x -- gemini extensions install https://github.com/gemini-cli-extensions/code-review --consentApplying a setup runs these after mise bootstrap for plugins that aren’t
installed yet. Most Codex plugins sign in to a service while installing, so
powermise opens those in your terminal instead. Removing a setup leaves its
plugins installed, like its tools; remove them in Agents › Plugins.
MCP servers
Section titled “MCP servers”An agent keeps its MCP servers in its own settings file, which it also writes
to — ~/.claude.json, ~/.codex/config.toml, ~/.gemini/settings.json, and
so on. A setup adds its servers with a mise
merge entry, which owns only
the keys in its source and leaves the rest of the file alone:
[dotfiles."~/.claude.json/powermise-work"]source = "powermise-work.files/claude-code.json"merge = trueMost of these files are in the same place on every platform. The ones in an app’s own folder move:
| Agent | macOS | Windows | Linux and WSL |
|---|---|---|---|
| Claude desktop app | ~/Library/Application Support/Claude/claude_desktop_config.json | ~/AppData/Roaming/Claude/claude_desktop_config.json | — (no Linux app) |
| VS Code | ~/Library/Application Support/Code/User/mcp.json | ~/AppData/Roaming/Code/User/mcp.json | ~/.config/Code/User/mcp.json |
| Cline | cline_mcp_settings.json under VS Code’s folder above | same | same |
Zed’s settings file can hold comments, which mise won’t merge into, so add servers there in Zed’s Agent Panel settings.
Applying the setup runs mise dotfiles apply for just those files after
mise bootstrap. Servers mise installs run as
<path to mise> x npm:@upstash/context7-mcp@4.4.2 -- context7-mcp, so desktop
apps that don’t see your shell’s PATH still find them; remote servers are a
URL.
mise never removes merged keys on its own, so when a setup drops a server, or you remove the setup, powermise takes exactly the servers it added back out of each file — by name, keeping the rest of the file as it was. A file it can’t parse (JSON with comments, say) is left alone. This needs mise 2026.10 or newer.