Skip to content
Ari Mayer edited this page Jun 12, 2026 · 4 revisions

Configuration

Settings are stored in a TOML config file at ~/.config/models/config.toml. The file is created automatically when you customize tracked agents, tracked providers, or benchmark columns through the TUI pickers.

Config file location

Platform Path
Linux ~/.config/models/config.toml
macOS ~/Library/Application Support/models/config.toml
Windows %APPDATA%\models\config.toml

Full config reference

# Config version (do not change manually)
config_version = 0

[agents]
# Which agents to track (agent IDs from the catalog)
tracked = ["claude-code", "codex", "gemini-cli", "opencode"]

# Agents to explicitly exclude
excluded = []

# Custom agents (add one [[agents.custom]] block per agent)
# [[agents.custom]]
# name = "My Agent"
# repo = "owner/repo"
# agent_type = "cli"
# binary = "myagent"
# version_command = ["myagent", "--version"]

[cache]
# GitHub API cache TTL in seconds (default: 3600 = 1 hour)
github_ttl_seconds = 3600

[display]
# Default tab when launching the TUI: "models", "agents", "benchmarks", or "status"
default_tab = "models"

[status]
# Which status providers to track (all tracked by default)
tracked = ["openai", "anthropic", "google", "openrouter", "github", "cursor", "..."]

[aliases]
# Binary names recognized as symlink aliases (see Installation)
agents = "agents"
benchmarks = "benchmarks"
status = "mstatus"

[benchmarks.columns]
# Visible metric columns in the Benchmarks tab, per data source
# (managed by the column picker -- press C in the Benchmarks tab)
aa = ["intelligence_index", "coding_index"]
arena = ["elo_text", "elo_code"]

Tracked agents

By default, new installations track four agents: Claude Code, Codex, Gemini CLI, and OpenCode.

Customizing via TUI

Press a in the Agents tab to open the tracked agents picker. Toggle agents with Space, save with Enter.

Customizing via CLI

agents list-sources    # Interactive tracked-agent manager

Customizing via config file

Edit the agents.tracked array in your config file. Use agent IDs from the catalog:

[agents]
tracked = ["claude-code", "cursor", "goose", "zed", "gemini-cli"]

To explicitly hide an agent that would otherwise appear, add it to the excluded list:

[agents]
excluded = ["cline"]

Custom agents

You can add agents not in the built-in catalog. Custom agents appear in both the TUI and CLI with full GitHub integration (stars, releases, changelogs).

Add one [[agents.custom]] block per agent. To track multiple custom agents, add multiple blocks:

[[agents.custom]]
name = "My Internal Agent"
repo = "myorg/internal-agent"
agent_type = "cli"
binary = "myagent"
version_command = ["myagent", "--version"]

[[agents.custom]]
name = "Custom IDE Plugin"
repo = "myorg/ide-plugin"
agent_type = "ide"

Custom agent fields

Field Required Description
name Yes Display name for the agent
repo Yes GitHub repo in owner/repo format
agent_type No "cli" or "ide"
binary No CLI binary name for version detection
version_command No Command arguments to get the installed version (e.g., ["myagent", "--version"])

Notes:

  • Custom agents are tracked by default — no need to add them to agents.tracked
  • If a custom agent has the same name as a built-in agent, the built-in is used
  • GitHub data (stars, releases, changelogs) is fetched automatically
  • Version detection uses binary + version_command to find the installed version

Tracked status providers

By default, all 22 providers are tracked. See Status#tracked-providers for the full list.

Customizing via TUI

Press a in the Status tab to open the provider tracking picker.

Customizing via config file

Edit the status.tracked array:

[status]
tracked = ["openai", "anthropic", "google", "github"]

GitHub cache

Agent data from GitHub (releases, stars, changelogs) is cached locally with ETag-based conditional fetching for fast startup:

Setting Default Description
github_ttl_seconds 3600 How long cached GitHub data is considered fresh before re-fetching

Cache location:

  • Linux: ~/.local/share/modelsdev/github-cache.json
  • macOS: ~/Library/Application Support/modelsdev/github-cache.json

Display settings

Setting Default Options
default_tab (none -- starts on Models) "models", "agents", "benchmarks", "status"

Command aliases

The [aliases] section sets the binary names recognized as standalone-command symlinks (created with models link -- see Installation):

Setting Default Launches
agents "agents" The agents command suite
benchmarks "benchmarks" The benchmarks picker
status "mstatus" The status command suite

Change a value if a default name collides with another tool on your system, then re-run models link:

[aliases]
benchmarks = "bench"

Benchmark columns

The [benchmarks.columns] section persists which metric columns are visible in the Benchmarks tab list, per data source. Keys are data-source IDs (aa, epoch, arena, llmstats); values are arrays of metric IDs:

[benchmarks.columns]
aa = ["intelligence_index", "coding_index"]
arena = ["elo_text", "elo_code"]

You normally never edit this by hand -- press C in the Benchmarks tab to open the column picker, toggle columns with Space, and save with Enter. Saving writes the selection here; clearing a source's selection removes its entry.

Notes:

  • Selections are stored as metric IDs (not positions), so they survive upstream changes to a source's metric order
  • Saved IDs are restored on launch, source switch, and refresh; IDs for metrics that no longer exist in the data are silently dropped
  • A source with no entry shows only the model name plus the active sort column

Clone this wiki locally