Skip to content

Configuration

altimate uses JSON (or JSONC) configuration files. The config file is named altimate-code.json or altimate-code.jsonc.

Config File Locations

Configuration is loaded from multiple sources, with later sources overriding earlier ones:

Priority Source Location
1 (lowest) Remote defaults .well-known/altimate-code (organization)
2 Global config ~/.config/altimate-code/altimate-code.json
3 Custom config Path from ALTIMATE_CLI_CONFIG env var
4 Project config altimate-code.json (searched up directory tree)
5 Directory config .altimate-code/altimate-code.json (searched up tree)
6 Inline config ALTIMATE_CLI_CONFIG_CONTENT env var (JSON string)
7 (highest) Managed config /Library/Application Support/altimate-code/ (macOS, enterprise)

Tip

For most projects, create a altimate-code.json in your project root or use the .altimate-code/ directory for a cleaner setup.

Minimal Example

{
  "provider": {
    "anthropic": {
      "apiKey": "{env:ANTHROPIC_API_KEY}"
    }
  },
  "model": "anthropic/claude-sonnet-4-6"
}

Full Schema

Field Type Description
$schema string JSON schema URL for editor autocompletion
theme string UI theme name
username string Custom display username
model string Default model (provider/model)
small_model string Smaller model for lightweight tasks
default_agent string Default agent to use on startup
logLevel string Log level: DEBUG, INFO, WARN, ERROR
share string Session sharing: "manual", "auto", "disabled"
autoupdate boolean \| "notify" Auto-update behavior
provider object Provider configurations (see Providers)
mcp object MCP server configurations (see MCP Servers)
formatter object \| false Formatter settings (see Formatters)
lsp object \| false LSP server settings (see LSP Servers)
permission object Permission rules (see Permissions)
agent object Agent definitions (see Agents)
keybinds object Keybinding overrides (see Keybinds)
tui object TUI settings
server object Server settings
skills object Skill paths and URLs
plugin string[] Plugin specifiers
instructions string[] Glob patterns for instruction files
telemetry object Telemetry settings (see Telemetry)
compaction object Context compaction settings (see Context Management)
experimental object Experimental feature flags

Experimental Flags

These flags are under experimental and may change or be removed in future releases.

Flag Type Default Description
env_fingerprint_skill_selection boolean false Use environment fingerprint (dbt, airflow, databricks, SQL) to select relevant skills once per session via LLM. When enabled, the configured model runs once at session start to filter skills based on detected project environment. Results are cached per working directory. When disabled (default), all skills are shown.
auto_enhance_prompt boolean false Automatically rewrite prompts with AI before sending. Uses a small model to clarify rough prompts.

Example:

{
  "experimental": {
    "env_fingerprint_skill_selection": true
  }
}

Value Substitution

Config values support dynamic substitution so you never need to hardcode secrets.

Environment Variables

Use {env:VAR_NAME} to inject environment variables:

{
  "provider": {
    "anthropic": {
      "apiKey": "{env:ANTHROPIC_API_KEY}"
    }
  }
}

File Contents

Use {file:path} to read a secret from a file:

{
  "provider": {
    "anthropic": {
      "apiKey": "{file:~/.secrets/anthropic-key}"
    }
  }
}

Warning

Never commit plaintext API keys to version control. Always use {env:...} or {file:...} substitution.

Project Structure

A typical project layout using the .altimate-code/ directory:

my-project/
  .altimate-code/
    altimate-code.json    # Project config
    agents/               # Custom agent definitions
    commands/             # Custom slash commands
    plugins/              # Custom plugins
    tools/                # Custom tools
    skill/                # Custom skills
  altimate-code.json      # Alternative project config location

Compaction Settings

Control how context is managed when conversations grow long:

{
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 4096
  }
}
Field Default Description
auto true Auto-compact when context is full
prune true Prune old tool outputs
reserved (none) Token buffer to reserve

Info

Compaction automatically summarizes older messages to free up context window space, allowing longer conversations without losing important context. See Context Management for full details.