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
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.