v0.1.3 · Cross-platform · MIT

Switch Claude Code providers in one click.

Cross-platform desktop app for managing Claude Code provider profiles. Switch between Anthropic, GLM, Kimi, DeepSeek, Minimax, self-hosted, or any OpenAI-compatible provider — without hand-editing settings.json.

Linux binary
<8MB
Open source
100%
Plain-text secrets
0
claude-config · providers
Active profile

Anthropic

Loaded
Base URL
https://api.anthropic.com
Model
claude-sonnet-4
Token
sk-ant-•••••••••••••2f9c
Keyring
Backups
Encrypted
Features

Everything Claude Code needs.
Nothing it doesn't.

A small, focused app that does one thing well: swap your Claude Code provider profile without touching settings.json by hand.

Unlimited provider profiles

Anthropic, GLM, Kimi, DeepSeek, Minimax, self-hosted, or any OpenAI-compatible endpoint. Name, base URL, auth token, optional model overrides — all in one place.

One-click load

Pick a profile, hit load. The selected env block is written into ~/.claude/settings.json atomically.

OS keyring storage

Auth tokens live in macOS Keychain, GNOME libsecret, or Windows Credential Manager. Never on disk in plaintext.

Non-destructive merge

Only the env block is touched. Hooks, enabledPlugins, extraKnownMarketplaces, and everything else are preserved verbatim.

Automatic backups

Every write snapshots settings.json to <unix-ms>.json — restore any version with one click.

Honors CLAUDE_CONFIG_DIR

Use a custom Claude Code config directory. First launch auto-imports your existing env block as a ready profile.

~5 MB Tauri binaries

Rust backend for file I/O, atomic writes, and keyring access. No Electron. No Chromium bloat.

Open source, MIT

Fully auditable. Build from source with pnpm tauri build. Releases cut from GitHub Actions for every push tag.

Download

Native installers for every desktop.

Small (~5 MB), self-contained, signed builds for Linux, macOS, and Windows. One-click to install.

Ubuntu, Debian, Pop!_OS, Mint

One-line install: curl, apt, launch.

Size
5.27 MB
SHA-256
1fbd8a5544ec
  1. 1

    Download the .deb

    curl -L follows GitHub's redirect to the CDN.

    curl -L -o claude-config.deb \
      "https://github.com/ayan-de/claude-config/releases/download/v0.1.3/Claude.Config_0.1.3_amd64.deb"
  2. 2

    Install with apt

    apt auto-pulls libwebkit2gtk-4.1-0 and libsecret-1-0.

    sudo apt update
    sudo apt install -y ./claude-config.deb
  3. 3

    Launch

    The app appears in your application menu.

    claude-config
Verify the download
sha256bash
# Linux / macOS
sha256sum claude-config.deb
# expected: 1fbd8a5544ec456a4775d0c0b2d8b0c7094bc960d7a411c99a628fe9b19afa0a
View all v0.1.3 assets on GitHub·SHA-256 checksums published per release
Ubuntu / Debian

Three commands. Then you're in.

The whole install takes under a minute on a fresh Ubuntu box. apt resolves libwebkit2gtk and libsecret for you.

Or paste this single command

curl -L -o claude-config.deb "https://github.com/ayan-de/claude-config/releases/download/v0.1.3/Claude.Config_0.1.3_amd64.deb" && sudo apt update && sudo apt install -y ./claude-config.deb && claude-config
  1. 01

    Download the .deb

    curl -L follows GitHub's redirect to the CDN.

    curl -L -o claude-config.deb \
      "https://github.com/ayan-de/claude-config/releases/download/v0.1.3/Claude.Config_0.1.3_amd64.deb"
  2. 02

    Install — apt auto-pulls the deps

    libwebkit2gtk-4.1-0 and libsecret-1-0 are pulled automatically.

    sudo apt update
    sudo apt install -y ./claude-config.deb
  3. 03

    Launch

    Available in your application menu, or run from a terminal.

    claude-config
First launch auto-imports your existing settings.json as a ready profile.
Architecture

A small, focused app.
Auditable down to the byte.

Tauri shell + Next.js frontend + Rust backend. The merge logic is pure, exhaustive, and unit-tested — your settings.json is the only Claude Code file ever touched, and only its env block at that.

Tauri 2
Desktop shell

~5 MB cross-platform binaries. Small, fast, native.

Next.js 16
Frontend

Static export loaded by the Tauri webview. Zero SSR.

Tailwind v4 + shadcn
UI

base-ui primitives. Dark/light themes via CSS variables.

Rust
Backend

File I/O, atomic writes, keyring access. Exhaustive merge tests.

OS keyring
Secrets

Auth tokens never touch disk in plaintext.

Atomic writes
Reliability

tempfile + fsync + rename with exclusive lock held across reads.

Provider data model

One struct. No auth tokens on disk — those live in the OS keyring and are fetched on demand when loading a profile.

src/lib/types.tstypescript
interface Provider {
  id: string;                              // uuid
  name: string;                            // unique, user-facing
  baseUrl: string;                         // → ANTHROPIC_BASE_URL
  model?: string;                          // → ANTHROPIC_MODEL
  smallFastModel?: string;                 // → ANTHROPIC_SMALL_FAST_MODEL
  defaultSonnetModel?: string;             // → ANTHROPIC_DEFAULT_SONNET_MODEL
  defaultOpusModel?: string;               // → ANTHROPIC_DEFAULT_OPUS_MODEL
  defaultHaikuModel?: string;              // → ANTHROPIC_DEFAULT_HAIKU_MODEL
  apiTimeoutMs?: number;                   // → API_TIMEOUT_MS
  disableNonessentialTraffic?: boolean;    // → CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
  createdAt: string;
  updatedAt: string;
}
// The auth token is NOT in this struct — it lives in the OS keyring.

Storage layout

Predictable paths on every OS. Nothing hidden, nothing obfuscated.

What lives where

  • Saved provider metadata<app-data>/providers.json
  • Auth tokensOS keyring · service `claude-config`
  • settings.json backups<app-data>/backups/<unix-ms>.json
  • ~/.claude/settings.jsonClaude Code's own file — env block only

<app-data> paths

  • Linux~/.local/share/com.claudeconfig.app/
  • macOS~/Library/Application Support/com.claudeconfig.app/
  • Windows%APPDATA%\com.claudeconfig.app\

Merge semantics

Loading a profile rewrites the env block with provider-authoritative semantics — stale keys are removed, your own additions are kept.

  1. 1Every canonical key defined by the provider is set.
  2. 2Canonical keys the provider omits are removed — no stale keys accumulate across loads.
  3. 3Unknown keys already in settings.json are preserved — your additions survive.
  4. 4Atomic write: tempfile + fsync + rename with lock_exclusive held across the read-modify-write.

src-tauri/src/merge.rs is the single source of truth. Pure, no I/O, exhaustively unit-tested.

FAQ

Common questions.

If something's missing, open an issue on GitHub — happy to help.

No. The only Claude Code file the app ever writes to is ~/.claude/settings.json, and only the env block at that. Hooks, enabledPlugins, extraKnownMarketplaces, and everything else are preserved verbatim.

In the OS keyring — macOS Keychain, GNOME libsecret (via Secret Service), or Windows Credential Manager. Never on disk in plaintext. The app's providers.json only stores the metadata: name, base URL, model overrides.

Every load snapshots settings.json to <app-data>/backups/<unix-ms>.json. You can restore any snapshot from inside the app.

Yes. The app honors the standard CLAUDE_CONFIG_DIR environment variable. On first launch it auto-imports your existing env block as an "Imported" profile so you start with one entry ready.

Windows binaries will show a SmartScreen warning until Authenticode signing ships (planned). Click More info → Run anyway. macOS: right-click the app → Open → confirm on first launch until notarization ships. Linux: no gatekeeper, just install.

Yes. pnpm install, then pnpm tauri build. Each platform builds on its own host — Tauri does not cross-compile installers. CI publishes release artifacts from a matrix build.

One click to switch.
Three commands to install.

Free, open source, MIT. Pick your platform and you're up and running in under a minute.

Star the repo if it's useful