--help describes the
commands and flags implemented by Mirage.
The host mirage CLI connects to and manages workspaces.
The programs on this page run in those workspaces through ws.shell(...),
mirage shell, or another access method.
Supported CLIs
All twelve are available in Python and TypeScript on Node. The TypeScript Node
package provides
hf and himalaya; the other ten live in core. These are
Mirage implementations of the listed command trees, not installed copies of
the upstream binaries. Each reference links its upstream project or service
API and documents its supported subset, limits and relevant licenses. See
compatibility and licenses
for the distinction between matching behavior and reusing code.
Register a CLI
Account CLIs need credentials but do not need a service mount:registerCli(name, spec, config) validates the config object with the spec’s schema.
git and search have no account config; register their GIT and SEARCH specs without the third argument.
Two installations of the same spec under different names can use different
accounts. Registration is a host operation, not an agent shell command.
The equivalent YAML entry is:
Discover functionality
man and --help render the registered spec. Unknown commands and flags are
refused; wording and exit codes follow the program’s declared style. Use each
reference for command-specific errors rather than assuming one exit code for
all CLIs.
Visible installed programs have read-only stubs under /usr/bin, so
which slack returns /usr/bin/slack. The stub describes the command without
exposing its config or credentials. Executing that path uses the same command
and policy checks. Changing PATH does not change Mirage’s virtual command
lookup; host and remote runtimes use their own executable paths.
Use CLIs with the VFS
Credentials may be shared between a CLI and a VFS, but neither registers or
locates the other. A CLI write uses service IDs, while file arguments resolve
against the session’s working directory and retain
PathSpec semantics.
After an account CLI write, Mirage expires the caches of every mount the CLI’s
client may reach, including answers a mount’s client keeps itself (a vector
store’s search results), so later reads can observe the change. A client that
names what it reaches narrows this: gh reaches only GitHub mounts on its API
base.
Mount modes and path policy govern workspace file operations. A read-only
Slack mount does not disable slack send-message; use command policy to
restrict service actions. The service’s own credentials and permissions still
apply to its API calls.