Reference

Configuration

Arcana is configured through ~/.arcana/config.json. Most settings have sensible defaults and can be overridden with environment variables.

Updated · v0.3.15

Config file location

~/.arcana/config.json

Override with ARCANA_HOME:

export ARCANA_HOME=/custom/path
# Config loaded from /custom/path/config.json

Full config reference

{
  "$schema": "https://arcana.otnelhq.com/schema/config.json",
  "provider": "openai",
  "model": "gpt-4o",
  "utilityModel": "gpt-4o-mini",
  "apiKey": "sk-...",
  "dataDir": "~/.arcana/data",
  "skillsDirs": ["~/.arcana/skills"],
  "memory": {
    "enabled": true,
    "maxSessions": 1000
  },
  "cron": {
    "enabled": true,
    "intervalSeconds": 60
  },
  "gateway": {
    "telegram": { "token": "...", "allowedUsers": ["12345678"] },
    "discord": { "token": "...", "allowedChannels": ["987654321"] },
    "slack": { "botToken": "xoxb-...", "signingSecret": "...", "allowedChannels": ["C0123"] },
    "whatsapp": { "phoneNumberId": "...", "accessToken": "...", "appSecret": "...", "allowedUsers": ["14155551234"] }
  }
}

Core settings

KeyTypeDefaultDescription
providerstringauto-detectedLLM provider (openai, anthropic, gemini, etc.)
modelstringauto-detectedModel ID (gpt-4o, claude-sonnet-4, etc.)
utilityModelstringmain modelCheap model for extraction and compaction tasks
apiKeystringProvider API key (prefer env vars instead)
dataDirstring~/.arcana/dataDirectory for sessions, memory, and local DB

Provider auto-detection

If neither provider nor model is set in the config or environment, Arcana auto-detects from available API keys using the models.dev catalog (200+ models across 33 providers).

# Set a provider key — Arcana detects it automatically
export OPENAI_API_KEY=sk-...
arcana run "hello"  # Uses OpenAI automatically

Memory settings

KeyTypeDefaultDescription
memory.enabledbooleantrueEnable conversation memory and fact extraction
memory.maxSessionsnumber1000Maximum sessions to retain in local DB

Memory stores conversation history, extracted facts, and skill usage stats in SQLite under ~/.arcana/data/.

Cron settings

KeyTypeDefaultDescription
cron.enabledbooleantrueEnable the cron scheduler
cron.intervalSecondsnumber60How often the scheduler checks for due jobs

See Cron for the full scheduled jobs reference.

Skills settings

KeyTypeDefaultDescription
skillsDirsstring[]["~/.arcana/skills", "<repo>/skills"]Directories to scan for SKILL.md files

See Skills for the full skills reference.

Gateway settings

Configure chat platform adapters. See Gateway for full setup instructions.

KeyTypeDescription
gateway.telegram.tokenstringTelegram bot token
gateway.telegram.allowedUsersstring[]Allowed Telegram user IDs
gateway.discord.tokenstringDiscord bot token
gateway.discord.allowedChannelsstring[]Allowed Discord channel IDs
gateway.slack.botTokenstringSlack bot token (xoxb-...)
gateway.slack.signingSecretstringSlack signing secret
gateway.slack.allowedChannelsstring[]Allowed Slack channel IDs
gateway.whatsapp.phoneNumberIdstringMeta phone number ID
gateway.whatsapp.accessTokenstringMeta access token
gateway.whatsapp.appSecretstringMeta app secret (required for production)
gateway.whatsapp.allowedUsersstring[]Allowed phone numbers (with country code)

Environment variables

All config file settings can be overridden with environment variables:

Env varOverridesDescription
ARCANA_HOMEconfig pathRoot directory (default: ~/.arcana)
ARCANA_PROVIDERproviderLLM provider
ARCANA_MODELmodelModel ID
ARCANA_API_KEYapiKeyProvider API key
OPENAI_API_KEYapiKeyFallback when provider is openai
ARCANA_SKILLS_DIRSskillsDirsSkill directories (separated by ;)
ARCANA_PROXY_KEYProxy license key (auto-loaded from ~/.arcana/proxy_key)

Provider-specific env vars

Env varProvider
ANTHROPIC_API_KEYAnthropic
GEMINI_API_KEYGoogle Gemini
AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEYAmazon Bedrock
CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKENCloudflare Workers AI
XAI_API_KEYxAI (Grok)

Use arcana doctor to confirm which keys are detected.

Data directory

Default: ~/.arcana/data/

PathContents
sessions/Session transcripts
memory.dbSQLite DB with facts, skill stats
cron-jobs.jsonScheduled job definitions
workspace-trust.jsonTrusted workspace fingerprints

Trust and security settings

SettingLocationDescription
arcana trustCLI commandTrust current workspace for project plugins/tools
ARCANA_DISABLE_WORKSPACE_TRUST=1Env varSkip trust checks (dev only)
ARCANA_TRUST_WORKSPACE=1Env varForce-trust for CI
ARCANA_SERVER_PASSWORDEnv varRequired for non-loopback arcana serve
ARCANA_GATEWAY_OPEN=1Env varAllow empty gateway allowlists (dev only)