English | 简体中文
One control plane for Grok Build, Oh My Pi and Antigravity.
OGG Switch unifies three of the most capable AI coding runtimes — xAI's Grok Build, Oh My Pi (OMP) and Google's Antigravity CLI (agy) — behind a single desktop interface. It reads your existing local configuration, presents it as a clean, searchable catalog, and keeps the runtimes in sync without ever asking you to hand-edit a YAML file.
Built with Tauri 2 and Rust, OGG Switch is a ~25 MB native binary with zero telemetry and no cloud dependency. Your keys and configuration never leave your machine.
A catalog of 100+ curated providers
- 20 OAuth sign-in providers — Anthropic, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Antigravity, Devin, GitLab Duo, Kimi Code, Z.AI Coding Plan, Muse Code and more
- 80+ API-key providers across official APIs, gateways, aggregators and local engines (Ollama, LM Studio, llama.cpp, vLLM)
- Every preset's authentication model is aligned with the upstream runtime's own auth policies, so the OAuth/API-key split is always accurate
Semantic role orchestration for Oh My Pi
- All fifteen built-in roles — the ten chat roles (
default,smol,slow,vision,plan,commit,tiny,memory,task,advisor) plus the five kind roles (image,web,speech,dictation,judge) — each mapped to a provider/model pair with optional reasoning depth. CustommodelRoleskeys inconfig.ymlare listed too, so nothing configured in OMP stays hidden from the UI - Role candidates come from OMP's own catalog (including its synthetic
webandlocalproviders), and role edits are written back atomically
Dual-engine, one interface
- Grok Build mode manages the xAI runtime (TOML configuration, model fallback chains, routing)
- Oh My Pi mode works directly on
models.yml/config.yml, with a provider library that keeps removed entries recoverable - Antigravity mode manages Google's
agy: API-key/relay providers via~/.gemini/antigravity-cli/settings.jsonplus persistentGEMINI_API_KEY/GOOGLE_GEMINI_BASE_URLenvironment variables, and multi-account Google login by snapshotting/restoringantigravity-oauth-token - One click to import an existing live configuration as a managed profile
Production-grade plumbing
- Local proxy with automatic failover and per-provider health checks
- Usage analytics split by provider and model, with cost tracking
- Session browser, skills manager, MCP console, prompt library
- Drag-and-drop ordering, bulk import/export, backup and restore
- WebDAV and S3 configuration sync
- Signature-verified in-app auto-update delivered straight from GitHub Releases
Local-first by design
- No telemetry, no accounts, no background network calls
- Configuration is stored in plain files under
~/.ogg-switch/ - Atomic writes with automatic backups
Four languages — English, Simplified Chinese, Traditional Chinese, Japanese
Prebuilt installers are published on the Releases page:
| Platform | Package |
|---|---|
| Windows | .msi installer / .exe (NSIS) |
| macOS | .dmg (Apple Silicon and Intel) |
| Linux | .AppImage / .deb |
macOS note — release builds are not code-signed yet, so Gatekeeper may ask for confirmation on first launch (
System Settings → Privacy & Security → Open Anyway). Notarization is on the roadmap.
OGG Switch checks GitHub Releases on launch and can install updates in place. Every artifact is verified against the public key compiled into the app, so a tampered download is rejected before it is applied.
- Windows — two installers are published. The
.msiinstalls per-machine (one UAC prompt) and registers a privileged update task, so later updates apply silently. The NSIS.exeinstalls per-user and never needs administrator rights. - Linux — in-app updates work for the AppImage build;
.debusers should upgrade through their package manager. - macOS — the updater replaces the
.appbundle in place. Because builds are not notarized yet, macOS may still ask for confirmation once after an update.
Portable builds have no update channel; Check for updates will point you at the Releases page instead.
Requirements: Node.js 20+, pnpm 10+, and a Rust toolchain (rustup).
git clone https://github.com/akiteet/ogg-switch.git
cd ogg-switch
pnpm install
pnpm tauri dev # development build
pnpm tauri build # production installersPackaging release installers requires the updater signing key, because update artifacts are signed during bundling:
pnpm tauri signer generate -w $env:USERPROFILE\.tauri\ogg-switch.key # once
$env:TAURI_SIGNING_PRIVATE_KEY = Get-Content -Raw "$env:USERPROFILE\.tauri\ogg-switch.key"
$env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD = "<your password>"
pnpm tauri buildThe matching public key lives in src-tauri/tauri.conf.json under plugins.updater.pubkey.
For day-to-day work you can skip bundling entirely with pnpm tauri build --no-bundle.
Run the test suites:
pnpm test:unit # frontend (Vitest)
cargo test # Rust coreOGG Switch operates on the configuration files that the runtimes already use — nothing is stored in a proprietary format.
| Runtime | Files |
|---|---|
| OGG Switch | ~/.ogg-switch/ (profiles, proxy state, usage data) |
| Oh My Pi | ~/.omp/agent/models.yml (providers) and ~/.omp/agent/config.yml (roles, retry chains) |
| Antigravity (agy) | ~/.gemini/antigravity-cli/settings.json (modelProvider), persistent env vars (GEMINI_API_KEY, GOOGLE_GEMINI_BASE_URL) and ~/.gemini/antigravity-cli/antigravity-oauth-token (Google account snapshots) |
┌────────────────────────────────────────────────
│ React 19 + TypeScript (Vite) │
│ shadcn/ui · TanStack Query · framer-motion │
├────────────────────────────────────────────────┤
│ Tauri 2 command bridge (IPC) │
├────────────────────────────────────────────────┤
│ Rust core │
│ · runtime adapters (Grok Build / Oh My Pi) │
│ · local proxy + failover data plane │
│ · SQLite state · atomic file writers │
│ · usage aggregation · session & skill indexing│
└────────────────────────────────────────────────┘
- Code signing and notarization for all platforms
- Provider plugins and external preset sources
- Cross-device profile sync improvements
OGG Switch is a derivative work of cc-switch (MIT), whose application shell and provider-management foundation this project builds upon. The upstream copyright notice is preserved in LICENSE and further documented in NOTICE.md.
Thanks also to the Oh My Pi project for the runtime this tool integrates with, the Tauri team for the desktop framework, and the maintainers of shadcn/ui and Lobe Icons for the UI and brand assets.
MIT © 2026 akiteet