Skip to main content

CLI Reference

The root command:

mushroom-agent <command> [options]

Available commands:

CommandDescription
initInitialize local config, prompts, and sidecar files
accesskeyManage agent server accesskeys
startStart the local agent server, attach the current local device runtime, and open the browser UI
serveStart the agent service and API transports
nodeAttach device runtime and run hardware diagnostics
adminManage skills and tools

mushroom-agent init

Initialize the local environment under ~/.mushroom_agent/. The command starts an interactive wizard that writes text-mode or voice-mode model configuration into config.yaml.

mushroom-agent init
mushroom-agent init --root /custom/path
mushroom-agent init --force
mushroom-agent init --mode agent
mushroom-agent init --mode node --server-url ws://host:7860 --access-key <accesskey>

This creates the default generated files:

config.yaml
hardware.yaml
remote.yaml
logs/
skills/
prompts/
SOUL.md
AGENTS.md
IDENTITY.md
APPROACH_GREETING.md

The generated config.yaml starter only writes workspace.path as the local path anchor. Logs, the default skills/ directory, memory storage, and read / exec / write working directories are derived from that path at runtime. prompts/SOUL.md, prompts/AGENTS.md, and prompts/IDENTITY.md provide starter files for persona, rules, and identity. prompts/APPROACH_GREETING.md tunes camera-approach greeting style and is read only for that event. hardware.yaml configures local device inputs and outputs for start and node attach; remote.yaml configures remote node attachment for node attach.

Options:

OptionDescription
--rootCustom root directory (default: ~/.mushroom_agent)
--forceOverwrite existing generated config files
--mode agent|nodeagent writes the agent host config; node writes only remote attach config

mushroom-agent accesskey

Manage agent server accesskeys. Accesskey plaintext is printed only when an accesskey is created; config.yaml stores server.accesskeys with accesskey hashes and previews. Accesskeys do not expire automatically; use disable or delete to revoke one.

mushroom-agent accesskey create --name "Kitchen Pi" --node-id pi-kitchen
mushroom-agent accesskey list
mushroom-agent accesskey disable akid_xxx
mushroom-agent accesskey enable akid_xxx
mushroom-agent accesskey delete akid_xxx

accesskey list also reads accesskey_usage.yaml next to config.yaml and shows the most recent node that used each accesskey.

mushroom-agent start

Start the configured local agent server and attach the configured local device runtime from hardware.yaml. The browser UI is always enabled, the URL is printed, and the browser opens when the server is ready.

export MUSHROOM_SKIP_LANGFUSE_AUTH=1
mushroom-agent start
mushroom-agent start --host 127.0.0.1 --port 7860

Options:

OptionDescription
--configPath to config file
--hostUI server host (default: read from server.host)
--portUI server port (default: read from server.port)

The local UI includes the Local I/O view for configured audio, text, video, User/Agent voice text, latest video preview frame, command summaries, and hardware output events.

mushroom-agent serve

Start the agent service from config.yaml. This is the service/API entrypoint for HTTP chat, WebSocket chat, realtime voice, and function communication.

export MUSHROOM_SKIP_LANGFUSE_AUTH=1
mushroom-agent serve

Options:

OptionDescription
--configPath to config file
--communicationsComma-separated transports: http, websocket, func
--portHTTP port (default: 7860)

Browser UI

Use --ui for local browser testing. It mounts /i/chat, prints the URL, and opens the browser by default.

mushroom-agent serve --ui
OptionDescription
--uiMount the local browser test page at /i/chat

mushroom-agent node

Attach the configured device runtime to a remote service or run local hardware diagnostics. Single-machine startup is handled by mushroom-agent start.

node attach

Attach this device runtime to a remote agent service configured in remote.yaml.

# 1. On the agent host
mushroom-agent serve

# 2. On each device
mushroom-agent node attach

Options:

OptionDescription
--configPath to the local config file whose sibling remote.yaml should be used

node record-audio

Capture local audio for noise suppression A/B diagnostics.

mushroom-agent node record-audio --seconds 10

Options:

OptionDescription
--secondsRecording duration in seconds
--configPath to config file

mushroom-agent skills

Manage installed skills.

mushroom-agent skills list
mushroom-agent skills available
mushroom-agent skills install <name>
mushroom-agent skills install --source <repo-or-dir> --all

mushroom-agent admin

Advanced commands.

mushroom-agent admin tools list

Local vs Remote

serve --ui

Starts the service/API path and mounts /i/chat.

start

Agent and configured device runtime together in one process with the local UI.

serve + node attach

Start the agent on a host, then attach one or more configured devices to it.