overpower install
Writes. It prints the plan, with every destination and who reads it, before touching disk, and asks before writing when there is a terminal on the other side.
Command · overpower install
overpower install [--runtime <key>] [--skill <name>] [--bundle <name>] [--mcp <name>] [--ai-framework <name>] [--from <url>] [--global] [--force] [--yes] [--dry-run]
overpower install --skill "panlabs-python-standards" --runtime "claude-code"
The four selectors mix freely on a single line, and each takes a comma-separated value, a repeated flag, or both. When a line resolves to writes across more than one unit, they always happen in the same order, framework, then bundle, then individual artifact, then MCP server, and the most specific unit is written last.
In a terminal, a line that does not close a plan opens the wizard instead of simply refusing. It only opens the steps your line left open, always in the same order, and whatever it collects becomes exactly the same request a hand-typed flag line would have built.
Options
#--skillname
One pool skill, installed on its own. Takes the short form -s.
#--runtimekey
Who receives what is installed. Takes keys from a closed table of 77 runtimes, and has no default. What happens without it depends on there being a terminal: in one, a line that names something to install and no runtime opens the wizard on the step that was missing; off a terminal, it refuses with exit 2 rather than guessing. The exception is a line mixing a skill and an MCP server, which needs the runtime named in both cases.
#--bundlename
A bundle, expanded into the pool artifacts its manifest names. Takes the short form -b.
#--mcpname
One MCP server, grafted into the runtime's own configuration. Nothing is copied here; a key is added inside a document that is already yours.
#--ai-frameworkname
An AI Framework, installed whole. It has no short form on purpose, because -f is already --force on this same command.
#--fromurl
Installs from a GitHub repository, with no registration step. Once it is on the line, the embedded catalog is not consulted.
#--dry-runflag
Resolves everything, prints the plan, mirrors the real exit code and writes nothing, not even an empty directory.
#--yesflag
Skips the confirmation before the write. Takes the short form -y. Off a terminal it is accepted and does nothing, because there is no confirmation to skip there. In a terminal it has a second effect: a destination already taken in machine scope stops being a question and becomes a refusal, exit 3, where the line without -y would have asked and could have written. What lifts that refusal is --force, and only --force.
#--forceflag
Overwrites an existing destination in machine scope, without asking. In repository scope it has no effect, because git status already reveals and undoes there. Takes the short form -f.
#--globalflag
Writes under the home directory instead of the current repository. Takes the short form -g.