The command line
xianyun does everything the MCP tools do, plus a few commands that only make sense in a terminal. If you drive Xianyun through an agent, this section is for the moments you step in yourself.
| Command | What it does | Over MCP |
|---|---|---|
up, down, destroy, status | Cluster lifecycle | Yes (down and destroy are gated) |
deploy, update | Install deployers, update repositories | Yes |
config validate, print, migrate | Work with the configuration | Yes |
ca trust, untrust, inspect | Dev CA | Yes (trust and untrust are gated) |
update-etc-hosts, set-kube-context | Host and kubeconfig setup | Yes (update-etc-hosts is gated) |
registry status, start, stop | Image cache | Yes |
logs, doctor, version | Inspection | Yes |
run | Edit mode reloaders, until interrupted | No |
kubectl, k9s, stern, tool | Run another program against the cluster | No |
The command reference has the full help text for every command, generated from the binary.
Options every command accepts
| Option | Meaning |
|---|---|
-c, --config-file <PATH> | Use this config file instead of searching upward from the working directory |
--log-format | text or json |
--log-level, --debug | debug, info, warn, or error; --debug is shorthand for --log-level=debug |
--log-color | true or false |
--log-output | stderr, or a file path |
--log-source | Include the source location in log lines |
--no-cache | Meant to disable remote config fragment caching. It’s currently a no-op because the cache isn’t wired in (GAP-005). |
Logs go to standard error, so standard output stays clean for the command’s real result.
Environment variables
| Variable | Effect |
|---|---|
XIANYUN_NO_CACHE | Same as --no-cache. CAPRONI_NO_CACHE is also read. |
KUBECONFIG | Where set-kube-context writes by default, and what xianyun kubectl and friends override for the project’s cluster |
Configuration values can also read environment variables; see Variables.
Files and directories
| Path | Holds |
|---|---|
xianyun.yaml, xianyun.local.yaml, xianyun-project.yaml | Configuration (the caproni.* names also work) |
~/.local/share/xianyun/<profile>/pki/ | The dev CA |
~/.local/share/xianyun/registry/ | The managed registry cache’s config, data, and log |
~/.kube/config.caproni.bak | The backup set-kube-context writes |
<profile> defaults to xianyun. An existing ~/.local/share/caproni is read as a fallback.
Exit codes
0 means success and anything else is an error. Commands return errors as values and only the entry point turns them into a process exit code.