13 stable releases
| new 1.0.27 | Feb 2, 2026 |
|---|---|
| 1.0.24 | Feb 1, 2026 |
| 1.0.18 | Jan 25, 2026 |
| 1.0.17 | Jan 24, 2026 |
#696 in Command line utilities
670KB
15K
SLoC
๐ฆ Rusty Commit (rco)
AI-powered commit message generator written in Rust
Generate conventional commits, GitMoji messages, and PR descriptions using 100+ AI providers
๐ Fast ยท ๐ Secure ยท ๐ Local-first ยท ๐ Editor integrations via MCP
Installation ยท Quick Start ยท Features ยท Providers ยท Configuration
โจ Why Rusty Commit?
|
โก Blazing Fast Native Rust binary with instant startup time. No Node.js bloat, no waiting. ๐ค 100+ AI Providers Works with OpenAI, Claude, Groq, Cerebras, DeepSeek, GitHub Copilot, Ollama, and 90+ more. ๐ Secure by Default Optional keychain storage keeps your API keys safe. OAuth support for major providers. |
๐จ Flexible Formats Conventional commits, GitMoji, or custom templates. Multi-language support. ๐ Multi-Account Support Seamlessly switch between work and personal accounts, different providers, or models. ๐ Editor Integration MCP server for Cursor, VS Code, Claude Code, and other AI-powered editors. |
๐ฆ Installation
One-liner (recommended)
curl -fsSL https://raw.githubusercontent.com/hongkongkiwi/rusty-commit/main/install.sh | bash
๐ Security-conscious? Verify first
# Download and inspect
curl -fsSL https://raw.githubusercontent.com/hongkongkiwi/rusty-commit/main/install.sh -o install.sh
# Verify with SHA256 checksums, Cosign, GPG, or GitHub attestations
# See: docs/INSTALL-SCRIPT-VERIFICATION.md
Verify release binaries with GPG:
# Download release files
wget https://github.com/hongkongkiwi/rusty-commit/releases/download/v1.0.0/rusty-commit-v1.0.0-x86_64-unknown-linux-musl.tar.gz
wget https://github.com/hongkongkiwi/rusty-commit/releases/download/v1.0.0/rusty-commit-v1.0.0-x86_64-unknown-linux-musl.tar.gz.asc
wget https://github.com/hongkongkiwi/rusty-commit/releases/download/v1.0.0/SHA256SUMS.txt
wget https://github.com/hongkongkiwi/rusty-commit/releases/download/v1.0.0/SHA256SUMS.txt.asc
# Verify GPG signature
gpg --verify SHA256SUMS.txt.asc
# Verify checksums
sha256sum -c SHA256SUMS.txt
Or verify individual files directly:
gpg --verify rusty-commit-v1.0.0-x86_64-unknown-linux-musl.tar.gz.asc
GPG Public Key: 0x0EC2DFF577818B86 (full: 0EC2DFF577818B86BA38DA3F164E3F90E425B2AD)
๐ฆ Package Managers
| Platform | Command | Repo |
|---|---|---|
| Homebrew | brew tap hongkongkiwi/rusty-commit && brew install rusty-commit |
homebrew-rusty-commit |
| Cargo | cargo install rusty-commit --features secure-storage |
- |
| Debian/Ubuntu | wget .../rusty-commit_amd64.deb && sudo dpkg -i rusty-commit_amd64.deb |
- |
| Fedora/RHEL | sudo dnf install https://.../rusty-commit.x86_64.rpm |
- |
| Alpine | wget .../rusty-commit-x86_64.apk && sudo apk add --allow-untrusted rusty-commit-x86_64.apk |
- |
| Arch Linux (AUR) | yay -S rusty-commit or paru -S rusty-commit |
Community |
| Nix/NixOS | nix-env -iA nixpkgs.rusty-commit or via flake |
nixpkgs-overlays |
| Windows (Scoop) | scoop bucket add rusty-commit && scoop install rusty-commit |
scoop-rusty-commit |
| Windows (Winget) | winget install hongkongkiwi.rusty-commit |
Community (via winget-pkgs) |
| Windows (Chocolatey) | choco install rusty-commit |
Community |
| Windows (Binary) | Download from releases | - |
๐ Quick Start
Interactive Setup
rco setup # Quick interactive wizard (recommended)
rco setup --advanced # Full configuration
rco setup --defaults # Non-interactive with sensible defaults
Quick Setup asks for:
- AI Provider - Choose from 30+ providers (100+ total supported)
- API Key - Securely stored in your system's keychain
- Commit Format - Conventional commits, GitMoji, or simple
Generate Your First Commit
git add .
rco # Interactive mode with review
โก Common Options
rco --dry-run # Preview without committing
rco --edit # Open in $EDITOR before committing
rco --clipboard # Copy to clipboard instead
rco --generate 3 # Generate 3 variations
rco --fgm # Full GitMoji specification
rco -y # Auto-commit without confirmation
rco -c "context" # Add extra context
๐ Multi-Account Workflow
# Add multiple provider accounts
rco config add-provider # Interactive wizard
rco config add-provider --provider openai --alias work-openai
# Switch between them
rco config use-account work-openai
git add . && rco
rco config use-account personal-anthropic
git add . && rco
๐ฏ Features
| Feature | Command |
|---|---|
| Interactive mode | rco |
| Auto-commit | rco -y |
| Dry-run preview | rco --dry-run |
| Edit in $EDITOR | rco --edit |
| Copy to clipboard | rco --clipboard |
| Generate variations | rco -g 3 |
| Add context | rco -c "Fix OAuth" |
| Full GitMoji | rco --fgm |
| Show prompt | rco --show-prompt |
| Debug logging | RUST_LOG=debug rco |
๐ค Providers
Rusty Commit supports 100+ AI providers. Configure interactively with rco setup or manually:
๐ OAuth (No API Key)
| Provider | Command |
|---|---|
| Claude (Anthropic) | rco auth login |
| GitHub Copilot | rco auth login --provider github-copilot |
๐ API Key Providers
๐ Popular Providers
| Provider | Setup |
|---|---|
| OpenAI | rco config set RCO_AI_PROVIDER=openai RCO_API_KEY=sk-... RCO_MODEL=gpt-4o-mini |
| Anthropic | rco config set RCO_AI_PROVIDER=anthropic RCO_API_KEY=sk-ant-... RCO_MODEL=claude-3-5-haiku-20241022 |
| Google Gemini | rco config set RCO_AI_PROVIDER=gemini RCO_API_KEY=... RCO_MODEL=gemini-2.5-flash |
| xAI/Grok | rco config set RCO_AI_PROVIDER=xai RCO_API_KEY=... RCO_MODEL=grok-2 |
| DeepSeek | rco config set RCO_AI_PROVIDER=deepseek RCO_API_KEY=sk-... RCO_MODEL=deepseek-chat |
โก Ultra-Fast Inference
| Provider | Setup |
|---|---|
| Groq | rco config set RCO_AI_PROVIDER=groq RCO_API_KEY=gsk_... RCO_MODEL=llama-3.3-70b-versatile |
| Cerebras | rco config set RCO_AI_PROVIDER=cerebras RCO_API_KEY=... RCO_MODEL=llama-3.3-70b |
| SambaNova | rco config set RCO_AI_PROVIDER=sambanova RCO_API_KEY=... RCO_MODEL=Meta-Llama-3.3-70B-Instruct |
| Nebius | rco config set RCO_AI_PROVIDER=nebius RCO_API_KEY=... |
๐ Multi-Model Aggregators
| Provider | Setup |
|---|---|
| OpenRouter | rco config set RCO_AI_PROVIDER=openrouter RCO_API_KEY=sk-or-... |
| Together AI | rco config set RCO_AI_PROVIDER=together RCO_API_KEY=... |
| Fireworks | rco config set RCO_AI_PROVIDER=fireworks RCO_API_KEY=... |
| Replicate | rco config set RCO_AI_PROVIDER=replicate RCO_API_KEY=... |
| DeepInfra | rco config set RCO_AI_PROVIDER=deepinfra RCO_API_KEY=... |
| Novita | rco config set RCO_AI_PROVIDER=novita RCO_API_KEY=... |
๐ข Enterprise Providers
| Provider | Setup |
|---|---|
| Azure OpenAI | rco config set RCO_AI_PROVIDER=azure RCO_API_KEY=... RCO_API_URL=https://<resource>.openai.azure.com |
| AWS Bedrock | rco config set RCO_AI_PROVIDER=bedrock |
| Google Vertex AI | rco config set RCO_AI_PROVIDER=vertex |
| Mistral | rco config set RCO_AI_PROVIDER=mistral RCO_API_KEY=... RCO_MODEL=mistral-small-latest |
| Cohere | rco config set RCO_AI_PROVIDER=cohere RCO_API_KEY=... RCO_MODEL=command-r |
| AI21 Labs | rco config set RCO_AI_PROVIDER=ai21 RCO_API_KEY=... RCO_MODEL=jamba-1.5-mini |
| Perplexity | rco config set RCO_AI_PROVIDER=perplexity RCO_API_KEY=... |
๐ Local/Self-Hosted
| Provider | Setup |
|---|---|
| Ollama | rco config set RCO_AI_PROVIDER=ollama RCO_MODEL=llama3.2 RCO_API_URL=http://localhost:11434 |
| LM Studio | rco config set RCO_AI_PROVIDER=lmstudio RCO_API_URL=http://localhost:1234/v1 |
| llama.cpp | rco config set RCO_AI_PROVIDER=llamacpp RCO_API_URL=http://localhost:8080/v1 |
๐ China-based Providers
| Provider | Setup |
|---|---|
| Moonshot/Kimi | rco config set RCO_AI_PROVIDER=moonshot RCO_API_KEY=... |
| SiliconFlow | rco config set RCO_AI_PROVIDER=siliconflow RCO_API_KEY=... |
| Zhipu AI | rco config set RCO_AI_PROVIDER=zhipu RCO_API_KEY=... |
| MiniMax | rco config set RCO_AI_PROVIDER=minimax RCO_API_KEY=... |
| Alibaba Qwen | rco config set RCO_AI_PROVIDER=dashscope RCO_API_KEY=... |
๐ All 100+ Supported Providers
GPU Cloud & Inference: Cerebras, SambaNova, Nebius, Lambda, Hyperbolic, Kluster, Together, Fireworks, Replicate, Novita, Predibase, TensorOps, Baseten, Chutes, IO.Net, Scaleway, OVHcloud, Friendli, ModelScope
Enterprise & Specialized: Cohere, AI21 Labs, Upstage/Solar, Jina AI, Abacus AI, Bailing, Poe
AI Gateways & Proxies: Helicone, Cloudflare Workers AI, Vercel AI Gateway, Requesty
China-based: Moonshot, SiliconFlow, Zhipu, MiniMax, Baichuan, 01.AI, Dashscope/Alibaba
Local/Self-hosted: Ollama, LM Studio, llama.cpp, KoboldCpp, Text Generation WebUI, Tabby
Additional Providers: Venice, Cortecs, Synthetic, NanoGPT, ZenMux, V0, Morph, Corcel, CyberNative, Edgen, GigaChat, Hydra, Lingyi, Monica, Pollinations, ShuttleAI, Teknium, TheB, TryLeap, Targon, 302.AI, SAP AI Core
๐ Secure Storage
When built with --features secure-storage:
- macOS: Keychain
- Linux: Secret Service (GNOME Keyring, KWallet, KeePassXC)
- Windows: Credential Manager
Falls back to config file if keychain is unavailable.
โ๏ธ Configuration
Interactive Configuration
rco setup # Quick setup (essential settings)
rco setup --advanced # Advanced setup (all settings)
Configuration Priority
Per-repo config > Global config > Environment variables > Defaults
Manual Config Commands
rco config status # Check secure storage status
rco config set RCO_AI_PROVIDER=anthropic # Set provider
rco config set RCO_MODEL=claude-3-5-haiku # Set model
rco config get RCO_AI_PROVIDER # Get current value
rco config describe # Show all options
rco config reset --all # Reset to defaults
๐ง Common Configuration Options
| Key | Description | Default |
|---|---|---|
RCO_AI_PROVIDER |
AI backend | anthropic |
RCO_MODEL |
Model name | Provider-specific |
RCO_API_KEY |
API key | - |
RCO_API_URL |
Custom endpoint | - |
RCO_COMMIT_TYPE |
Commit format | conventional |
RCO_EMOJI |
Include emojis | false |
RCO_LANGUAGE |
Output language | en |
RCO_MAX_TOKENS |
Max response tokens | 1024 |
RCO_TEMPERATURE |
Response creativity | 0.7 |
RCO_ENABLE_COMMIT_BODY |
Add commit body | false |
RCO_LEARN_FROM_HISTORY |
Learn from git history | false |
๐ฃ Git Hooks
Install/Uninstall
rco hook set # Install prepare-commit-msg hook
rco hook unset # Remove hook
Once installed, git commit (without -m) automatically generates commit messages!
โ๏ธ Advanced Hooks
# Pre-generation hook
rco config set RCO_PRE_GEN_HOOK="just lint; just test -q"
# Pre-commit hook
rco config set RCO_PRE_COMMIT_HOOK="./scripts/tweak_commit.sh"
# Post-commit hook
rco config set RCO_POST_COMMIT_HOOK="git push"
# Hook behavior
rco config set RCO_HOOK_STRICT=false # Allow hook failures
rco config set RCO_HOOK_TIMEOUT_MS=60000 # Timeout in ms
Skip Hooks (Per-Run):
rco --no-pre-hooks # Skip pre-gen + pre-commit hooks
rco --no-post-hooks # Skip post-commit hooks
๐ง Advanced Features
๐ Commit Body Generation
Enable detailed commit messages with body explaining the "why":
rco config set RCO_ENABLE_COMMIT_BODY=true
Output:
feat(auth): implement OAuth2 PKCE flow
- Add secure token storage with automatic refresh
- Support GitHub, GitLab, and generic OAuth2 providers
- Handle token expiration gracefully
๐ง Style Learning from History
Automatically learn and match your team's commit style:
rco config set RCO_LEARN_FROM_HISTORY=true
Analyzes last 50 commits to detect:
- Common commit types and scopes
- Average description length
- Capitalization preferences
- Gitmoji usage patterns
๐ GitMoji Support
25+ emojis from gitmoji.dev:
| Emoji | Meaning | Use Case |
|---|---|---|
| โจ | :sparkles: |
New feature |
| ๐ | :bug: |
Bug fix |
| ๐ | :memo: |
Documentation |
| ๐จ | :art: |
Code structure/format |
| โป๏ธ | :recycle: |
Refactoring |
| โก | :zap: |
Performance |
| โ | :white_check_mark: |
Tests |
| ๐ | :lock: |
Security fix |
| โฌ๏ธ | :arrow_up: |
Upgrade dependencies |
| ๐ฅ | :fire: |
Remove code/files |
| ๐ | :rocket: |
Deployment |
| ๐ฅ | :boom: |
Breaking changes |
๐ Repository Context Awareness
Rusty Commit automatically detects project context:
# Create custom context file
echo "Payment processing microservice" > .rco/context.txt
Auto-detected sources:
.rco/context.txt- Custom project descriptionREADME.md- First paragraphCargo.toml- Rust project descriptionpackage.json- Node.js project description
๐จ Custom Skills
Create reusable commit message templates:
rco skills list # List available skills
rco skills create my-template # Create a new skill
rco skills create my-team-style --project # Project-specific skill
rco skills show my-team-style # Show skill details
rco skills remove my-team-style # Remove a skill
rco --skill my-team-template # Use a skill
๐ฅ Import Skills from External Sources
# Import from Claude Code
rco skills available # List Claude Code skills
rco skills import claude-code --name <skill-name>
# Import from GitHub
rco skills import github:owner/repo
# Import from GitHub Gist
rco skills import gist:<gist-id>
# Import from URL
rco skills import https://example.com/skill-definition.md
๐ Custom Prompt Template
Create ~/.config/rustycommit/skills/my-skill/prompt.md:
# Custom Commit Prompt
Analyze this {language} code change:
{diff}
Context: {context}
Format: {commit_type}
Max length: {max_length}
Generate a commit message following our team conventions:
- Use present tense
- Include ticket number if obvious from branch name
๐ MCP Server
Rusty Commit includes an MCP (Model Context Protocol) server for editor integrations.
rco mcp server --port 3000 # TCP Mode (Cursor, VS Code)
rco mcp stdio # STDIO Mode (Direct integration)
Cursor: Settings > Features > MCP > Add Server โ Type: HTTP โ URL: http://localhost:3000
Claude Code: rco mcp stdio | claude-code connect stdio
๐ PR Description Generation
rco pr generate # Generate PR description for current branch
rco pr generate --base main # Compare against main branch
rco pr browse # Generate and open PR creation page
๐ซ File Exclusion
Exclude files from AI analysis via .rcoignore:
# Dependencies
node_modules/
vendor/
# Build artifacts
*.min.js
*.map
dist/
build/
# IDE
.idea/
.vscode/
# OS
.DS_Store
Or via command line: rco -x "*.lock" -x "*.min.js"
๐ Updates
rco update --check # Check for updates
rco update # Update to latest
rco update --force # Force update
rco update --version 1.0.2 # Install specific version
๐ GitHub Action
- uses: hongkongkiwi/rusty-commit@v1
with:
provider: 'anthropic'
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
auto-commit: 'true'
๐ค Contributing
See CONTRIBUTING.md for development setup and contribution guidelines.
๐ License
MIT License - see LICENSE for details.
Made with ๐ฆ by the Rusty Commit Contributors
Dependencies
~62โ90MB
~1.5M SLoC