Configuration
August 26, 2026 · View on GitHub
All settings are stored through DMS. Plugin updates do not overwrite user choices.
Settings
| Key | Values | Default | Purpose |
|---|---|---|---|
languageOverride | auto, en_US, pt_BR, zh_CN, es_ES, de_DE | auto | UI language. auto follows the system locale. |
providerSelection | comma-separated IDs | codex,claude,copilot | Enabled providers; at least one is retained. |
refreshInterval | 60000, 120000, 300000, 900000, 1800000 | 120000 | Refresh interval in milliseconds. |
showErrorProviders | true / false | true | Keep failed provider cards visible. |
densityMode | comfortable, compact | comfortable | Compact cards hide the preview bar; expanded details remain available. |
pillMode | auto, custom, top | auto | DankBar pill providers: measurable providers, an explicit compact subset, or the most-used provider. |
pillProviders | comma-separated IDs | provider selection | Strict provider subset used by custom pill mode. The settings UI exposes this as provider chips and never falls back to every tracked provider. |
barWindowOverrides | provider:slot,... | empty | Per-provider DankBar usage window, for example claude:secondary. Slot is primary (default), secondary, tertiary, or highest (most-constrained). Dashboard cards and history keep the primary window. Notifications follow this choice by default (notifyWindowScope = displayed). Providers whose payload lacks the chosen slot fall back to the primary window. |
pillTooltip | true / false | true | Hovering the DankBar pill shows the provider, the quota window the percentage came from, and the reset. With one provider in the pill it also appends resets in .... |
pinnedProviders | comma-separated IDs | empty | Pinned cards sort before other cards. |
providerLogoColor | QML color string | current DMS primary color | Monochrome tint used for provider logos and notification icons. |
quotaNotifications | true / false | true | Enables quota threshold notifications. |
notifyThreshold | 75, 85, or 95 | 85 | Global notification threshold. Per-provider notifyThresholds overrides accept any value from 1–100. |
notifyThresholds | provider:percent,... | empty | Per-provider threshold overrides, for example codex:75,claude:90. Settings validates the CSV inline: malformed pairs, unknown or duplicated providers, providers that are not tracked, and percentages outside 1–100 are reported as you type. |
notifyWindowScope | displayed, all, primary | displayed | Which quota windows raise alerts. displayed follows barWindowOverrides — identical to primary until an override is set. all also alerts on Claude's 7 day, Codex's weekly, and every other secondary window. primary restores the pre-1.12 primary-only behaviour. Each window keeps its own dedupe key, so one provider can alert on both of its windows without either replacing the other. |
notifyCooldownMinutes | 0, 60, 360, or 1440 | 0 | Minutes between repeat alerts; 0 means once per quota window. |
historyRetention | 500, 2000, or 10000 | 2000 | Maximum history snapshots kept locally. |
showClaudeProjects | true / false | true | Shows Claude local project analytics. |
showAntigravityModelDetails | true / false | false | In expanded Antigravity cards, replaces concise Gemini / Claude & OpenAI family rows with individual model rows. |
Exporting usage history
The local store (${XDG_CACHE_HOME:-~/.cache}/AiOverviewControl/usage-history.jsonl)
is trimmed to historyRetention snapshots, so long-term data needs a copy.
Settings offers Export usage history with two formats, and the same script
is runnable directly:
./providers/export-usage-history csv # spreadsheet-friendly
./providers/export-usage-history jsonl # raw store
./providers/export-usage-history csv ~/some/directory
It prints the absolute path of the file it wrote on stdout and writes it
0600. The destination defaults to the XDG download directory, then
~/Downloads, then $HOME.
Resetting
Reset plugin settings in Settings restores every key in this table to its default, including tracked providers, pins, notification thresholds, and DankBar overrides. It is a two-step confirmation and never touches the recorded usage history.
Antigravity display
The default presentation mirrors Antigravity's Models screen: Gemini Models and Claude & OpenAI Models. Each family shows the most constrained model's usage and reset, which is the safe value to act on when models share a quota pool. A real model that cannot yet be classified appears under Other Models; internal placeholder entries are never displayed.
One detected account stays in the normal provider-card layout. When two or more local Antigravity sessions are found, the expanded card shows one clearly labelled block per account and install. If one session fails while another succeeds, the card remains live and shows a partial-account warning with the failed stage and reason. Enable Show individual Antigravity models only when diagnosing a model-specific difference; it intentionally adds more rows.
Environment variables
Environment variables must be present in the process that starts DMS. Shell-only exports (including ~/.zshenv) may not reach a graphical session. For a systemd-managed DMS session, either run cmd login for Command Code (the plugin safely reads its CLI-owned ~/.commandcode/auth.json fallback), or import an already-exported key and restart DMS:
systemctl --user import-environment COMMAND_CODE_API_KEY
systemctl --user restart dms.service
For a durable environment-variable setup, configure your display manager or user-service environment rather than relying on an interactive shell.
Provider readiness labels
The settings health check describes whether the plugin can run an adapter in the current DMS process; it is not a claim that the provider publishes a quota API.
- Ready means the required CLI, local session, database, or environment variable was found.
- Missing names the credential or executable that DMS cannot see. In particular, a key exported only by an interactive shell is invisible when DMS was started by the graphical session.
- Informational means the provider does not expose a stable public read-only quota surface. The plugin can still show a card that points to the official usage page.
- Checking… is transient while the asynchronous readiness command runs. Provider changes made during a running check are queued and checked immediately afterward.
| Provider | Variables |
|---|---|
| Copilot | COPILOT_GITHUB_TOKEN, GH_TOKEN, or GITHUB_TOKEN |
| Gemini | GEMINI_API_KEY, GOOGLE_API_KEY, or GOOGLE_GENERATIVE_AI_API_KEY |
| OpenRouter | OPENROUTER_API_KEY |
| DeepSeek | DEEPSEEK_API_KEY |
| Kimi | Balance: MOONSHOT_API_KEY or KIMI_API_KEY (optional MOONSHOT_API_BASE). Kimi Code subscription quota: KIMI_CODING_API_KEY (or a sk-kimi- prefixed KIMI_API_KEY; optional KIMI_BASE_URL) |
| MiniMax | MINIMAX_API_KEY |
| Command Code | COMMAND_CODE_API_KEY, or the apiKey saved by cmd login in ~/.commandcode/auth.json |
| GLM / Z.ai | ZAI_API_KEY, GLM_API_KEY, or ZHIPU_API_KEY; optional GLM_API_BASE |
| Mistral | MISTRAL_API_KEY |
| Ollama | optional OLLAMA_HOST; requires the ollama CLI in PATH |
| Hermes | optional HERMES_HOME (defaults to ~/.hermes) |
| Claude Code | optional CLAUDE_CONFIG_DIR (defaults to ~/.claude) |
| NVIDIA | NVIDIA_API_KEY |
| Cloudflare | CLOUDFLARE_AI_TOKEN or CLOUDFLARE_API_TOKEN; optional CLOUDFLARE_ACCOUNT_ID |
| Vertex AI | requires gcloud auth print-access-token to succeed at collection time; the readiness chip checks only that the gcloud CLI is in PATH. Optional GOOGLE_CLOUD_PROJECT, GCLOUD_PROJECT, or VERTEXAI_PROJECT enrich the reported identity |
| BytePlus | BYTEPLUS_API_KEY or ARK_API_KEY |
| Qwen | DASHSCOPE_API_KEY or QWEN_API_KEY; optional DASHSCOPE_WORKSPACE_ID |
| Together | TOGETHER_API_KEY |
| Groq | GROQ_API_KEY |
| Cohere | COHERE_API_KEY |
| Replicate | REPLICATE_API_TOKEN |
| Fireworks | FIREWORKS_API_KEY; optional FIREWORKS_ACCOUNT_ID enables quota data |
| AI21 | AI21_API_KEY |
| xAI | XAI_API_KEY |
| Kilo | KILO_API_KEY |
Health indicators
The settings page executes providers/get-provider-health for selected providers:
- Green: required CLI, local database, or environment variable is present.
- Amber: a prerequisite is missing.
- Neutral: informational provider or no check is applicable.
Health checks do not send network requests and never print secret values.
Quota notifications require notify-send and flock in the DMS process environment. Antigravity readiness requires either secret-tool for keyring-backed sessions or sqlite3 plus a readable IDE state database.