Configuration

CtxE works without a config file. The installer leaves global and workspace config absent, and most users only create a targeted override when local behavior needs to differ from the built-in defaults.

Config files

Settings are merged from lowest to highest priority:

  1. Defaults built into the installed client
  2. Global client config — ~/.ctxe/config.toml
  3. Workspace override — .ctxe/config.toml under the workspace root

Workspace values override global values. Arrays replace the inherited array rather than appending to it.

Server-managed capabilities

Model-backed capabilities are provided by the CTXE Server. Provider credentials, model selection, and internal search/index tuning are not part of the public client configuration contract.

ctxe login
ctxe whoami

Authentication is stored separately from config.toml. Do not add third-party provider keys to client configuration.

Supported user settings

These are the settings most users may reasonably override. Use command flags for one-off changes and config only for persistent defaults.

SettingUse
general.ignore_patternsExclude local files or directories from workspace indexing
general.supported_extensionsLimit which local file extensions are discovered
general.max_file_size_bytesSkip unusually large local files
ask_v4.effortDefault Ask effort: min, medium, or high
mcp.exposed_toolsOptionally narrow the public MCP tools shown to clients
serve.host / serve.portPersistent defaults for the loopback HTTP API

Config commands

# Show config paths and whether each file exists
ctxe config path

# Inspect effective user-facing values
ctxe config get ask_v4.effort
ctxe config list --section general

# Persist a workspace default
ctxe config set ask_v4.effort medium

# Persist a global client default
ctxe config set serve.port 4591 --global

# Remove an override and reveal the inherited value
ctxe config unset ask_v4.effort

# Inspect the merged config (secret-bearing fields are redacted)
ctxe config show --format json

Workspace example

Keep workspace config small and focused on local behavior:

# .ctxe/config.toml
[general]
max_file_size_bytes = 2097152

[ask_v4]
effort = "medium"

Daemon lifecycle is not config

Use lifecycle commands instead of adding an enable/disable key to config.toml:

ctxe daemon enable --now
ctxe daemon disable --now
ctxe daemon status

For version-specific discovery, use ctxe config get, ctxe config list, and ctxe <command> --help. Internal defaults may change and should not be copied into workspace config.