Skip to content

CLI Commands ​

GolemBot provides a set of CLI commands for managing and running your assistant.

golembot init ​

Initialize a new assistant directory.

bash
golembot init [-e <engine>] [-n <name>] [-r <role>]
OptionDescriptionDefault
-e, --engine <engine>Engine type (cursor, claude-code, opencode, codex)cursor
-n, --name <name>Assistant nameInteractive prompt
-r, --role <role>Persona role (e.g. "product analyst", "customer support")—

Creates golem.yaml, skills/ (with built-in skills: general, im-adapter, multi-bot), AGENTS.md, .golem/, and .gitignore. When --role is provided, it writes persona.role into golem.yaml — this role is propagated to fleet registration so peer bots can see each other's specializations.

golembot run ​

Start an interactive REPL conversation.

bash
golembot run [-d <dir>] [--api-key <key>]
OptionDescriptionDefault
-d, --dir <dir>Assistant directory.
--api-key <key>Agent API keyFrom env

REPL slash commands:

CommandDescription
/helpShow available commands
/statusShow current engine, model, and skills
/engine [name]Show or switch engine
/model [list|name]Show, list available, or switch model
/skillList installed skills
/stopStop the current running task
/cron listList all scheduled tasks and their status
/cron run <id>Trigger a scheduled task immediately
/cron enable <id>Enable a scheduled task
/cron disable <id>Disable a scheduled task
/cron del <id>Delete a scheduled task
/cron history <id>Show recent execution history for a task
/resetClear the current session and history
/quit, /exitExit the REPL

These slash commands also work in IM channels (Feishu, Telegram, Slack, etc.) and via the HTTP API (POST /chat with a slash command as the message returns a JSON response instead of an SSE stream).

/stop cancels the current in-flight task for the session without clearing history. Use /reset if you want to clear the session and its accumulated history.

Supports multi-line input with """ delimiters. REPL turns now resolve through the same terminal completion contract used by HTTP and gateway flows, so each run ends as completed, silent, failed, or aborted. Duration and cost are shown when available.

golembot serve ​

Start the HTTP SSE server.

bash
golembot serve [-d <dir>] [-p <port>] [-t <token>] [--host <host>] [--api-key <key>]
OptionDescriptionDefault
-d, --dir <dir>Assistant directory.
-p, --port <port>HTTP port3000
-t, --token <token>Bearer auth tokenGOLEM_TOKEN env
--host <host>Bind address127.0.0.1
--api-key <key>Agent API keyFrom env

See HTTP API for endpoint details, including POST /abort for cancelling the current task over HTTP.

golembot gateway ​

Start the IM + HTTP unified gateway service.

bash
golembot gateway [-d <dir>] [-p <port>] [-t <token>] [--host <host>] [--api-key <key>] [--verbose]
OptionDescriptionDefault
-d, --dir <dir>Assistant directory.
-p, --port <port>HTTP port3000
-t, --token <token>Bearer auth tokenGOLEM_TOKEN env
--host <host>Bind address127.0.0.1
--api-key <key>Agent API keyFrom env
--verboseEnable channel log outputfalse

Reads channels config from golem.yaml and starts the corresponding IM adapters alongside the HTTP service.

The gateway also:

  • Serves a web Dashboard at GET / with real-time metrics, channel status, and a Quick Test panel.
  • Auto-registers with the Fleet directory (~/.golembot/fleet/) so golembot fleet ls can discover it.

golembot fleet ​

Manage and view all running GolemBot instances.

golembot fleet ls ​

List all running bot instances discovered from ~/.golembot/fleet/.

bash
golembot fleet ls [--json]
OptionDescriptionDefault
--jsonOutput JSON with full instance details and metricsfalse

Each gateway automatically registers itself on startup and unregisters on shutdown. Stale entries (crashed processes) are cleaned up automatically via PID liveness checks.

Example output:

  Running GolemBot Instances (2)

  ●  alpha-bot (claude-code) claude-opus-4-6
     Port 3000 · PID 12345 · 42 msgs

  ●  beta-bot (cursor) claude-4.6-sonnet
     Port 3001 · PID 12346 · 7 msgs

When there are stopped bots (stopped via fleet stop), they also appear:

  Stopped Instances (1)

  ○  beta-bot (cursor)
     Port 3001 · /path/to/beta-bot

golembot fleet stop ​

Stop a running bot instance by sending SIGTERM. The bot is saved as a stopped entry and can be restarted with fleet start.

bash
golembot fleet stop <name> [--json]
OptionDescriptionDefault
<name>Bot name (as shown in fleet ls)—
--jsonOutput JSON (agent-friendly)false

golembot fleet start ​

Restart a previously stopped bot instance. The bot is respawned in its original directory on the same port.

bash
golembot fleet start <name> [--json]
OptionDescriptionDefault
<name>Bot name (as shown in fleet ls stopped section)—
--jsonOutput JSON (agent-friendly)false

golembot fleet serve ​

Start the Fleet Dashboard web server — an aggregate view of all running bots.

bash
golembot fleet serve [-p <port>] [--host <host>]
OptionDescriptionDefault
-p, --port <port>HTTP port4000
--host <host>Bind address127.0.0.1

Fleet Dashboard features:

  • Auto-discovers all running bots from ~/.golembot/fleet/
  • Shows engine, model, uptime, message count, and cost per bot
  • Stop/Start buttons on each bot card
  • Stopped bots shown with dashed border and Start button
  • Links to each bot's individual Dashboard
  • Auto-refreshes every 10 seconds
  • Empty state guidance when no bots are running

Fleet API endpoints:

EndpointDescription
GET /Fleet Dashboard HTML
GET /api/fleetJSON: running instances + stopped instances + metrics
POST /api/fleet/:name/stopStop a running bot (sends SIGTERM)
POST /api/fleet/:name/startRestart a previously stopped bot
GET /health{ "status": "ok" }

golembot onboard ​

Run the interactive setup wizard.

bash
golembot onboard [-d <dir>] [--template <name>]
OptionDescriptionDefault
-d, --dir <dir>Working directory.
--template <name>Scenario template to useInteractive prompt

See Onboard Wizard for the full walkthrough.

golembot status ​

Display the current assistant configuration.

bash
golembot status [-d <dir>] [--json]
OptionDescriptionDefault
-d, --dir <dir>Assistant directory.
--jsonOutput JSON (agent-friendly)false

Shows: name, engine, model, installed skills, active sessions, configured channels, and gateway settings.

JSON output example:

json
{
  "name": "my-bot",
  "engine": "claude-code",
  "model": "claude-opus-4-6",
  "skills": [{ "name": "general", "description": "General assistant" }],
  "sessions": 3,
  "channels": ["telegram"],
  "gateway": { "port": 3000, "authEnabled": false },
  "directory": "/home/user/my-bot"
}

golembot skill ​

Manage skills in the assistant directory.

golembot skill list ​

bash
golembot skill list [-d <dir>]

Lists all installed skills with their descriptions.

golembot skill search <query> ​

bash
golembot skill search <query> [-d <dir>] [--registry <name>] [--json]

Search for skills in a community registry.

OptionDescriptionDefault
--registry <name>Registry to search (clawhub, skills.sh)clawhub
--jsonOutput JSON (agent-friendly)false

golembot skill add <source> ​

bash
golembot skill add <source> [-d <dir>]

Copies a skill directory from <source> into the assistant's skills/ folder. The source can be:

  • A local path (must contain a SKILL.md file)
  • A registry reference: clawhub:<slug> or skills.sh:<owner>/<repo>/<skill>

golembot skill remove <name> ​

bash
golembot skill remove <name> [-d <dir>]

Removes a skill by its directory name.

golembot doctor ​

Run prerequisite checks.

bash
golembot doctor [-d <dir>]

Checks:

  • Node.js version (>= 18)
  • golem.yaml exists and is valid
  • Engine CLI binary is on PATH
  • API key environment variable is set
  • Skills directory contains valid skills

Environment Variables ​

VariableUsed ByDescription
CURSOR_API_KEYCursor engineCursor API key
ANTHROPIC_API_KEYClaude Code engineAnthropic API key
OPENAI_API_KEYOpenCode engineOpenAI API key
OPENROUTER_API_KEYOpenCode engineOpenRouter API key
REQUESTY_API_KEYOpenCode engineRequesty API key
GOLEM_TOKENserve / gatewayHTTP bearer auth token
GOLEM_PORTserve / gatewayHTTP port override

The CLI auto-loads a .env file from the working directory at startup.

Released under the MIT License.