@r2neuron/r2d2
v1.0.3
Published
R2D2 CLI - Claude Code model switcher
Downloads
9
Maintainers
Readme
R2D2 CLI
R2D2 CLI - Interactive Claude Code model switcher for managing Claude Code and GLM API configurations.
Features
- Interactive Configuration: Arrow-key navigation for easy setup
- Multiple Model Support: Claude Subscription, Claude API, and GLM modes
- Template System: Preserves existing settings while updating configurations
- Automatic Backup: Settings are backed up before any changes
- Multi-line Instructions: Support for complex onstart instructions
- Cross-platform Support: Works on macOS, Linux, and Windows
Installation
Step 1: Install R2D2 CLI
npm install -g @r2neuron/r2d2Step 2: Setup Claude Configs (Optional but Recommended)
For full functionality with R2D2's extended features:
# Sync Claude configuration templates
npm run claude-configs
# Initialize Claude configuration
r2d2 initFrom source
git clone https://github.com/hatsuka05/r2d2-cli.git
cd r2d2-cli
npm install
npm run build
npm link
# Setup Claude configs (optional)
npm run claude-configsFrom Homebrew
brew install r2d2
# Setup Claude configs (optional)
npm run claude-configsSetup Instructions
Quick Setup (Basic)
- Install R2D2 CLI
- Run
r2d2 glmorr2d2 cc-apito configure API mode - Edit
~/.claude/settings.jsonto add your API key - Start using with
r2d2
Full Setup (Recommended)
- Install:
npm install -g @r2neuron/r2d2 - Sync Templates:
npm run claude-configs(requires SSH access to claude-configs repo) - Initialize:
r2d2 initorr2d2 init --force(overwrites existing files) - Configure API: Edit
~/.claude/settings.jsonwith your API key - Start:
r2d2
Claude Configs Management
# Sync latest templates from repository
npm run claude-configs
# Initialize/update local configuration
r2d2 init # Safe mode (preserves existing files)
r2d2 init --force # Force mode (overwrites existing files)
# Configure API keys manually
nano ~/.claude/settings.jsonUsage
Interactive Mode (Default)
r2d2First shows action selection:
- Start: Launch Claude Code CLI with current configuration immediately
- Configure: Full configuration flow with arrow-key navigation
If Configure is selected:
- Model Selection: Choose between Claude Subscription, Claude API, or GLM
- API Configuration: Enter new API key, use existing, or skip
- CLI Selection: Choose Claude Code (future: more CLI options)
- Onstart Instructions: Add multi-line custom instructions or skip
After configuration, Claude Code CLI starts automatically with your selected settings.
Show Version
r2d2 --version
r2d2 -VCheck Current Status
r2d2 statusShows:
- Current mode (Claude Code, Claude API, or GLM)
- Settings file location
- Token configuration status
Quick Configuration Switches
Claude Subscription Mode
r2d2 ccSwitches to Claude Code subscription mode without starting CLI.
Claude API Mode
r2d2 cc-apiConfigures Claude API mode without starting CLI.
GLM Mode
r2d2 glmConfigures GLM API mode without starting CLI.
To start Claude Code CLI with current configuration:
r2d2
# Select "Start"Or configure first then start:
r2d2
# Select "Configure" → Complete setup → Starts automaticallyConfiguration Templates
R2D2 uses configuration templates to preserve your existing settings:
- Subscription Template: Full Claude Code settings without API keys
- API Key Template: Complete configuration with
${API_KEY}placeholders - Automatic Merging: Preserves existing permissions, hooks, plugins, and custom settings
File Management
R2D2 automatically manages backup files:
~/.claude/settings-cc.json- Claude Code subscription backup~/.claude/settings-cc-api.json- Claude API backup~/.claude/settings-glm.json- GLM backup~/.claude/settings.json- Active settingsconfigs/claude/- Configuration templates
Security
- API Key Encryption: AES-256-GCM encryption for stored API keys
- Input Validation: Comprehensive protection against command injection attacks
- Secure File Permissions: 0o600 permissions on sensitive files
- No Exposure: API tokens are never logged or displayed (masked format only)
- Automatic Backup: Settings files are backed up before any changes
- No Hardcoded Credentials: All credentials are user-controlled
- Memory Protection: Temporary files are securely handled and cleaned up
Requirements
- Node.js >= 16.0.0
- npm or yarn
- Write access to
~/.claude/directory
Troubleshooting
Permission denied
chmod 600 ~/.claude/settings.jsonSettings not found
R2D2 will create the .claude directory and default settings if they don't exist.
Restore from backup
If you need to manually restore a backup:
cp ~/.claude/settings-cc.json ~/.claude/settings.json # Restore Claude Code
cp ~/.claude/settings-glm.json ~/.claude/settings.json # Restore GLMDevelopment
Setup
git clone https://github.com/hatsuka05/r2d2-cli.git
cd r2d2-cli
npm installBuild
npm run buildTest locally
npm link
r2d2 --versionTest Interactive Mode
r2d2
# Try different configurations and test arrow-key navigationUnlink
npm unlink -g @r2neuron/r2d2Contributing
For detailed contribution guidelines, including our Git workflow and release process, see docs/publish-guide.md.
Quick setup:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
License
MIT License - see LICENSE file for details.
Repository
https://github.com/hatsuka05/r2d2-cli
Support
For issues and feature requests, please use the GitHub issue tracker.
