Skip to main content
The dimos CLI manages the full lifecycle of a DimOS robot stack — start, stop, inspect, and interact.

Global Options

Every GlobalConfig field is available as a CLI flag. Flags override environment variables, .env, and blueprint defaults.

Configuration Precedence

Values cascade (later overrides earlier):
  1. GlobalConfig default → simulation = False
  2. .env file → DIMOS_SIMULATION=true
  3. Environment variable → export DIMOS_SIMULATION=true
  4. Blueprint definition → .global_config(simulation=True)
  5. CLI flag → dimos --simulation run ...
Environment variables and .env values must be prefixed with DIMOS_.

Commands

dimos run

Start one or more robot blueprints. Built-in DimOS blueprints use bare names such as unitree-go2; external blueprints installed from Python packages use namespaced names such as my-robot-stack.go2.
External blueprint names are always fully qualified as <canonical-distribution-namespace>.<external-local-blueprint-name>. The namespace is derived from the installed Python distribution name by lowercasing it and collapsing runs of -, _, and . into -. The local blueprint name is the entry point name and must be lowercase kebab-case, for example keyboard-teleop. On macOS, heavy replay workloads can be unreliable over LCM UDP, so the default transport resolves to zenoh; you can still force either path explicitly with --transport=lcm or --transport=zenoh. When --daemon is used, the process:
  1. Builds and starts all modules (foreground — you see errors)
  2. Runs a health check (polls worker PIDs)
  3. Forks to background, writes a run registry entry
  4. Prints run ID, PID, log path, and MCP endpoint

Adding a New Blueprint

For an in-repository DimOS blueprint, define a module-level Blueprint variable and regenerate the built-in registry:
This auto-generates dimos/robot/all_blueprints.py for built-in blueprints. External packages do not edit that file; they expose blueprints through Python package entry points. See blueprints for composition and external publishing details.

dimos status

Show the running DimOS instance.
Reads the run registry, verifies the PID is alive, and displays: run ID, PID, blueprint name, uptime, log path, and MCP port.

dimos stop

Stop the running DimOS instance.
Default behavior: SIGTERM → wait 5s → SIGKILL. Cleans up the run registry entry.

dimos restart

Restart the running instance with the same original arguments.
Reads saved CLI args from the run registry, stops the current instance, then re-runs with the same arguments.

dimos log

View logs from a DimOS run.
All processes (main + workers) write to the same main.jsonl. Filter by module:

dimos list

List all available blueprints. Built-in and external blueprints are grouped separately; external names are read from installed package metadata without importing their target modules.
Example output:

dimos show-config

Print resolved GlobalConfig values and their sources.

dimos spy

Universal transport spy: a live table of every topic on every pubsub transport (LCM, Zenoh, or both), with per-topic message rate, bandwidth, size, and liveness.

Agent & MCP Commands

dimos agent-send

Send a text message to the running agent via LCM.
Works with any agentic blueprint — does not require MCP. Publishes directly to the /human_input LCM topic.

dimos mcp

Interact with the running MCP server. Requires a blueprint that includes McpServer — for example unitree-go2-agentic. The MCP server runs at http://localhost:9990/mcp by default (--mcp-port / --mcp-host to override). To add MCP to a blueprint, include both McpServer (exposes skills as HTTP tools) and McpClient.blueprint() (LLM agent that fetches tools from the server):

dimos mcp list-tools

List all available skills exposed by the MCP server.
Returns JSON with tool names, descriptions, and parameter schemas.

dimos mcp call

Call a skill by name.

dimos mcp status

Show MCP server status — PID, uptime, deployed modules, skill count.

dimos mcp modules

List deployed modules and their skills.

Standalone Tools

These are installed as separate entry points and can be run directly without the dimos prefix.

humancli

Interactive terminal for sending messages to the running agent.

lcmspy

Deprecated alias for dimos spy --transport lcm (the LCM-only view of the spy). Prefer dimos spy.

agentspy

Monitor agent messages and tool calls.

dtop

Live resource monitor TUI — CPU, memory, and process stats. Can also be activated during a run with --dtop:
Or run standalone:

rerun-bridge

Launch the Rerun visualization bridge as a standalone process (outside of a blueprint).
Also available as dimos rerun-bridge.

File Locations