Skip to content

Command reference

Muaz — a modular LLM agent platform.

Running bare muaz opens the web UI in your browser (the primary surface); use muaz chat for the terminal REPL, muaz run "<prompt>" for one-shot scripted turns, or a subcommand below.

Usage: muaz [COMMAND]

  • chat — Start an interactive chat session
  • run — Run one non-interactive turn and print the result (scriptable)
  • pipeline — Run or list multi-agent pipelines without entering the REPL
  • agents — Manage agents
  • skills — Manage Agent Skills
  • config — View and edit global configuration
  • models — Manage models: provider profiles, the default, and per-agent bindings (all in models.yaml)
  • auth — Store a provider profile’s API key securely (hidden prompt). Use this to authenticate before starting chat when the key isn’t set yet
  • mcp — Manage MCP server registrations
  • runtime — Manage the bundled MCP runtimes (Node.js, uv) muaz downloads on demand
  • plugins — Install and manage plugins (bundled agents, skills, pipelines, prompts)
  • doctor — Diagnose the installation: config, runtimes, and MCP server health
  • audit — Inspect the append-only security audit log (~/.muaz/audit/audit.jsonl)
  • gateway — Start the web gateway server with a browser-based UI

Start an interactive chat session

Usage: muaz chat [OPTIONS]

  • -a, --agent <AGENT> — Agent to load (default: value in config.yaml)
  • --incognito — Do not save session to disk
  • --session <SESSION> — Resume an existing session by ID
  • --remember-approvals — Persist “approve for session” grants into the session file and restore them when this session is resumed

Run one non-interactive turn and print the result (scriptable)

Reads additional input from stdin when piped, e.g.: git diff | muaz run “review this change” Approval policy applies, but anything that would prompt is denied.

Usage: muaz run [OPTIONS] [PROMPT]

  • <PROMPT> — The prompt (combined with piped stdin, if any)
  • -a, --agent <AGENT> — Agent to use (default: value in config.yaml)

  • --session <SESSION> — Resume an existing session by ID (the turn is appended to it)

  • --output <OUTPUT> — Output format: text (final response only) or json (response, session id, usage, and tool calls)

    Default value: text

    Possible values:

    • text: Print only the final response text
    • json: Print a JSON object with text, session id, usage, and tool calls
  • --incognito — Do not save the session

Run or list multi-agent pipelines without entering the REPL

Usage: muaz pipeline <COMMAND>

  • run — Run a pipeline with the given input
  • list — List available pipelines

Run a pipeline with the given input

Usage: muaz pipeline run <NAME> [INPUT]

  • <NAME> — Pipeline name (file stem in ~/.muaz/plugins/local/pipelines)
  • <INPUT> — Input message (read from stdin when omitted and piped)

List available pipelines

Usage: muaz pipeline list

Manage agents

Usage: muaz agents <COMMAND>

  • list — List all available agents
  • create — Create a new agent interactively
  • show — Show the full config of an agent
  • edit — Open an agent config in $EDITOR

List all available agents

Usage: muaz agents list

Create a new agent interactively

Usage: muaz agents create

Show the full config of an agent

Usage: muaz agents show <NAME>

  • <NAME> — Agent name

Open an agent config in $EDITOR

Usage: muaz agents edit <NAME>

  • <NAME> — Agent name

Manage Agent Skills

Usage: muaz skills <COMMAND>

  • list — List all discovered skills
  • create — Create a new skill interactively
  • show — Show the SKILL.md of a skill
  • edit — Open a skill’s SKILL.md in $EDITOR

List all discovered skills

Usage: muaz skills list

Create a new skill interactively

Usage: muaz skills create

Show the SKILL.md of a skill

Usage: muaz skills show <NAME>

  • <NAME> — Skill name

Open a skill’s SKILL.md in $EDITOR

Usage: muaz skills edit <NAME>

  • <NAME> — Skill name

View and edit global configuration

Usage: muaz config [COMMAND]

  • show — Show the current config.yaml
  • edit — Edit config fields interactively
  • validate — Check config.yaml, agents, mcp.json, and pipelines for problems

Show the current config.yaml

Usage: muaz config show

Edit config fields interactively

Usage: muaz config edit

Check config.yaml, agents, mcp.json, and pipelines for problems

Usage: muaz config validate

Manage models: provider profiles, the default, and per-agent bindings (all in models.yaml)

Usage: muaz models [COMMAND]

  • list — List profiles, the default, and per-agent bindings
  • show — Show a profile’s full config (secrets stay as ${ENV_VAR})
  • set — Create or replace a provider profile
  • set-model — Change just the default model of an existing profile
  • remove — Remove a provider profile
  • default — Set the global default provider profile (use —clear to unset)
  • bind — Bind an agent to a profile and/or a specific model
  • unbind — Remove an agent’s binding (it falls back to the default)

List profiles, the default, and per-agent bindings

Usage: muaz models list

Show a profile’s full config (secrets stay as ${ENV_VAR})

Usage: muaz models show <NAME>

  • <NAME> — Profile name

Create or replace a provider profile

Usage: muaz models set [OPTIONS] --type <TYPE> --model <MODEL> <NAME>

  • <NAME> — Profile name
  • --type <TYPE> — Provider type: anthropic | openai-compatible | gemini | bedrock | ollama
  • --model <MODEL> — Default model identifier (required)
  • --base-url <BASE_URL> — Base URL (openai-compatible / ollama)
  • --api-key <API_KEY> — API key, literal or ${ENV_VAR} (anthropic / openai-compatible / gemini)
  • --region <REGION> — AWS region (bedrock)
  • --aws-profile <AWS_PROFILE> — AWS credentials profile (bedrock)
  • --timeout-secs <TIMEOUT_SECS> — Request timeout in seconds

Change just the default model of an existing profile

Usage: muaz models set-model <NAME> <MODEL>

  • <NAME> — Profile name
  • <MODEL> — New default model identifier

Remove a provider profile

Usage: muaz models remove <NAME>

  • <NAME> — Profile name

Set the global default provider profile (use —clear to unset)

Usage: muaz models default [OPTIONS] [PROFILE]

  • <PROFILE> — Profile name (from models.yaml)
  • --clear — Clear the default instead of setting it

Bind an agent to a profile and/or a specific model

Usage: muaz models bind [OPTIONS] <AGENT>

  • <AGENT> — Agent name (or @plugin/agent)
  • --profile <PROFILE> — Provider profile to bind (from models.yaml)
  • --model <MODEL> — Model override applied on top of the resolved profile

Remove an agent’s binding (it falls back to the default)

Usage: muaz models unbind <AGENT>

  • <AGENT> — Agent name (or @plugin/agent)

Store a provider profile’s API key securely (hidden prompt). Use this to authenticate before starting chat when the key isn’t set yet

Usage: muaz auth [PROFILE]

  • <PROFILE> — Provider profile to authenticate (defaults to the default binding)

Manage MCP server registrations

Usage: muaz mcp <COMMAND>

  • install — Register an MCP server (npm package, uvx package, or HTTP URL)
  • add-config — Import one or more servers from a pasted/standard MCP config ({ "mcpServers": { … } }). Reads from a file, or stdin when PATH is -
  • list — List all registered MCP servers
  • remove — Remove a registered MCP server by name
  • connectors — Browse or search the connector catalog (built-in + registry + overlay)
  • add — Add a catalog connector to mcp.json by id (then connect if it’s OAuth)
  • connect — Authorize an OAuth MCP server in the browser and store its tokens
  • logout — Clear stored OAuth tokens for a server

Register an MCP server (npm package, uvx package, or HTTP URL)

Usage: muaz mcp install [OPTIONS] <SPEC> [ARGS]...

  • <SPEC> — Package name (@scope/pkg, mcp-server-*) or http(s):// URL
  • <ARGS> — Extra arguments passed to the server process (stdio only)
  • --name <NAME> — Override the derived server name
  • --uvx — Use uvx (uv tool run) instead of npx
  • --env <KEY=VALUE> — Environment variable for the server, as KEY=VALUE (repeatable). Values may be literals or ${VAR} references resolved at connect time
  • --header <KEY=VALUE> — HTTP header for an http server, as KEY=VALUE (repeatable). Values may be literals or ${VAR} references resolved at connect time

Import one or more servers from a pasted/standard MCP config ({ "mcpServers": { … } }). Reads from a file, or stdin when PATH is -

Usage: muaz mcp add-config <PATH>

  • <PATH> — Path to a JSON config file, or - to read from stdin

List all registered MCP servers

Usage: muaz mcp list

Remove a registered MCP server by name

Usage: muaz mcp remove <NAME>

  • <NAME> — Logical name of the server to remove

Browse or search the connector catalog (built-in + registry + overlay)

Usage: muaz mcp connectors [QUERY]

  • <QUERY> — Optional search query over connector id, name, and description

Add a catalog connector to mcp.json by id (then connect if it’s OAuth)

Usage: muaz mcp add [OPTIONS] <CONNECTOR_ID>

  • <CONNECTOR_ID> — Connector id from muaz mcp connectors
  • --name <NAME> — Override the registered server name (defaults to the connector id)

Authorize an OAuth MCP server in the browser and store its tokens

Usage: muaz mcp connect [OPTIONS] <NAME>

  • <NAME> — Logical name of the registered http + oauth server
  • --client-id <CLIENT_ID> — Pre-registered OAuth client id (required for providers without dynamic client registration, e.g. Google, Slack)
  • --client-secret <CLIENT_SECRET> — Pre-registered OAuth client secret, if the provider issues one

Clear stored OAuth tokens for a server

Usage: muaz mcp logout <NAME>

  • <NAME> — Logical name of the server to sign out

Manage the bundled MCP runtimes (Node.js, uv) muaz downloads on demand

Usage: muaz runtime <COMMAND>

  • list — Show managed runtime status (installed / pinned versions)
  • install — Download a runtime now (node | uv; default: those your MCP servers need)
  • update — Re-download installed runtimes (refresh pinned versions after upgrading muaz)
  • clean — Remove all downloaded runtimes

Show managed runtime status (installed / pinned versions)

Usage: muaz runtime list

Download a runtime now (node | uv; default: those your MCP servers need)

Usage: muaz runtime install [NAME]

  • <NAME> — Runtime to install: node or uv (omit to install what’s needed)

Re-download installed runtimes (refresh pinned versions after upgrading muaz)

Usage: muaz runtime update

Remove all downloaded runtimes

Usage: muaz runtime clean

Install and manage plugins (bundled agents, skills, pipelines, prompts)

Usage: muaz plugins <COMMAND>

  • install — Install a plugin from a local .zip path, or by name from the registry (optionally pinned as name@version)
  • search — Search the remote plugin registry
  • list — List installed plugins (enabled/disabled, trusted)
  • show — Show a plugin’s manifest and contents
  • enable — Enable a disabled plugin
  • disable — Disable a plugin without uninstalling it
  • uninstall — Uninstall a plugin (deletes its directory)
  • update — Check for and apply plugin updates from the registry

Install a plugin from a local .zip path, or by name from the registry (optionally pinned as name@version)

Usage: muaz plugins install [OPTIONS] <TARGET>

  • <TARGET> — Path to a .zip, or a registry plugin name (name or name@version)
  • --force — Overwrite an existing plugin with the same id

Search the remote plugin registry

Usage: muaz plugins search <QUERY>

  • <QUERY> — Substring to match against plugin names and descriptions

List installed plugins (enabled/disabled, trusted)

Usage: muaz plugins list

Show a plugin’s manifest and contents

Usage: muaz plugins show <ID>

  • <ID> — Plugin id

Enable a disabled plugin

Usage: muaz plugins enable <ID>

  • <ID> — Plugin id

Disable a plugin without uninstalling it

Usage: muaz plugins disable <ID>

  • <ID> — Plugin id

Uninstall a plugin (deletes its directory)

Usage: muaz plugins uninstall <ID>

  • <ID> — Plugin id

Check for and apply plugin updates from the registry

Usage: muaz plugins update [OPTIONS] [ID]

  • <ID> — Plugin id to update; omit to update all with available updates
  • --check — Only report available updates without installing them

Diagnose the installation: config, runtimes, and MCP server health

Usage: muaz doctor

Inspect the append-only security audit log (~/.muaz/audit/audit.jsonl)

Usage: muaz audit <COMMAND>

  • tail — Show the most recent audit events
  • export — Print the entire audit log (raw JSON Lines) to stdout

Show the most recent audit events

Usage: muaz audit tail [OPTIONS]

  • -c, --count <COUNT> — How many events to show (default 20)

    Default value: 20

  • --json — Emit raw JSON Lines instead of a formatted table

Print the entire audit log (raw JSON Lines) to stdout

Usage: muaz audit export

Start the web gateway server with a browser-based UI

Usage: muaz gateway [OPTIONS]

  • -p, --port <PORT> — Port to listen on (default: 7878)

    Default value: 7878

  • --host <HOST> — Address to bind. Defaults to loopback (127.0.0.1); pass 0.0.0.0 to expose the agent runtime to the network (prints a warning)

    Default value: 127.0.0.1

  • --token <TOKEN> — Shared secret required on every request. Defaults to $MUAZ_GATEWAY_TOKEN, else a freshly generated token printed at startup

  • --readonly — Read-only mode: serve the UI and all reads, but refuse every state-changing request (no chat turns, no config/plugin/connector edits). For auditors and demos