idx-cli/web/src/content/docs/start/config.md
hermes 57eccc5843 fix(cli): idx config prints JSON only when JSON is asked for
Auto output stays plain text when piped, as in 0.3.2, so scripts that
read $(idx config path) or $(idx config get KEY) keep working; -o json,
IDX_OUTPUT=json, or general.output = "json" print JSON. The config
goldens return to their 0.3.2 content.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3syn2fN2LNo5pvTSqc6eh
2026-10-18 02:11:31 +00:00

2.2 KiB

title description
Configuration Config file, environment variables and their precedence.

idx works without configuration. To change defaults, use the config file, environment variables or flags. When they disagree, the first one wins:

  1. command-line flags
  2. environment variables
  3. the config file
  4. built-in defaults

Config file

~/.config/idx/config.toml (or $XDG_CONFIG_HOME/idx/config.toml):

idx config init                        # write the defaults below
idx config set general.output json
idx config get cache.quote_ttl
idx config path

idx config prints plain text, even when piped, so $(idx config path) works in scripts. Ask for JSON with -o json, IDX_OUTPUT=json, or output = "json".

[general]
provider = "msn"           # msn | yahoo
history_provider = "auto"  # auto | yahoo | msn
exchange = "JK"
output = "auto"            # auto | table | json | jsonl
color = true

[cache]
quote_ttl = 300            # seconds
fundamental_ttl = 3600

[ownership]
# db_path = "/path/to/ownership.db"
# snapshot_manifest = "https://..."

Environment variables

Variable Overrides
IDX_PROVIDER general.provider
IDX_HISTORY_PROVIDER general.history_provider
IDX_EXCHANGE general.exchange
IDX_OUTPUT general.output
IDX_NO_COLOR general.color (1 or true disables colour)
IDX_CACHE_QUOTE_TTL cache.quote_ttl
IDX_CACHE_FUNDAMENTAL_TTL cache.fundamental_ttl
IDX_OWNERSHIP_SNAPSHOT_MANIFEST ownership.snapshot_manifest
IDX_CURL_IMPERSONATE_BIN path to a curl_chrome* binary

Files idx keeps

What Where
Config ~/.config/idx/config.toml
Cache ~/.cache/idx/ (idx cache info, idx cache clear)
Ownership database ~/.local/share/idx/ownership.db

The MCP server reads the same config, cache and database.

Offline and caching

Quotes are cached for quote_ttl seconds and fundamentals for fundamental_ttl. --offline makes no network requests and serves cached data, even when stale; --no-cache always fetches.

:::note A config created by idx config init before v0.3 pins output = "table". Run idx config set general.output auto to get JSON when piped. :::