{"id":32784753,"url":"https://github.com/dkmnx/clauver","last_synced_at":"2026-05-01T22:34:10.313Z","repository":{"id":322088674,"uuid":"1088159422","full_name":"dkmnx/clauver","owner":"dkmnx","description":"CLI tool to manage and switch between Claude Code API providers including Anthropic, MiniMax, Z.AI, Kimi, KAT-Coder, and custom providers.","archived":false,"fork":false,"pushed_at":"2025-12-22T01:20:10.000Z","size":439,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-22T16:15:51.953Z","etag":null,"topics":["ai","anthropic","api","bash","claude","claude-code","cli","command-line","developer-tool","llm","shell","tool","utility"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/dkmnx.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":null,"dco":null,"cla":null}},"created_at":"2025-11-02T12:41:08.000Z","updated_at":"2025-12-21T12:07:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dkmnx/clauver","commit_stats":null,"previous_names":["dkmnx/clauver"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/dkmnx/clauver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkmnx%2Fclauver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkmnx%2Fclauver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkmnx%2Fclauver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkmnx%2Fclauver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkmnx","download_url":"https://codeload.github.com/dkmnx/clauver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkmnx%2Fclauver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32515838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ai","anthropic","api","bash","claude","claude-code","cli","command-line","developer-tool","llm","shell","tool","utility"],"created_at":"2025-11-05T02:01:00.768Z","updated_at":"2026-05-01T22:34:10.303Z","avatar_url":"https://github.com/dkmnx.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clauver\n\n```text\n  ██████╗██╗      █████╗ ██╗   ██╗██╗   ██╗███████╗██████╗\n ██╔════╝██║     ██╔══██╗██║   ██║██║   ██║██╔════╝██╔══██╗\n ██║     ██║     ███████║██║   ██║██║   ██║█████╗  ██████╔╝\n ██║     ██║     ██╔══██║██║   ██║╚██╗ ██╔╝██╔══╝  ██╔══██╗\n ╚██████╗███████╗██║  ██║╚██████╔╝ ╚████╔╝ ███████╗██║  ██║\n  ╚═════╝╚══════╝╚═╝  ╚═╝ ╚═════╝   ╚═══╝  ╚══════╝╚═╝  ╚═╝\n```\n\n[![CI](https://github.com/dkmnx/clauver/workflows/CI%20Test%20Suite/badge.svg)](https://github.com/dkmnx/clauver/actions)\n[![Shellcheck](https://img.shields.io/badge/shellcheck-passing-brightgreen)](https://github.com/koalaman/shellcheck)\n[![Version](https://img.shields.io/badge/version-1.13.1-blue)](https://github.com/dkmnx/clauver/tree/v1.13.1)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Claude Code Provider Manager** - Switch between multiple Claude Code API\nproviders seamlessly.\n\n## Overview\n\n_Clauver_ is a powerful CLI tool that allows you to easily manage and switch\nbetween different Claude Code API providers, including:\n\n- **Native Anthropic** - Use your existing Claude Pro/Team subscription\n- **Z.AI** - Zhipu AI's GLM models\n- **MiniMax** - MiniMax AI's MiniMax-M2 model\n- **Kimi** - Moonshot AI's Kimi K2 model\n- **DeepSeek** - DeepSeek AI's DeepSeek models\n- **Custom Providers** - Add your own provider\n\n\u003e _**⚠️ Platform Compatibility**:\nThis script has been tested and confirmed to work on Linux only.\nWhile it may work on other Unix-like systems (macOS, WSL), compatibility is not guaranteed._\n\n## Features\n\n- **Easy Provider Switching** - Switch providers with a single command\n- **Secure API Key Management** - API keys encrypted with age (X25519)\n- **Configuration Testing** - Test provider configurations before use\n- **Default Provider** - Set a default provider for quick access\n- **Auto-completion** - Tab completion for bash, zsh, and fish\n- **Quick Setup Wizard** - Interactive setup for beginners\n- **Status Monitoring** - Check all configured providers at once\n- **Self-Update** - Update to the latest version with a single command\n- **Encrypted Storage** - Secrets encrypted at rest, decrypted in memory only\n\n## Requirements\n\n- **claude CLI** - Install with: `npm install -g @anthropic-ai/claude-code`\n- **age** - For encryption: `sudo apt install age` (or `brew install age` on macOS)\n- **Bash/Zsh/Fish** - For auto-completion\n- **API Keys** - For third-party providers\n\n## Installation\n\n### Quick Install\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/dkmnx/clauver/main/install.sh | bash\n```\n\nThe installer will:\n\n- ✅ Check for the `claude` command\n- ✅ Install clauver to `~/.clauver/bin/`\n- ✅ Set up auto-completion\n- ✅ Add to PATH (if needed)\n\n### Manual Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/dkmnx/clauver clauver\ncd clauver\n\n# Install\nmkdir -p ~/.clauver/bin\ncp clauver.sh ~/.clauver/bin/clauver\nchmod +x ~/.clauver/bin/clauver\n\n# Add to PATH\necho 'export PATH=\"$HOME/.clauver/bin:$PATH\"' \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n```\n\n## Usage\n\n### Setup Wizard\n\n```bash\nclauver setup        # Interactive setup wizard\n```\n\n### Configure Providers\n\n```bash\nclauver config zai           # Configure Z.AI\nclauver config minimax       # Configure MiniMax\nclauver config kimi          # Configure Kimi\nclauver config deepseek      # Configure DeepSeek\nclauver config anthropic     # Configure Native Anthropic\nclauver config custom        # Add custom provider\n```\n\n### Use Providers\n\n```bash\nclauver anthropic    # Use Native Anthropic\nclauver zai          # Use Z.AI\nclauver minimax      # Use MiniMax\nclauver kimi         # Use Kimi\nclauver deepseek     # Use DeepSeek\nclauver \u003ccustom\u003e     # Use custom provider\n```\n\n### Default Provider\n\nSet a default provider for quick access:\n\n```bash\n# Set default provider\nclauver default zai\n\n# Show current default\nclauver default\n\n# Use default provider (no arguments needed)\nclauver \"What can you help me with?\"\n```\n\n### Manage Providers\n\n```bash\nclauver list         # List all providers\nclauver status       # Check provider status\nclauver test \u003cname\u003e  # Test a provider\nclauver migrate      # Migrate plaintext secrets to encrypted storage\nclauver default      # Show or set default provider\nclauver version      # Show current version and check for updates\nclauver update       # Update to the latest version\nclauver help         # Show help\n```\n\n## Examples\n\n### Basic Usage\n\n```bash\n# First time setup\nclauver setup\n\n# Configure a provider\nclauver config minimax\n# Enter your MiniMax API key when prompted\n\n# Use the provider\nclauver minimax \"Write a Python function to calculate fibonacci numbers\"\n\n# Check status\nclauver status\n```\n\n### Testing Configuration\n\n```bash\n# Test a specific provider\nclauver test zai\n\n# Test all providers\nclauver status\n```\n\n### Setting a Default Provider\n\n```bash\n# Set your preferred default provider\nclauver default minimax\n\n# Verify the default is set\nclauver default\n\n# Use the default provider\nclauver \"Help me write a bash script\"\n\n# Change your default anytime\nclauver default anthropic\n```\n\n### Version Management\n\n```bash\n# Check current version and available updates\nclauver version\n\n# Update to the latest version\nclauver update\n\n# Both commands work without confirmation prompts\n# Update will show \"already up to date\" if on latest version\n```\n\n## Encryption \u0026 Key Management\n\n### Encryption Overview\n\nClauver automatically encrypts all API keys using\n[age](https://github.com/FiloSottile/age), a modern and secure file encryption\ntool. Your secrets are:\n\n- Encrypted at rest on disk\n- Only decrypted into memory when needed\n- Never written to disk as plaintext\n\n### Key Backup\n\n**CRITICAL**: Back up your encryption key immediately after installation!\n\n```bash\n# Your encryption key location\n~/.clauver/age.key\n\n# Back up your key (choose one method):\ncp ~/.clauver/age.key ~/backup/clauver-age.key.backup\ncp ~/.clauver/age.key /path/to/external/drive/\n```\n\n**Without your age key, you cannot decrypt your secrets!**\n\n### Key Recovery\n\nIf you lose your encryption key:\n\n```bash\n# 1. If you have a backup, restore it:\ncp ~/backup/clauver-age.key.backup ~/.clauver/age.key\nchmod 600 ~/.clauver/age.key\n\n# 2. If you don't have a backup, you'll need to reconfigure:\nrm ~/.clauver/secrets.env.age  # Remove encrypted file\nclauver config \u003cprovider\u003e       # Reconfigure your providers\n```\n\n### Migrating from Plaintext\n\nIf you're upgrading from an older version with plaintext secrets:\n\n```bash\n# Check your current storage type\nclauver status\n\n# Migrate to encrypted storage\nclauver migrate\n\n# Verify encryption is active\nclauver status  # Should show \"🔒 Secrets Storage: Encrypted\"\n```\n\n### Using Configs on Multiple Machines\n\nYour encryption key is portable! To use your configs on another machine:\n\n```bash\n# On original machine - backup both files:\ncp ~/.clauver/age.key ~/backup/\ncp ~/.clauver/secrets.env.age ~/backup/\n\n# On new machine - restore both files:\nmkdir -p ~/.clauver\ncp ~/backup/age.key ~/.clauver/\ncp ~/backup/secrets.env.age ~/.clauver/\nchmod 600 ~/.clauver/age.key\nchmod 600 ~/.clauver/secrets.env.age\n\n# Verify it works:\nclauver list\n```\n\n### Custom Provider\n\n```bash\n# Add a custom provider\nclauver config custom\n# Provider name: my-provider\n# Base URL: https://api.example.com/anthropic\n# API Key: your-api-key\n# Model: your-model\n\n# Use it\nclauver my-provider \"Hello\"\n```\n\n## Auto-completion\n\n_Clauver_ includes auto-completion for `bash`, `zsh`, and `fish`.\n\nAfter installation, try:\n\n```bash\nclauver \u003cTAB\u003e\u003cTAB\u003e        # Show available commands\nclauver z\u003cTAB\u003e            # Complete to 'clauver zai'\n```\n\n## Testing\n\n_Clauver_ includes a comprehensive test suite with unit tests, integration tests,\nsecurity validation, and performance benchmarks.\n\n### Quick Test\n\n```bash\n# Run all tests\ncd tests/\nmake test\n\n# Or use the test runner\n./run_all_tests.sh\n```\n\n### Full Documentation\n\nFor detailed testing information, including:\n\n- Test categories and coverage areas\n- CI/CD pipeline and continuous integration\n- Security testing and performance benchmarks\n- Contributing guidelines for tests\n\n👉 See **[tests/README.md](tests/README.md)** for complete testing documentation.\n\n## Configuration Storage\n\n_Clauver_ uses an encrypted configuration system:\n\n```text\n~/.clauver/\n├── secrets.env.age        # Encrypted API keys (age encrypted)\n├── age.key                # Encryption key (chmod 600) - BACK THIS UP!\n├── config                 # Provider configurations (chmod 600)\n├── bin/\n│   └── clauver           # Installed binary\n└── completions/          # Auto-completion files\n```\n\n### Configuration Files\n\n- **secrets.env.age**: Encrypted API keys using age (X25519) encryption\n  - `ZAI_API_KEY`\n  - `MINIMAX_API_KEY`\n  - `KIMI_API_KEY`\n  - `DEEPSEEK_API_KEY`\n\n\u003e _Secrets are only decrypted into memory, never written to disk as plaintext_\n\n- **age.key**: Your encryption key (automatically generated)\n  - **CRITICAL**: Back up this file! Without it, you cannot decrypt your secrets\n  - Portable across machines - copy this file to use your configs elsewhere\n  - Located at: `~/.clauver/age.key`\n\n- **config**: Stores provider configurations:\n  - Base URLs, models, and endpoint IDs\n  - Custom provider definitions\n  - `default_provider` - Your preferred default provider\n\n### Security Features\n\n- **Encrypted at Rest**: API keys are encrypted using age (modern, secure encryption)\n- **Memory-Only Decryption**: Secrets decrypted directly into memory via\n  process substitution\n- **No Plaintext on Disk**: Encrypted file is never written as plaintext\n- **Session Caching**: Secrets decrypted once per session for performance\n- **Automatic Key Generation**: Encryption key auto-generated on first use\n- **Migration Support**: Seamlessly migrate from plaintext to encrypted storage\n\n## Troubleshooting\n\nHaving issues? See complete **[troubleshooting](TROUBLESHOOTING.md)** guide.\n\nCommon fixes:\n\n- **PATH issues**: `export PATH=\"$HOME/.clauver/bin:$PATH\"`\n- **Missing dependencies**: `npm install -g @anthropic-ai/claude-code`\n- **age encryption**: `sudo apt install age` (or `brew install age`)\n- **Provider tests**: `clauver test \u003cprovider\u003e`\n- **Status check**: `clauver status`\n\n## Credits\n\n_Clauver_ is heavily inspired by **[clother](https://github.com/jolehuit/clother)**\nby [jolehuit](https://github.com/jolehuit).\nSpecial thanks to the original project for the inspiration and architectural concepts.\n\n## License\n\n[MIT](LICENSE) (c) 2025 [dkmnx](https://github.com/dkmnx)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkmnx%2Fclauver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkmnx%2Fclauver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkmnx%2Fclauver/lists"}