The CLI is designed for automation and scripting (CI/CD pipelines, batch processing,
programmatic control). For interactive terminal experiences, consider tools like Claude
Code or similar TUIs.
mux run executes a single request to completion and exits.
GitHub Actions Guide
Learn how to use
mux run in CI/CD pipelinesInstallation
The CLI is available via npm and can be run directly withnpx:
npx mux is especially convenient for CI/CD pipelines where you don’t want to manage a global installation.
mux run
Execute a one-off agent task:
Options
| Option | Short | Description | Default |
|---|---|---|---|
--dir <path> | -d | Project directory | Current directory |
--model <model> | -m | Model to use (e.g., anthropic:claude-sonnet-4-5) | Default model |
--runtime <runtime> | -r | Runtime: local, worktree, ssh <host>, or docker <image> | local |
--mode <mode> | Agent mode: plan or exec | exec | |
--thinking <level> | -t | Thinking level: off, low, medium, high | medium |
--budget <usd> | -b | Stop when session cost exceeds budget (USD) | No limit |
--experiment <id> | -e | Enable experiment (repeatable) | None |
--json | Output NDJSON for programmatic use | Off | |
--quiet | -q | Only output final result | Off |
Runtimes
local(default): Runs directly in the specified directory. Best for one-off tasks.worktree: Creates an isolated git worktree under~/.mux/src. Useful for parallel work.ssh <host>: Runs on a remote machine via SSH. Example:--runtime "ssh user@myserver.com"docker <image>: Runs in a Docker container. Example:--runtime "docker node:20"
Output Modes
- Default (TTY): Human-readable streaming with tool call formatting
--json: NDJSON streaming - each line is a JSON object with event data--quiet: Suppresses streaming output, only shows final assistant response
Examples
mux server
Start the HTTP/WebSocket server for remote access (e.g., from mobile devices):
--host <host>- Host to bind to (default:localhost)--port <port>- Port to bind to (default:3000)--auth-token <token>- Optional bearer token for authentication--add-project <path>- Add and open project at the specified path
mux desktop
Launch the desktop app. This is automatically invoked when running the packaged app or via electron .:
mux with no arguments under Electron, the desktop app launches automatically.
mux --version
Print the version and git commit:
Debug Environment Variables
These environment variables help diagnose issues with LLM requests and responses.| Variable | Purpose |
|---|---|
MUX_DEBUG_LLM_REQUEST | Set to 1 to log the complete LLM request (system prompt, messages, tools, provider options) as formatted JSON to the debug logs. Useful for diagnosing prompt issues. |
systemMessage: The full system prompt sent to the modelmessages: All conversation messages in the requesttools: Tool definitions with descriptions and input schemasproviderOptions: Provider-specific options (thinking level, etc.)mode,thinkingLevel,maxOutputTokens,toolPolicy