Readme
๐ฆ 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 description
README.md - First paragraph
Cargo.toml - Rust project description
package. 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.