dimos CLI manages the full lifecycle of a DimOS robot stack — start, stop, inspect, and interact.
Global Options
EveryGlobalConfig field is available as a CLI flag. Flags override environment variables, .env, and blueprint defaults.
| Flag | Type | Default | Description |
|---|---|---|---|
--robot-ip | TEXT | None | Robot IP address |
--robot-ips | TEXT | None | Multiple robot IPs |
--simulation / --no-simulation | bool | False | Enable MuJoCo simulation |
--replay / --no-replay | bool | False | Use recorded replay data |
--replay-db | TEXT | go2_bigoffice | Replay memory2 SQLite database name |
--new-memory / --no-new-memory | bool | False | Clear persistent memory on start |
--viewer | rerun|none | rerun | Visualization backend |
--rerun-open | native|web|both|none | native | How to open the Rerun viewer |
--rerun-web / --no-rerun-web | bool | False | Serve the Rerun web viewer |
--n-workers | INT | 2 | Number of forkserver workers |
--memory-limit | TEXT | auto | Rerun viewer memory limit |
--mcp-port | INT | 9990 | MCP server port |
--mcp-host | TEXT | 127.0.0.1 | MCP server bind address |
--dtop / --no-dtop | bool | False | Enable live resource monitor overlay |
--obstacle-avoidance / --no-obstacle-avoidance | bool | True | Enable obstacle avoidance |
--detection-model | qwen|moondream | moondream | Vision model for object detection |
--robot-model | TEXT | None | Robot model identifier |
--robot-width | FLOAT | 0.3 | Robot width in meters |
--robot-rotation-diameter | FLOAT | 0.6 | Robot rotation diameter in meters |
--planner-strategy | simple|mixed | simple | Navigation planner strategy |
--planner-robot-speed | FLOAT | None | Planner robot speed override |
--mujoco-camera-position | TEXT | None | MuJoCo camera position |
--mujoco-room | TEXT | None | MuJoCo room model |
--mujoco-room-from-occupancy | TEXT | None | Generate room from occupancy map |
--mujoco-global-costmap-from-occupancy | TEXT | None | Generate costmap from occupancy |
--mujoco-global-map-from-pointcloud | TEXT | None | Generate map from point cloud |
--mujoco-start-pos | TEXT | -1.0, 1.0 | MuJoCo robot start position |
--mujoco-steps-per-frame | INT | 7 | MuJoCo simulation steps per frame |
Configuration Precedence
Values cascade (later overrides earlier):GlobalConfigdefault →simulation = False.envfile →DIMOS_SIMULATION=true- Environment variable →
export DIMOS_SIMULATION=true - Blueprint definition →
.global_config(simulation=True) - CLI flag →
dimos --simulation run ...
.env values must be prefixed with DIMOS_.
Commands
dimos run
Start a robot blueprint.
| Option | Description |
|---|---|
--config -c | Path to read JSON config file from (options can be overriden with -o |
--daemon, -d | Run in background (double-fork, health check, writes run registry) |
--disable | Module class names to exclude from the blueprint |
--option, -o | Provide an configuration option to the blueprint (e.g. -o voxelgridmapper.voxel_size=1 |
--help | Display the available configuration options that can be changed with -o or the config file |
--daemon is used, the process:
- Builds and starts all modules (foreground — you see errors)
- Runs a health check (polls worker PIDs)
- Forks to background, writes a run registry entry
- Prints run ID, PID, log path, and MCP endpoint
Adding a New Blueprint
Define a module-levelBlueprint variable and register it in all_blueprints.py:
dimos status
Show the running DimOS instance.
dimos stop
Stop the running DimOS instance.
| Option | Description |
|---|---|
--force, -f | Immediate SIGKILL (skip graceful SIGTERM) |
dimos restart
Restart the running instance with the same original arguments.
| Option | Description |
|---|---|
--force, -f | Force kill before restarting |
dimos log
View logs from a DimOS run.
| Option | Description |
|---|---|
--follow, -f | Follow log output (like tail -f) |
--lines, -n | Number of lines to show (default: 50) |
--all, -a | Show full log |
--json | Raw JSONL output (for piping to jq) |
--run, -r | Specific run ID (defaults to most recent) |
main.jsonl. Filter by module:
dimos list
List all available blueprints.
dimos show-config
Print resolved GlobalConfig values and their sources.
Agent & MCP Commands
dimos agent-send
Send a text message to the running agent via LCM.
/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.
dimos mcp call
Call a skill by name.
| Option | Description |
|---|---|
--arg, -a | Arguments as key=value pairs (repeatable) |
--json-args, -j | Arguments as a JSON string |
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 thedimos prefix.
humancli
Interactive terminal for sending messages to the running agent.
lcmspy
Monitor LCM messages in real time.
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:
rerun-bridge
Launch the Rerun visualization bridge as a standalone process (outside of a blueprint).
dimos rerun-bridge.
File Locations
| Path | Contents |
|---|---|
~/.local/state/dimos/runs/<run-id>.json | Run registry (PID, blueprint, args, ports). Used by status/stop/restart. Cleaned up when processes exit. |
~/.local/state/dimos/logs/<run-id>/main.jsonl | Structured logs (main process + all workers) |
.env | Local config overrides (DIMOS_ROBOT_IP=192.168.123.161) |
