Configuration Reference

Holon stores runtime configuration in JSON files under ~/.holon/:

FilePurpose
~/.holon/config.jsonProviders, model defaults, TUI, web, and runtime settings
~/.holon/credentials.jsonPermission-protected credential storage (managed via config credentials)

Configuration Keys

Use holon config get/set/unset/list to read and write keys. Use holon config schema to see every available key with its type, default, and description.

Model & Provider Settings

KeyTypeDescription
model.defaultmodel_refDefault provider/model, e.g. "anthropic/claude-sonnet-4-6"
model.fallbacksmodel_ref_listOrdered fallback models when the default is unavailable
runtime.disable_provider_fallbackbooleanDisable provider/model fallback; require deterministic single-provider execution
# Set the default model
holon config set model.default "deepseek-anthropic/deepseek-v4-pro"

# Add fallback models (JSON array)
holon config set model.fallbacks '["anthropic/claude-sonnet-4-6","minimax/MiniMax-M2.7"]'

# Read current default
holon config get model.default

# See all current config
holon config list

# Remove a config key (reverts to default)
holon config unset model.fallbacks

Per-Model Policy

The models.catalog key lets you override runtime metadata for specific provider/model refs. Keys under model.unknown_fallback.* control policy for models without built-in metadata.

Credential Management

Credentials are stored securely in ~/.holon/credentials.json. Use config credentials subcommands — never edit this file directly.

Setting Credentials

# Preferred: use --stdin to avoid shell history leakage
holon config credentials set --kind api_key --stdin deepseek
# Paste your API key and press Enter (Ctrl+D to finish)

# Alternative: --material (visible in shell history — not recommended)
holon config credentials set --kind api_key --material "sk-..." deepseek

The <PROFILE> argument is a label you choose (e.g. deepseek, bigmodel, openai).

Listing & Removing

holon config credentials list
holon config credentials remove deepseek

Environment Variables

As an alternative to the credential store, Holon reads API keys from environment variables:

ProviderEnvironment Variable
AnthropicANTHROPIC_AUTH_TOKEN
DeepSeekDEEPSEEK_API_KEY
OpenAIOPENAI_API_KEY
BigModel (Zhipu)BIGMODEL_API_KEY
MiniMaxMINIMAX_API_KEY
Xiaomi MiMoXIAOMI_API_KEY
OpenRouterOPENROUTER_API_KEY
FireworksFIREWORKS_API_KEY
TogetherTOGETHER_API_KEY
MistralMISTRAL_API_KEY
xAIXAI_API_KEY
MoonshotMOONSHOT_API_KEY
NEAR AI Cloud (TEE inference)NEARAI_API_KEY
VolcengineVOLCENGINE_API_KEY or ARK_API_KEY
StepFunSTEPFUN_API_KEY
QwenQWEN_API_KEY or DASHSCOPE_API_KEY
HuggingFaceHUGGINGFACE_API_KEY or HF_TOKEN
VeniceVENICE_API_KEY
ChutesCHUTES_API_KEY
NVIDIANVIDIA_API_KEY

For a complete, up-to-date list, run holon config providers list.

Provider Configuration

Holon ships with built-in provider definitions for 40+ providers. You can add or override providers in config.json.

Listing Registered Providers

holon config providers list

Each provider entry shows its transport protocol (anthropic_messages, openai_chat_completions, etc.), base URL, and credential requirement.

Adding a Custom Provider

holon config providers set my-proxy \
  --transport openai_chat_completions \
  --base-url "https://my-proxy.example.com/v1" \
  --credential-source env \
  --credential-env "MY_PROXY_API_KEY" \
  --credential-kind api_key

Options:

Removing a Provider

holon config providers remove my-proxy

Listing Available Models

holon config models list

This shows each model's availability, credential status, provider, transport, and policy (context window, max output tokens, capabilities).

Agent-Level Model Overrides

Each agent can override the default model:

holon agent model set "anthropic/claude-sonnet-4-6" reviewer

The override is stored in the agent's own configuration, not the global model.default.

Diagnostics

# Full system health check including model availability
holon config doctor

# List all configuration keys with types and defaults
holon config schema

config doctor reports: default model, fallback models, per-model availability, provider settings, and retry policy.

Configuration File Location

Holon resolves its configuration directory as follows:

  1. $HOLON_HOME/config.json (if HOLON_HOME is set)
  2. ~/.holon/config.json (fallback)

Credentials follow the same pattern with credentials.json.

TUI Settings

KeyValuesDefaultDescription
tui.alternate_screenauto, always, neverautoAlternate screen buffer behavior

TUI debug instrumentation is controlled by environment variables:

Environment variableValuesDefaultDescription
HOLON_TUI_PRESENTATION_LOG1, true, yes, on, debugunsetEnable <HOLON_HOME>/logs/tui/presentation.jsonl debug logging for stream-driven presentation decisions
HOLON_TUI_PRESENTATION_LOG_MAX_BYTESpositive integer bytes5242880Rotate the presentation debug log when it reaches this size

Web Fetch/Search Settings

KeyTypeDefaultDescription
web.fetch.enabledbooleantrueEnable WebFetch tool
web.fetch.max_charsinteger20000Max characters returned to model
web.fetch.max_response_bytesinteger750000Max response bytes before truncation
web.fetch.timeout_secondsinteger20Per-request timeout
web.fetch.max_redirectsinteger5Max redirect hops
web.fetch.allowed_hostsstring_list[]Hosts allowed (empty = all)
web.fetch.denied_hostsstring_list[]Hosts blocked
web.search.enabledbooleantrueEnable WebSearch tool
web.search.providerstring"auto"Default search provider or auto
web.search.modeenum"fallback"Routing mode: single, fallback, or aggregate
web.search.providersstring_list[]Explicit auto-mode provider attempt order
web.search.max_resultsinteger5Max results returned
web.search.max_provider_attemptsinteger3Max providers attempted by fallback/aggregate routing
web.providers.<name>.kindstringrequiredProvider kind: duck_duck_go, searxng, brave, tavily, exa, perplexity, firecrawl, open_ai_native, anthropic_native, or gemini_native
web.providers.<name>.base_urlstringunsetCustom provider endpoint
web.providers.<name>.credential_profilestringunsetCredential profile for API-backed providers
web.providers.<name>.capabilitiesjson_objectderivedRead-only capability metadata surfaced by holon config get and routing diagnostics

See Also