CLI
The cos command creates profiles, chats in the terminal and runs the dashboard.
CommonOS: Hermes-style agents, one database, plugins
Usage: cos [OPTIONS] <COMMAND>
Commands:
profile Create, list and show profiles
chat Chat with one profile in the terminal
serve Run every profile and the dashboard
help Print this message or the help of the given subcommand(s)
Options:
-p, --profile <PROFILE> Profile to use (`cos -p household chat`)
--database-url <DATABASE_URL> [env: COMMONOS_DATABASE_URL=] [default: postgres:///commonos]
--mock Every profile uses the mock model: no API calls. Same as COMMONOS_PROVIDER=mock
-h, --help Print helpPrint the installed version with cos --version. To upgrade, run the install script again.
cos profile create
cos profile create <NAME> [--from <EXISTING>] [--tag key:value]... [--tool name]... [--provider anthropic|mock] [--model <id>]| Option | Does |
|---|---|
--from <name> |
Copy config.toml, SOUL.md and skills/ from an existing profile. Not its .env or memory. |
--tag key:value |
Add a tag. Repeat for more. Replaces copied tags. |
--tool name |
Limit the profile to this tool. Repeat for more. Replaces copied tools. |
--provider |
anthropic (default) or mock |
--model |
Required for a new anthropic profile. Mock profiles default to mock-1. |
Prints the new profile’s folder.
cos profile list
One line per profile: name, provider, model, tags.
Acme mock mock-1 client:acme
Household mock mock-1 area:householdcos profile show
cos profile show Household# /home/you/.commonos/profiles/Household
provider = "mock"
model = "mock-1"
tags = ["area:household"]The skills index follows when the profile has skills.
cos chat
cos -p Household chatChats with one profile in the terminal. The first message starts a new session.
| Input | Does |
|---|---|
| any text | Sends it and prints the reply |
/new |
Starts a new session |
/quit, /exit |
Leaves |
When a tool needs approval, cos prints <tool> <args> [y/N]. Only y, Y or yes approves.
cos serve
cos serve [--port 9120] [--approval-timeout 300]Runs every profile and the dashboard at http://127.0.0.1:<port>. It binds to loopback only. With no profiles it still starts, and warns. See Dashboard and API.
Logs
Logs go to stderr. Set RUST_LOG to change the level, for example RUST_LOG=debug cos serve or RUST_LOG=warn cos -p Household chat.