Configuration Reference
All configuration lives in data/config/ as JSON files. Missing files are auto-created with defaults on startup. All config files support hot-reload — changes take effect on the next request without restart.
ai-provider-manager.json
Controls the AI backend.
| Field | Type | Default | Description |
|---|---|---|---|
backend | "agent-sdk" | "vercel-ai-sdk" | "agent-sdk" | Active AI provider |
provider | string | "anthropic" | Model provider (anthropic, openai, google) |
model | string | "claude-sonnet-4-6" | Model identifier |
loginMethod | "api-key" | "claudeai" | "api-key" | Agent SDK auth method |
apiKeys | object | {} | API keys: { anthropic?: string, openai?: string, google?: string } |
baseUrl | string | — | Optional custom API endpoint |
accounts.json
Trading account definitions. Array of account objects.
| Field | Type | Default | Description |
|---|---|---|---|
id | string | — | Unique account identifier |
label | string | — | Display name (optional) |
type | "ccxt" | "alpaca" | "ibkr" | — | Broker type |
enabled | boolean | true | Whether to load this account |
guards | array | [] | Guard configs: [{ type, options }] |
brokerConfig | object | {} | Broker-specific settings (see Accounts & Brokers) |
engine.json
Core engine settings.
| Field | Type | Default | Description |
|---|---|---|---|
pairs | string[] | ["BTC/USD", "ETH/USD", "SOL/USD"] | Default trading pairs |
interval | number | 5000 | Tick loop interval (ms) |
port | number | 3000 | Legacy port setting |
agent.json
AI agent behavior.
| Field | Type | Default | Description |
|---|---|---|---|
maxSteps | number | 20 | Max tool-call steps per request |
evolutionMode | boolean | false | Full project access including Bash |
claudeCode.disallowedTools | string[] | (see below) | Tools blocked from Agent SDK |
claudeCode.maxTurns | number | 20 | Max conversation turns for Agent SDK |
Default disallowed tools: Task, TaskOutput, AskUserQuestion, TodoWrite, NotebookEdit, Skill, EnterPlanMode, ExitPlanMode, mcp__claude_ai_Figma__*
connectors.json
Connector configuration.
| Field | Type | Default | Description |
|---|---|---|---|
web.port | number | 3002 | Web UI port |
mcp.port | number | 3001 | Main MCP server port |
mcpAsk.enabled | boolean | false | Enable MCP Ask connector |
mcpAsk.port | number | — | MCP Ask port |
telegram.enabled | boolean | false | Enable Telegram bot |
telegram.botToken | string | — | Telegram bot token |
telegram.chatIds | number[] | [] | Allowed Telegram chat IDs |
market-data.json
Market data settings.
| Field | Type | Default | Description |
|---|---|---|---|
backend | "typebb-sdk" | "openbb-api" | "typebb-sdk" | Data engine backend |
apiUrl | string | "http://localhost:6900" | OpenBB API URL (when using openbb-api) |
providers.equity | string | "yfinance" | Default equity data provider |
providers.crypto | string | "yfinance" | Default crypto data provider |
providers.currency | string | "yfinance" | Default currency data provider |
providerKeys | object | {} | API keys for premium providers |
apiServer.enabled | boolean | true | Enable embedded OpenBB-compatible HTTP API |
apiServer.port | number | 6901 | Embedded API server port |
news.json
News collector settings.
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Master switch |
intervalMinutes | number | 10 | Fetch interval |
maxInMemory | number | 2000 | Max items in memory buffer |
retentionDays | number | 7 | Items older than this not loaded on startup |
feeds | array | (4 default feeds) | RSS/Atom feed definitions |
Default feeds: CoinDesk, CoinTelegraph, The Block, CNBC Finance.
heartbeat.json
Heartbeat configuration.
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Master switch |
every | string | "30m" | Check interval |
prompt | string | (structured format) | Prompt sent to AI on each heartbeat |
activeHours | object | null | null | { start: "HH:MM", end: "HH:MM", timezone } or null for always |
snapshot.json
Account snapshot settings.
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Enable scheduled snapshots |
every | string | "15m" | Snapshot interval |
compaction.json
Context window management.
| Field | Type | Default | Description |
|---|---|---|---|
maxContextTokens | number | 200000 | Context window size |
maxOutputTokens | number | 20000 | Max output tokens |
autoCompactBuffer | number | 13000 | Buffer before triggering compaction |
microcompactKeepRecent | number | 3 | Recent entries to keep during micro-compaction |
tools.json
Tool enable/disable.
| Field | Type | Default | Description |
|---|---|---|---|
disabled | string[] | [] | Tool names to disable globally |
web-subchannels.json
Web UI sub-channel definitions. Array of channel objects.
| Field | Type | Default | Description |
|---|---|---|---|
id | string | — | URL-safe identifier |
label | string | — | Display name |
systemPrompt | string | — | System prompt override |
provider | string | — | AI backend override |
vercelAiSdk | object | — | Vercel AI SDK model override |
agentSdk | object | — | Agent SDK model override |
disabledTools | string[] | — | Additional tools to disable |
Default / Override Pattern
| Default (git-tracked) | User override (gitignored) |
|---|---|
default/persona.default.md | data/brain/persona.md |
default/heartbeat.default.md | data/brain/heartbeat.md |
On first run, defaults are auto-copied. Your customizations survive updates.