Skip to content

Configuration ​

QuotaDeck works without a configuration file. The default path is:

text
${XDG_CONFIG_HOME:-~/.config}/quotadeck/config.yaml

Copy config.example.yaml when you need multiple Codex homes or explicit Z.ai accounts.

Defaults ​

SettingDefaultPurpose
server.bind127.0.0.1Loopback-only HTTP API
server.port9211Dashboard and API port
storage.databaseXDG data directorySQLite history database
storage.retentionDays30Snapshot retention
polling.interval60sProvider refresh interval
polling.timeout20sPer-provider timeout

QuotaDeck rejects public bind addresses during validation.

Multiple Codex profiles ​

yaml
providers:
  codex:
    enabled: true
    binary: codex
    accounts:
      - label: Personal
        home: ~/.codex
      - label: Work
        home: ~/.codex-work

If accounts is empty, QuotaDeck honors the process CODEX_HOME and then falls back to ~/.codex.

Z.ai environment references ​

Configuration stores the name of an environment variable, never its token:

yaml
providers:
  zai:
    enabled: true
    accounts:
      - label: GLM Team
        keyEnv: ZAI_TEAM_API_KEY

The packaged user service automatically reads this optional private environment file:

text
~/.config/quotadeck/environment

Create it with restrictive permissions:

bash
install -d -m 700 ~/.config/quotadeck
install -m 600 /dev/null ~/.config/quotadeck/environment

Put ZAI_TEAM_API_KEY=... in that file and restart the service:

bash
systemctl --user daemon-reload
systemctl --user restart quotadeck.service

Keep the file outside source control and readable only by your user. When running quotadeck serve directly, expose the same variables in the process environment.

Kimi Code ​

Kimi for Coding is discovered automatically when Kimi Code CLI is signed in: QuotaDeck reads the credential file under ~/.kimi-code/credentials in memory only. Alternatively, expose a Kimi key the same way as Z.ai:

yaml
providers:
  kimi:
    enabled: true
    accounts:
      - label: personal
        keyEnv: KIMI_API_KEY

KIMI_API_KEY and KIMI_CODING_API_KEY are checked even without configuration. A Kimi base URL in ~/.claude/settings.json is also recognized, so routing Claude Code through Kimi makes the plan appear without extra setup.

Dashboard configuration ​

Open Manage plans on the dashboard for the same setup without editing files manually:

  • Save key updates ZAI_API_KEY in the private QuotaDeck environment file;
  • Save & use Z.ai also configures ~/.claude/settings.json for the official Z.ai Anthropic endpoint;
  • choosing Use in Claude Code on a quota card removes the active Z.ai routing keys and runs cswap switch for the selected slot.

QuotaDeck never includes a stored key in API responses, diagnostics, logs, or SQLite. Leaving the key field blank keeps the already stored value.

Local-first. Zero telemetry.