{"id":34752133,"url":"https://github.com/bahayonghang/ccr","last_synced_at":"2026-02-11T06:13:49.260Z","repository":{"id":318807425,"uuid":"1073478580","full_name":"bahayonghang/ccr","owner":"bahayonghang","description":"claude code configuration switcher(Rust Version)","archived":false,"fork":false,"pushed_at":"2026-02-04T15:57:40.000Z","size":10444,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-05T03:26:09.848Z","etag":null,"topics":["claude-code"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bahayonghang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-10-10T07:08:43.000Z","updated_at":"2026-01-12T16:11:30.000Z","dependencies_parsed_at":"2025-10-16T04:32:33.639Z","dependency_job_id":"40713241-f845-4a4e-9763-f8e6a0e938db","html_url":"https://github.com/bahayonghang/ccr","commit_stats":null,"previous_names":["bahayonghang/ccr"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/bahayonghang/ccr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahayonghang%2Fccr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahayonghang%2Fccr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahayonghang%2Fccr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahayonghang%2Fccr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bahayonghang","download_url":"https://codeload.github.com/bahayonghang/ccr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahayonghang%2Fccr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29328041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T06:13:03.264Z","status":"ssl_error","status_checked_at":"2026-02-11T06:12:55.843Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code"],"created_at":"2025-12-25T05:24:20.948Z","updated_at":"2026-02-11T06:13:49.254Z","avatar_url":"https://github.com/bahayonghang.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CCR (Claude Code Configuration Switcher)\n\n**High-performance, multi-platform configuration management tool written in Rust.**  \nUnified management for specific AI CLI tools including **Claude Code**, **Codex**, **Gemini**, **Qwen**, and more.\n\n![Version](https://img.shields.io/badge/version-3.17.3-blue.svg) ![License](https://img.shields.io/badge/license-MIT-green.svg) ![Build](https://img.shields.io/badge/build-passing-brightgreen.svg)\n\n---\n\n## ✨ Features\n\n- **Multi-Platform Support**: Unified management for Claude, Codex, Gemini, Qwen, and iFlow. Each platform has independent profiles, history, and backups.\n- **Enterprise-Grade Safety**: Atomic writes, file locking (`fs4`), comprehensive audit logs, and automatic backups before every modification.\n- **Multi-Interface**: \n  - **CLI**: Powerful command-line interface for all operations.\n  - **TUI**: Interactive terminal configuration selector with Tab navigation.\n  - **Web API**: Embedded Axum server for external integration.\n  - **Desktop UI**: Full-stack application built with Vue 3 + Tauri.\n- **Smart Sync**: WebDAV-based multi-folder synchronization (`web` feature) to keep your configs consistent across machines.\n- **Secure**: Sensitive data (API keys, tokens) is automatically masked in outputs.\n\n## 📦 Installation\n\n### One-Line Install\n```bash\ncargo install --git https://github.com/bahayonghang/ccr ccr\n```\n\n### Install from dev branch (Recommended for latest features)\n```bash\ncargo install --git https://github.com/bahayonghang/ccr --branch dev ccr\n```\n\n### From Source\n```bash\ngit clone https://github.com/bahayonghang/ccr.git\ncd ccr\ncargo install --path .\n```\n\n### Build Requirements\n- **Rust**: 1.88+ (Edition 2024)\n- **Node.js**: 18+ (For UI development)\n\n## 🚀 Quick Start\n\n### 1. Initialize\nInitialize the unified configuration structure in `~/.ccr/`:\n```bash\nccr init\n```\n\n### 2. Select Platform\nSwitch to your desired platform (default is usually `claude`):\n```bash\n# List available platforms\nccr platform list\n\n# Switch to Gemini (for example)\nccr platform switch gemini\n```\n\n### 3. Manage Configurations\n```bash\n# Interactive wizard to add a new config\nccr add\n\n# List all configs for current platform\nccr list\n\n# View current configuration status\nccr status\n\n# Switch to a specific config\nccr switch my-work-config\n\n# Quick switch (shorthand)\nccr my-work-config\n```\n\n\n### 4. Interactive TUI\nLaunch the Terminal UI configuration selector:\n```bash\n# Simply run ccr without arguments\nccr\n```\n\n**Keyboard Shortcuts:**\n| Key | Action |\n|-----|--------|\n| `Tab` | Switch between Claude/Codex platforms |\n| `←` / `→` | Navigate pages (when \u003e20 configs) |\n| `↑` / `↓` / `j` / `k` | Select configuration |\n| `Enter` | Apply selected configuration and exit |\n| `Space` | Apply selected configuration (stay in TUI) |\n| `q` / `Esc` | Quit |\n\n**Features:**\n- Dual-tab interface for Claude Code and Codex CLI\n- Pagination support (20 configs per page)\n- Real-time status messages at the bottom\n- Platform-specific color themes (Orange for Claude, Purple for Codex)\n\n## 🖥️ CCR UI\n\nA modern graphical interface is available for managing your configurations.\n\n```bash\n# Launch the UI (auto-detects workspace or downloads release)\nccr ui\n\n# Specify custom port\nccr ui -p 3000\n```\n\n## 🔐 Codex Multi-Account Management\n\nCCR provides powerful multi-account management for Codex CLI, allowing you to easily switch between different GitHub accounts.\n\n### Basic Commands\n\n```bash\n# Save current login as a named account\nccr codex auth save work\n\n# Save with description\nccr codex auth save personal -d \"Personal GitHub account\"\n\n# Save with expiry time\nccr codex auth save temp --expires-at 2026-02-01T00:00:00Z\n\n# Force overwrite existing account\nccr codex auth save work --force\n\n# List all saved accounts\nccr codex auth list\n\n# Switch to a specific account\nccr codex auth switch work\n\n# Show current account info\nccr codex auth current\n\n# Delete an account\nccr codex auth delete old-account\n\n# Delete without confirmation\nccr codex auth delete old-account --force\n```\n\n### Export \u0026 Import\n\n```bash\n# Export all accounts to Downloads folder\nccr codex auth export\n\n# Export without sensitive data (tokens)\nccr codex auth export --no-secrets\n\n# Import accounts from file (interactive)\nccr codex auth import\n\n# Import in replace mode (overwrite existing accounts)\nccr codex auth import --replace\n\n# Import with force (overwrite in merge mode)\nccr codex auth import --force\n```\n\n**Import Modes:**\n- **Merge (default)**: Skip existing accounts, only add new ones\n- **Merge + --force**: Overwrite existing accounts with imported data\n- **Replace**: Always overwrite accounts with the same name\n\n### Interactive TUI\n\nLaunch the Codex account management interface:\n```bash\nccr codex\n```\n\n**Features:**\n- Visual account list with token freshness indicators\n- 🟢 Fresh (\u003c1 day) | 🟡 Stale (1-7 days) | 🔴 Old (\u003e7 days)\n- Process detection warnings before switching\n- Email masking for privacy (e.g., `use***@example.com`)\n\n## 🔄 Auto Update\n\nCCR supports automatic updates from GitHub to the latest version.\n\n```bash\n# Update from main branch (stable)\nccr update\n\n# Update from dev branch (latest features)\nccr update dev\n\n# Check for updates only, without installing\nccr update --check\n\n# Check for dev branch updates\nccr update dev --check\n```\n\n| Command | Description |\n|---------|-------------|\n| `ccr update` | Update to the latest stable version from `main` branch |\n| `ccr update dev` | Update from `dev` branch to get the latest features |\n| `ccr update --check` | Preview the update command without executing |\n\n\n## 🛠️ Development\n\nThis project uses `just` for task automation.\n\n```bash\n# Build all features\njust build\n\n# Run tests\njust test\n\n# Check code quality\njust check\njust lint\n```\n\n## 📂 Project Structure\noverview\n```text\nccr/\n├── src/            # Core Rust logic (CLI, TUI, Web API)\n├── ccr-ui/         # Full-stack Web/Desktop App (Vue 3 + Tauri)\n├── tests/          # Integration tests\n└── justfile        # Task runner configuration\n```\n\n## 📄 License\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahayonghang%2Fccr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbahayonghang%2Fccr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahayonghang%2Fccr/lists"}