One CLI to Rule Them All.
Tired of juggling multiple AI coding assistants? CAM is a unified Python CLI to manage configurations, prompts, skills, and plugins for 13 AI assistants including Claude, Codex, Gemini, Qwen, Copilot, and more from a single, polished terminal interface.
In the era of AI-driven development, developers often use multiple powerful assistants like Claude, GitHub Copilot, and Gemini. However, this leads to a fragmented and inefficient workflow:
- Scattered Configurations: Each tool has its own setup, API keys, and configuration files.
- Inconsistent Behavior: System prompts and custom instructions diverge, leading to different AI behaviors across projects.
- Wasted Time: Constantly switching between different CLIs and UIs is a drain on productivity.
CAM solves this by providing a single, consistent interface to manage everything, turning a chaotic toolkit into a cohesive and powerful development partner.
- Unified Management: One tool (
cam) to install, configure, and run all your AI assistants. - Centralized Configuration: Manage all API keys and endpoint settings from a single
providers.jsonfile with environment variables in.env. - Interactive TUI: A polished, interactive menu (
cam launch) for easy navigation and operation with arrow-key navigation. - MCP Registry: Built-in registry with 381 pre-configured MCP servers ready to install across all supported tools.
- Extensible Framework: Standardized architecture for managing:
- Agents: Standalone assistant configurations (markdown-based with YAML front matter).
- Prompts: ✨ Reusable system prompts with fancy name generation synced across assistants at user or project scope.
- Skills: Custom tools and functionalities for your agents (directory-based with SKILL.md).
- Plugins: Marketplace extensions for supported assistants (GitHub repos or local paths).
- MCP Support: First-class support for the Model Context Protocol (MCP), allowing assistants to connect to external data sources and tools.
- Parallel Upgrades: Concurrent tool upgrades with npm version checking and progress visualization.
- Diagnostics: A comprehensive
doctorcommand to validate your environment, API keys, tool installations, and cache status. - Enterprise Security: Config-first approach eliminates shell injection vulnerabilities with secure MCP client implementations.
- Automated Quality Assurance: Built-in complexity monitoring, file size limits, and comprehensive CI/CD quality gates.
CAM supports 13 AI coding assistants:
| Assistant | Command | Description | Install Method |
|---|---|---|---|
| Claude | claude |
Anthropic Claude Code CLI | Shell script |
| Codex | codex |
OpenAI Codex CLI | npm |
| Gemini | gemini |
Google Gemini CLI | npm |
| Qwen | qwen |
Alibaba Qwen Code CLI | npm |
| Copilot | copilot |
GitHub Copilot CLI | npm |
| CodeBuddy | codebuddy |
Tencent CodeBuddy CLI | npm |
| Droid | droid |
Factory.ai Droid CLI | Shell script |
| iFlow | iflow |
iFlow AI CLI | npm |
| Crush | crush |
Charmland Crush CLI | npm |
| Cursor | cursor-agent |
Cursor Agent CLI | Shell script |
| Neovate | neovate |
Neovate Code CLI | npm |
| Qoder | qodercli |
Qoder CLI | npm |
| Zed | zed |
Zed Editor | Shell script |
| Feature | Claude | Codex | Gemini | Qwen | CodeBuddy | Droid | Copilot |
|---|---|---|---|---|---|---|---|
| Agent Management | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
| Prompt Syncing | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ |
| Skill Installation | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| Plugin Support | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| MCP Integration | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
MCP Integration is supported across all 13 assistants including: Claude, Codex, Gemini, Qwen, Copilot, CodeBuddy, Droid, iFlow, Zed, Qoder, Neovate, Crush, and Cursor.
Note: Some tools (Zed, Qoder, Neovate) are disabled by default in the menu as they are still under development. You can enable them in
tools.yamlby settingenabled: true.
# Install via pip (Python 3.9+)
pip install code-assistant-manager
# Or install using the install script
./install.sh
# Or install directly from the web
curl -fsSL https://raw.githubusercontent.com/Chat2AnyLLM/code-assistant-manager/main/install.sh | bashCreate a providers.json file in ~/.config/code-assistant-manager/ or your project root:
{
"common": {
"http_proxy": "http://proxy.example.com:8080/",
"https_proxy": "http://proxy.example.com:8080/",
"cache_ttl_seconds": 86400
},
"endpoints": {
"my-litellm": {
"endpoint": "https://api.example.com:4142",
"api_key_env": "API_KEY_LITELLM",
"list_models_cmd": "python -m code_assistant_manager.litellm_models",
"supported_client": "claude,codex,qwen,copilot",
"description": "My LiteLLM Proxy"
}
}
}Create a .env file in your home directory or project root:
API_KEY_LITELLM="your-api-key-here"
GITHUB_TOKEN="your-github-token"
GEMINI_API_KEY="your-gemini-key"cam doctorThis runs comprehensive diagnostics including:
- Installation verification
- Configuration file validation
- Environment variable checks (Gemini/Vertex AI, GitHub Copilot)
- Tool installation status
- Endpoint connectivity
- Cache status and security audit
# Interactive menu to select assistant and model
cam launch
# Or launch a specific assistant directly
cam launch claude
cam launch codex
cam launch gemini| Command | Alias | Description |
|---|---|---|
cam launch [TOOL] |
l |
Launch interactive TUI or a specific assistant |
cam doctor |
d |
Run diagnostic checks on environment and API keys |
cam agent |
ag |
Manage agent configurations (list, install, fetch from repos) |
cam prompt |
p |
Manage and sync system prompts across assistants |
cam skill |
s |
Install and manage skill collections |
cam plugin |
pl |
Manage marketplace extensions (plugins) |
cam mcp |
m |
Manage MCP servers (add, remove, list, install) |
cam upgrade [TARGET] |
u |
Upgrade tools (default: all) with parallel execution |
cam install [TARGET] |
i |
Alias for upgrade |
cam uninstall [TARGET] |
un |
Uninstall tools and backup configurations |
cam config |
cf |
Manage CAM's internal configuration files |
cam completion |
c |
Generate shell completion scripts (bash, zsh, fish) |
cam version |
v |
Display current version |
cam mcp add <tool> <server> # Add an MCP server to a tool
cam mcp remove <tool> <server> # Remove an MCP server
cam mcp list <tool> # List configured MCP servers
cam mcp install --all # Install MCP servers for all tools
cam mcp registry search <query> # Search the MCP server registrycam agent list # List available agents
cam agent install <agent> # Install an agent
cam agent fetch # Fetch agents from configured repos
cam agent repos # Manage agent repositoriescam prompt list # List all saved prompts
cam prompt add [NAME] -f FILE # Add prompt (auto-generates fancy name ✨)
cam prompt update NAME -f FILE # Update prompt content, name, or settings
cam prompt import --app claude # Import from live app files (fancy names ✨)
cam prompt install NAME --app claude # Install prompt to app files
cam prompt remove NAME # Remove a prompt
cam prompt status # Show where prompts are installed with file pathscam skill list # List available skills
cam skill install <skill> # Install a skill
cam skill fetch # Fetch skills from configured reposCAM supports plugin management for compatible assistants (currently Claude and CodeBuddy). Plugins are organized into marketplaces that can be browsed and installed.
cam plugin marketplace add <source> # Add marketplace to CAM config
cam plugin marketplace list # List configured marketplaces
cam plugin marketplace remove <name> # Remove marketplace from CAM configcam plugin marketplace install <name> # Install marketplace to Claude/CodeBuddy
cam plugin marketplace update [name] # Update installed marketplaces in appscam plugin list # List installed/enabled plugins
cam plugin repos # List available plugin repositories
cam plugin add-repo <owner>/<repo> # Add plugin repository to CAM config
cam plugin remove-repo <name> # Remove plugin repository from CAM config
cam plugin install <plugin>[@marketplace] # Install a plugin from marketplace
cam plugin uninstall <plugin> # Uninstall a plugin
cam plugin enable <plugin> # Enable a disabled plugin
cam plugin disable <plugin> # Disable an enabled plugin
cam plugin browse [marketplace] # Browse plugins in marketplaces
cam plugin view <plugin> # View detailed plugin information
cam plugin status # Show plugin system status
cam plugin validate <path> # Validate plugin/marketplace manifestCAM implements industry-standard design patterns for maintainability and extensibility:
- Value Objects: Immutable domain primitives with validation (
APIKey,EndpointURL,ModelID) - Factory Pattern: Centralized tool creation via
ToolFactorywith registration decorators - Strategy Pattern: Pluggable installers for different package managers (npm, pip, shell)
- Repository Pattern: Data access abstraction for configuration and caching
- Service Layer: Business logic separation (
ConfigurationService,ModelService) - Chain of Responsibility: Validation pipeline for configuration
code_assistant_manager/
├── cli/ # Modern Typer-based CLI with standardized patterns
│ ├── app.py # Main app entry point with sub-apps
│ ├── base_commands.py # Standardized command base classes (NEW)
│ │ ├── BaseCommand # Common functionality, error handling, logging
│ │ ├── AppAwareCommand # Commands that work with AI apps
│ │ ├── PluginCommand # Plugin-specific operations
│ │ └── PromptCommand # Prompt management operations
│ ├── commands.py # Legacy command definitions
│ ├── option_utils.py # Shared CLI utilities
│ ├── options.py # Common CLI option definitions
│ ├── prompts_commands.py # Prompt management (refactored)
│ ├── plugin_commands.py # Plugin orchestration
│ └── plugins/ # Plugin subcommand modules
│ ├── plugin_discovery_commands.py
│ ├── plugin_install_commands.py
│ └── plugin_marketplace_commands.py
├── mcp/ # Enhanced Model Context Protocol
│ ├── base.py # Secure MCP base classes
│ ├── base_client.py # MCP client base class
│ ├── clients.py # Tool-specific MCP clients
│ ├── [tool]_client.py # Individual client implementations
│ └── registry/ # 381 pre-configured MCP servers
├── tools/ # Tool implementations (13 assistants)
│ ├── base.py # CLITool base class
│ ├── claude.py, codex.py, gemini.py, ...
│ └── registry.py # Tool registry from tools.yaml
├── prompts/ # Centralized prompt management
│ ├── manager.py # PromptManager with sync capabilities
│ └── claude.py, codex.py, copilot.py, ...
├── plugins/ # Marketplace plugin system
│ ├── manager.py # PluginManager with marketplace support
│ └── claude.py, codebuddy.py
├── menu/ # Interactive TUI components
│ ├── base.py # Menu base classes with arrow navigation
│ └── menus.py # Centered menus, model selectors
├── upgrades/ # Tool installation/upgrade system
│ ├── installer_factory.py # Strategy selection
│ └── npm_upgrade.py, pip_upgrade.py, shell_upgrade.py
├── config.py # ConfigManager with validation
├── domain_models.py # Rich domain objects
├── value_objects.py # Validated primitives
├── factory.py # ToolFactory and ServiceContainer
├── services.py # Business logic services
└── tools.yaml # Tool definitions and install commands
CAM stores data in ~/.config/code-assistant-manager/:
providers.json- Endpoint configurationsagents.json- Agent metadata cacheskills.json- Skill metadata cacheprompts.json- Saved prompts with active mappingsplugins.json- Plugin registryagent_repos.json,skill_repos.json,plugin_repos.json- Repository sources
- Create a tool class in
code_assistant_manager/tools/extendingCLITool - Define
command_name,tool_key, andinstall_description - Add entry to
tools.yamlwithinstall_cmdand environment configuration - Create handlers in
agents/,skills/,prompts/,mcp/as needed - The tool is auto-discovered via
CLITool.__subclasses__()
Contributions are welcome! Please see our Developer Guide and Contributing Guidelines to get started.
# Clone and install
git clone https://github.com/Chat2AnyLLM/code-assistant-manager.git
cd code-assistant-manager
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=code_assistant_manager
# Code formatting (auto-formatted via pre-commit)
black code_assistant_manager tests
isort code_assistant_manager tests
# Code quality checks
radon cc --min C code_assistant_manager # Complexity analysis
radon mi --min C code_assistant_manager # Maintainability index
python scripts/check_file_sizes.py # File size limits
# Linting
flake8 code_assistant_manager
mypy code_assistant_managerCAM maintains enterprise-grade code quality through automated monitoring:
- Complexity Limits: Functions limited to B-C complexity levels (<18 branches)
- File Size Limits: No file exceeds 500 lines
- Security: Config-first approach eliminates shell injection vulnerabilities
- Testing: 95%+ test coverage with comprehensive edge case handling
- CI/CD: Automated quality gates prevent code quality regression
pytest tests/test_cli.py # CLI tests
pytest tests/test_config.py # Configuration tests
pytest tests/unit/ # Unit tests
pytest tests/integration/ # Integration tests
pytest tests/unit/test_prompts_cli.py::test_show_copilot_live_prompt # Specific testThis project is licensed under the MIT License.
Version 1.x.x introduces significant enhancements to code quality, security, and maintainability:
- Function Complexity: Reduced from D-level (21-30 branches) to B-C level (<18 branches)
- Code Architecture: Implemented standardized CLI command base classes
- File Organization: Broke down monolithic functions into focused, testable units
- MCP Client Security: Config-first approach eliminates shell injection vulnerabilities
- Input Validation: Comprehensive validation with consistent error handling
- Trusted Sources: Commands only executed from verified tool registries
- Automated Complexity Monitoring: CI/CD checks using radon cc/mi analysis
- File Size Limits: Enforced 500-line maximum per file
- Comprehensive Testing: 46 new unit tests covering all refactored functionality
- Quality Gates: Automated checks prevent code quality regression
- Code Quality: A+ grade with enterprise-grade standards
- Security: Zero known vulnerabilities
- Test Coverage: 95%+ with comprehensive edge case handling
- Maintainability: Clean, modular architecture with clear separation of concerns
- CLI Patterns: Standardized command classes with consistent error handling
- Documentation: Comprehensive developer guide with usage examples
- Pre-commit Hooks: Automated formatting, linting, and quality checks
- CI/CD Pipeline: Automated quality assurance with complexity monitoring
The codebase now provides a solid foundation for sustainable development with significantly enhanced security, maintainability, and developer experience.