Reference

Config Reference

Quick answer
Prism stores its settings in config.json in its per-user config directory, and its model routing in a sibling model_remapping.json. Both files are created on first run, can be edited by hand or through the Admin UI, and are hot-reloaded — Prism picks up a change within seconds without a restart.

Last updated Reviewed against Prism v0.3.26

File locations

PlatformConfig directory
Windows%APPDATA%\prism\
macOS~/Library/Application Support/prism/
Linux$XDG_CONFIG_HOME/prism/ (default ~/.config/prism/)

The same directory holds the proxy config, the model routing file, the stats database, and the managed SearXNG runtime:

config.json           # proxy, provider, search, MCP and telemetry settings
model_remapping.json  # default model, known models and aliases
stats.db              # request statistics (SQLite, WAL mode)
analytics_id.txt      # random anonymous telemetry id (only if telemetry ran)
codex_catalog.json    # model catalog written for Codex Desktop
searxng/              # managed SearXNG venv, settings and caches
logs/                 # log files (Linux; Windows and macOS log to the config dir)

Top-level keys

KeyTypeWhat it does
default_providerstringFallback provider id used when a model has no explicit provider. Usually ollama_cloud or opencode_go.
ollama_cloudobjectCredentials for the built-in Ollama Cloud provider: { id, name, base_url, api_key }.
opencode_goobjectCredentials for the built-in OpenCode Go provider: { id, name, base_url, api_key }.
custom_providersarrayAny number of OpenAI-compatible providers, each with id, name, base_url and api_key. IDs look like custom_openrouter_ab12cd.
oauth_accountsarrayCodex/OpenAI OAuth accounts. Prism manages access tokens, refresh tokens and usage for each entry.
agent_integrationsobjectOne-click agent setup state: claude_code_tiers { opus, sonnet, haiku, subagent } and auto_sync { <agent-id>: bool }.
searxng_autostartbooleanStart the managed SearXNG instance together with Prism.
debug_logsbooleanVerbose logging. Also toggled from the Proxy tab in the Admin UI.
searchobjectWeb search providers, fallback chain, limits, and custom REST providers. See below.
mcpobjectMCP gateway servers, per-agent access, registries and idle timeout. See below.
analytics_opt_outbooleanSet true to disable the anonymous daily heartbeat. See Telemetry &amp; Privacy.
analytics_notice_seenbooleanWhether the first-run telemetry notice has been shown.

Example config.json

{
  "default_provider": "ollama_cloud",
  "ollama_cloud": {
    "id": "ollama_cloud",
    "name": "Ollama Cloud",
    "base_url": "https://ollama.com",
    "api_key": "your-ollama-cloud-key"
  },
  "custom_providers": [
    {
      "id": "custom_openrouter_ab12cd",
      "name": "OpenRouter",
      "base_url": "https://openrouter.ai/api/v1",
      "api_key": "sk-or-v1-..."
    }
  ],
  "agent_integrations": {
    "claude_code_tiers": {
      "opus": "glm-5.1:cloud",
      "sonnet": "deepseek-v4-flash:cloud",
      "haiku": "deepseek-v4-flash:cloud",
      "subagent": "deepseek-v4-flash:cloud"
    },
    "auto_sync": { "claude-code": true, "codex": true }
  },
  "searxng_autostart": true,
  "debug_logs": false,
  "analytics_opt_out": false
}

search — web search providers

KeyDefaultWhat it does
activesearxngThe provider used for search interception. One of searxng, exa, tavily, brave or serper, or a custom provider id.
fallback[]Ordered list of provider ids to try when the active provider fails or returns nothing.
max_per_turn5How many search calls Prism will serve within a single agent turn.
timeout_ms8000Per-request timeout for a search call.
default_num_results5Results requested per query. Capped at 10.
providers{}Per-provider settings keyed by id, e.g. providers.exa.api_key or providers.searxng.base_url.
custom_providers[]User-defined declarative REST providers. See the Web Search page for the full field list.

mcp — gateway and servers

KeyDefaultWhat it does
servers[]Upstream MCP servers. Each has id, name, transport (stdio | http | sse), enabled, and either command/args/env for stdio or url/headers for HTTP.
agent_servers{}Per-agent allowlist mapping an agent id to the server ids it may reach through /mcp/<agent>.
idle_timeout_sec300How long a warmed stdio server stays alive after its last use before Prism stops it.
registries[]Marketplace catalogs. The official registry is seeded as builtin and cannot be removed; private registries add auth_header.
auto_connecttrueLet Prism start an OAuth sign-in by itself the first time an agent uses a server that has no token yet.
client_id_metadata_url—Opt-in CIMD registration URL for OAuth servers that require a hosted client metadata document.

model_remapping.json

Model routing lives in a separate file. It has three sections: the fallback default_model, the known_models catalog (which carries each model's provider and capabilities), and aliases for name rewriting.

{
  "default_model": "glm-5.1:cloud",
  "known_models": [
    {
      "id": "glm-5.1:cloud",
      "provider": "ollama_cloud",
      "reasoning": true,
      "reasoning_effort": ["low", "medium", "high"],
      "context_length": 128000,
      "max_output_tokens": 16384,
      "capabilities": {
        "tool_calling": true,
        "structured_outputs": true,
        "vision": true
      },
      "api": "chat_completions"
    },
    {
      "id": "gpt-5-codex",
      "provider": "codex_ab12cd",
      "api": "responses"
    }
  ],
  "aliases": {
    "claude-3-5-sonnet-20241022": "glm-5.1:cloud",
    "claude-3-5-haiku-20241022": "deepseek-v4-flash:cloud"
  }
}
Model fieldWhat it does
idThe model name clients send, and the name Prism forwards upstream.
providerWhich configured provider serves this model. This is what makes provider-per-model routing work.
reasoningWhether the model accepts a reasoning/thinking parameter.
reasoning_effortAllowed effort values for reasoning models. Prism strips or normalizes invalid values instead of failing the request.
context_lengthContext window, used to fill agent-side model metadata.
max_output_tokensMaximum output tokens, used to fill agent-side model metadata.
capabilitiestool_calling, structured_outputs and vision flags, so agents only advertise what the model can do.
apichat_completions (default) or responses. Model-level override of which inbound-style protocol Prism uses upstream.

Environment variables

VariableDefaultWhat it does
PRISM_PORT11434Proxy listen port. Change it if a real Ollama already owns 11434.
PRISM_HOST127.0.0.1Proxy bind address.
PRISM_ADMIN_PORT8765Admin web UI port.
OLLAMA_API_KEY—Fallback Ollama Cloud key when the config file has none.
OPENCODE_GO_API_KEY—Fallback OpenCode Go key when the config file has none.
EXA_API_KEY—Auto-detected Exa key for web search.
TAVILY_API_KEY—Auto-detected Tavily key for web search.
BRAVE_SEARCH_API_KEY—Auto-detected Brave Search key.
SERPER_API_KEY—Auto-detected Serper key.
PRISM_ANALYTICS_DISABLED—Set to 1 to disable the anonymous heartbeat.
PRISM_ANALYTICS_DEBUG—Set to 1 to log telemetry payloads instead of sending them.
KIMI_CODE_HOME—Override where Prism looks for Kimi Code's config.
DSH_HOME—Override where Prism looks for DeepSeek Harness profiles.
HERMES_HOME—Override where Prism looks for Hermes' config.
Precedence
A value in config.json wins over the matching environment variable. Environment variables are the fallback, not an override.

Command-line flags

Prism has exactly one flag. Everything else is configured through the file, the environment, or the Admin UI.

prism --serve    # run the headless proxy in the console, without the tray icon
No autostart flags
Earlier builds documented --autostart, --no-autostart and --minimized. Those flags do not exist. Auto-start is toggled from the tray menu or the Admin UI Proxy tab, and auto-started instances start minimised in the tray on their own.