CLI Commands
| Command | Description | Key Flags |
xbot onboard | Initialize global config and workspace | --workspace |
xbot chat <msg> | One-shot agent conversation | --model, --workspace, --global |
xbot repl | Interactive TUI mode | --model, --workspace, --global |
xbot run | Start backend agent service | --model, --workspace |
xbot config | Interactive configuration | --provider, --channel |
xbot channels | Manage channels | list, status, login, setup |
xbot skills | Manage skills | list, init <name> |
xbot status | Show runtime status | --model |
xbot sessions | List active sessions | |
xbot jobs | List cron jobs | |
xbot print-config | Dump current config JSON | |
Global Flags
| Flag | Description | Default |
--config <path> | Config file path | ~/.xbot/config.json |
--workspace <path> | Set workspace directory | Current directory |
--global | Use global workspace | ~/.xbot/workspace |
--model <name> | Override default model | Config value |
REPL Built-in Commands
| Command | Description |
/help | Show available commands |
/new / /clear | Start new session |
/memorize <text> | Store permanent memory entry |
/status | View runtime status |
/stop | Stop currently running task |
/model <name> | Switch model at runtime |
/init | Initialize project context |
Channel Commands
These commands work in channel messages (with or without / prefix):
| Command | Description |
stop | Stop current task |
clear / new | Start new session |
memorize <text> | Store memory |
status | View status |
help | Show help |
Environment Variables
| Variable | Description | Default |
XBOT_CONFIG | Config file path | ~/.xbot/config.json |
XBOT_WORKSPACE | Default workspace path | ~/.xbot/workspace |
XBOT_LOG_LEVEL | Log level | info |
OPENAI_API_KEY | OpenAI API key (alternative to config) | |
ANTHROPIC_API_KEY | Anthropic API key | |
XBOT_INSTALL_BASE_URL | Override artifact download URL for npm | |
Agent Configuration
| Path | Type | Default | Description |
agents.defaults.workspace | string | ~/.xbot/workspace | Global workspace path |
agents.defaults.model | string | openai/gpt-4.1-mini | Default LLM model |
agents.defaults.provider | string | auto | Provider (auto for auto-detect) |
agents.defaults.maxTokens | number | 16384 | Max completion tokens |
agents.defaults.contextWindowTokens | number | 65536 | Context window size |
agents.defaults.temperature | number? | null | Sampling temperature |
agents.defaults.maxToolIterations | number | 0 | Tool loop limit (0 = unlimited) |
agents.defaults.maxConcurrentTools | number | 5 | Parallel tool execution |
agents.defaults.maxConcurrentRequests | number | 3 | Global request concurrency |
agents.defaults.memoryMaxBytes | number | 32768 | Memory file size cap |
agents.subagents.model | string? | | Subagent model (inherits if empty) |
agents.subagents.provider | string? | auto | Subagent provider |
agents.subagents.apiBase | string? | | Subagent API base URL |
Provider Configuration
| Path | Type | Description |
providers.{name}.apiKey | string | API key |
providers.{name}.apiBase | string? | Custom API base URL |
providers.{name}.extraHeaders | object? | Extra HTTP headers |
providers.{name}.reasoningEffort | string? | Reasoning effort level |
| Path | Type | Default | Description |
tools.exec.enable | bool | true | Enable shell execution |
tools.exec.timeout | number | 120 | Shell timeout seconds |
tools.exec.pathAppend | string? | | Append to PATH |
tools.web.proxy | string? | | HTTP proxy |
tools.web.search.provider | string | duckduckgo | Search engine |
tools.web.search.maxResults | number | 10 | Max search results |
tools.restrictToWorkspace | bool | false | Sandbox file ops to workspace |
tools.mcpServers.{name}.enabled | bool | | Enable MCP server |
tools.mcpServers.{name}.type | string | stdio | Transport type |
tools.mcpServers.{name}.command | string | | Executable command |
tools.mcpServers.{name}.args | string[] | | Command arguments |
tools.mcpServers.{name}.env | object? | | Environment variables |
tools.mcpServers.{name}.enabledTools | string[] | ["*"] | Enabled tool names |
tools.mcpServers.{name}.toolTimeout | number | 30 | Tool timeout seconds |
Gateway Configuration
| Path | Type | Default | Description |
gateway.host | string | 0.0.0.0 | Listen host |
gateway.port | number | 18790 | Listen port |
gateway.heartbeat.enabled | bool | true | Enable heartbeat |
gateway.heartbeat.intervalS | number | 1800 | Heartbeat interval seconds |
gateway.admin.enabled | bool | true | Enable admin UI |
gateway.admin.path | string | /admin | Admin path |
gateway.metrics.enabled | bool | true | Enable Prometheus metrics |
gateway.metrics.path | string | /metrics | Metrics path |
Gateway Endpoints
| Method | Path | Description |
GET | /healthz | Health check (200 = running) |
GET | /readyz | Readiness (200 = accepting requests) |
GET | /status | Runtime status JSON |
GET | /metrics | Prometheus-format metrics |
GET | /admin | Web admin UI |
Admin API
| Method | Path | Description |
GET | /api/admin/overview | System overview (CPU, memory, uptime) |
GET | /api/admin/sessions | List all active sessions |
GET | /api/admin/cron | List cron jobs |
GET | /api/admin/config | Current runtime config |
POST | /api/admin/heartbeat/trigger | Manually trigger heartbeat |
POST | /api/admin/channels/{name}/{action} | Channel management (start/stop/restart) |
POST | /api/admin/stop | Stop current task for a session |