Configuration
API Reference
Config system RPC methods for reading, patching, and applying configuration.
Config API Reference
The config system exposes JSON-RPC methods for reading and modifying configuration programmatically.
RPC Methods
config.get
Read the current resolved configuration for an agent or the gateway.
// Request
{ method: "config.get", params: { agentId: "marketing-manager" } }
// Response
{
"config": {
"model": "claude-opus-4-6",
"heartbeat": { "every": "2h" },
"subagents": { "allowAgents": ["pipeline-manager"] },
"workspace": "/path/to/workspace",
"layers": {
"org": "/path/to/org",
"individual": "~/.reeve/user"
}
}
}Without agentId, returns the global gateway config:
{ method: "config.get" }config.patch
Update specific config fields. Uses JSON merge patch semantics.
// Request
{
method: "config.patch",
params: {
patch: {
"agents.defaults.model": "claude-sonnet-4-6",
"layers.org": "/new/org/path"
}
}
}
// Response
{ "ok": true, "config": { /* updated config */ } }config.apply
Apply a complete config object, replacing the current config.
// Request
{
method: "config.apply",
params: {
config: {
// Full reeve.json structure
}
}
}
// Response
{ "ok": true }config.layers.info
Get information about resolved layer paths and file origins.
// Request
{ method: "config.layers.info", params: { agentId: "marketing-manager" } }
// Response
{
"layers": {
"universal": {
"path": "/path/to/reeve/config/universal",
"files": ["AGENTS.md", "SOUL.md"]
},
"org": {
"path": "/path/to/org",
"files": ["AGENTS.md", "SOUL.md", "CONTEXT.md"]
},
"individual": {
"path": "~/.reeve/user",
"files": ["USER.md"]
},
"workspace": {
"path": "/path/to/workspace",
"files": ["AGENTS.md", "SOUL.md", "TOOLS.md", "HEARTBEAT.md"]
}
},
"resolved": {
"AGENTS.md": { "strategy": "append", "sources": ["universal", "org", "workspace"] },
"SOUL.md": { "strategy": "append", "sources": ["universal", "org", "workspace"] },
"USER.md": { "strategy": "replace", "source": "individual" },
"TOOLS.md": { "strategy": "extend", "sources": ["universal", "workspace"] }
}
}auth.profiles.list
List configured LLM provider profiles.
// Request
{ method: "auth.profiles.list" }
// Response
{
"profiles": [
{ "provider": "anthropic", "configured": true, "models": ["claude-opus-4-6", "claude-sonnet-4-6"] },
{ "provider": "openai", "configured": true, "models": ["gpt-4o", "gpt-4o-mini"] },
{ "provider": "openrouter", "configured": false }
]
}auth.profiles.set
Set an API key for an LLM provider.
{
method: "auth.profiles.set",
params: {
provider: "anthropic",
apiKey: "sk-ant-..."
}
}auth.profiles.test
Test an API key before saving.
{
method: "auth.profiles.test",
params: {
provider: "anthropic",
apiKey: "sk-ant-..."
}
}
// Returns: { ok: true } or { ok: false, error: "Invalid API key" }Schema Reference
The config schema is defined in config/zod-schema.js using Zod:
const ReeveSchema = z.object({
// ...existing fields...
layers: z.object({
org: z.string().optional(),
individual: z.string().optional(),
}).optional(),
});Layer paths support:
- Absolute paths:
/data/tenants/acme/org - Home-relative paths:
~/.reeve/user - Relative paths: resolved from the
reeve.jsonlocation
Config File (reeve.json)
The primary config file lives at the root of your Reeve installation. Key sections:
{
"port": 8080,
"layers": {
"org": "/path/to/org",
"individual": "~/.reeve/user"
},
"agents": {
"defaults": { "model": "claude-sonnet-4-6" },
"list": [/* agent entries */]
},
"providers": {
"anthropic": { "apiKey": "..." },
"openai": { "apiKey": "..." }
},
"channels": {
"slack": { "botToken": "..." },
"discord": { "token": "..." }
}
}