Reeve
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.json location

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": "..." }
  }
}

On this page