Skip to main content

Configuration Overview

Config file: ~/.suprclaw/config.json

Config File Structure

{
"agents": {
"defaults": {
"workspace": "~/.suprclaw/workspace",
"model_name": "claude-sonnet-4.6",
"max_tokens": 8192,
"temperature": 0.7,
"max_tool_iterations": 20,
"restrict_to_workspace": true
}
},
"model_list": [...],
"channels": {...},
"tools": {...},
"gateway": {
"host": "127.0.0.1",
"port": 18790
}
}

Agent Defaults

FieldTypeDefaultDescription
workspacestring~/.suprclaw/workspaceWorkspace directory
model_namestringActive model (must match a model_list entry)
max_tokensint8192Max tokens per response
temperaturefloat0.7Response temperature
max_tool_iterationsint20Max tool call rounds per session
restrict_to_workspacebooltrueSandbox agent to workspace

Workspace Layout

~/.suprclaw/workspace/
├── sessions/ # Conversation history
├── memory/ # Long-term memory (MEMORY.md)
├── state/ # Persistent state
├── cron/ # Scheduled jobs
├── skills/ # Custom skills
├── AGENTS.md # Agent behavior guide
├── HEARTBEAT.md # Periodic task prompts
├── IDENTITY.md # Agent identity
├── SOUL.md # Agent soul
└── USER.md # User preferences

Skill Sources

Skills are loaded in this order (later sources override earlier ones):

  1. ~/.suprclaw/workspace/skills
  2. ~/.suprclaw/skills
  3. <cwd>/skills

Gateway Config

The gateway serves webhook channels (Telegram, Discord, etc.):

{
"gateway": {
"host": "127.0.0.1",
"port": 18790,
"remote_admin_control": false,
"admin_secret": ""
}
}

Set host to 0.0.0.0 to expose to the network (e.g. when running in Docker).

FieldTypeDefaultDescription
hoststring127.0.0.1Listen host
portint18790Listen port
remote_admin_controlboolfalseEnable the embedded Admin REST API
admin_secretstringBearer token required to call admin endpoints

Admin REST API

When remote_admin_control is true and admin_secret is set, the gateway exposes a REST API on the same host/port under /api/admin/. All requests must include Authorization: Bearer <admin_secret>.

Endpoints

MethodPathDescription
GET/api/admin/cron/jobsList all scheduled jobs
POST/api/admin/cron/jobsAdd a scheduled job
DELETE/api/admin/cron/jobs/{id}Remove a job
PATCH/api/admin/cron/jobs/{id}Enable/disable a job
GET/api/admin/configRead current config
PUT/api/admin/configReplace entire config
PATCH/api/admin/configPartial config update
POST/api/admin/agentsUpsert an agent definition
DELETE/api/admin/agents/{agentId}Remove an agent
POST/api/admin/agents/{agentId}/wakeRun a one-shot agent message
POST/api/admin/runtime/reloadRestart the gateway process
POST/api/admin/workspaces/bootstrapCreate/populate an agent workspace
DELETE/api/admin/workspaces/{agentId}Delete an agent workspace
GET/api/admin/workspaces/{agentId}/filesList workspace files
GET/api/admin/workspaces/{agentId}/files/{fileName}Read a workspace file
POST/api/admin/marketplace/installSparse-clone a skill repo into a workspace
POST/api/admin/mcp/configureSet MCP server config

Example: add a cron job

curl -X POST http://localhost:18790/api/admin/cron/jobs \
-H "Authorization: Bearer <admin_secret>" \
-H "Content-Type: application/json" \
-d '{
"name": "daily-digest",
"message": "Send me the daily news summary",
"deliver": true,
"channel": "supr",
"to": "supr:my-session",
"schedule": { "cron": "0 9 * * *" }
}'

Example: wake an agent

curl -X POST http://localhost:18790/api/admin/agents/my-agent/wake \
-H "Authorization: Bearer <admin_secret>" \
-H "Content-Type: application/json" \
-d '{ "sessionKey": "my-session", "message": "Good morning!" }'

Environment Variables

See Environment Variables Reference for the full list.

VariableDescription
SUPRCLAW_CONFIGPath to config file
SUPRCLAW_HOMERoot directory for all suprclaw data
SUPRCLAW_AGENTS_DEFAULTS_RESTRICT_TO_WORKSPACEOverride workspace restriction