-
-
Notifications
You must be signed in to change notification settings - Fork 18
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.
| Platform | Path |
|---|---|
| Linux | ~/.config/models/config.toml |
| macOS | ~/Library/Application Support/models/config.toml |
| Windows | %APPDATA%\models\config.toml |
# 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"]By default, new installations track four agents: Claude Code, Codex, Gemini CLI, and OpenCode.
Press a in the Agents tab to open the tracked agents picker. Toggle agents with Space, save with Enter.
agents list-sources # Interactive tracked-agent managerEdit 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"]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"| 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_commandto find the installed version
By default, all 22 providers are tracked. See Status#tracked-providers for the full list.
Press a in the Status tab to open the provider tracking picker.
Edit the status.tracked array:
[status]
tracked = ["openai", "anthropic", "google", "github"]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
| Setting | Default | Options |
|---|---|---|
default_tab |
(none -- starts on Models) |
"models", "agents", "benchmarks", "status"
|
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"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
Repository · Issues · Releases · brew install models · MIT License