Skip to main content

Crate rusty_commit

Crate rusty_commit 

Source
Expand description

Rusty Commit - AI-powered commit message generator written in Rust

This library provides the core functionality for generating commit messages using various AI providers. It supports multiple providers including OpenAI, Anthropic, Claude, Ollama, Gemini, and Azure.

§Features

  • Multiple AI Providers: OpenAI, Anthropic, Ollama, Gemini, Azure, and more
  • Conventional Commits: Generate properly formatted conventional commits
  • GitMoji Support: Generate commits with GitMoji emojis
  • MCP Server: Use as a Model Context Protocol server for editor integration
  • Secure Storage: Optional keychain integration for API keys

§Quick Start

use rusty_commit::config::Config;
use rusty_commit::providers::create_provider;

let config = Config::load()?;
let provider = create_provider(&config)?;
let diff = "your git diff here";
let message = provider.generate_commit_message(
    diff,
    None,
    false,
    &config
).await?;

§Documentation

§Getting Started

// 1. Configure your AI provider
// Use OAuth (recommended): rco auth login
// Or set API key: rco config set RCO_API_KEY=sk-...

// 2. Generate a commit
// git add .
// rco

§Configuration

Configuration can be set via environment variables or config files:

  • Global: ~/.config/rustycommit/config.toml
  • Per-repo: .rustycommit.toml

Common keys:

  • RCO_AI_PROVIDER - Provider name (e.g., anthropic, openai, ollama)
  • RCO_MODEL - Model name
  • RCO_API_KEY - API key
  • RCO_COMMIT_TYPE - conventional or gitmoji

§AI Providers

Supported providers:

  • Cloud: OpenAI, Anthropic Claude, OpenRouter, Groq, DeepSeek, Gemini, Azure, Together AI, DeepInfra, Mistral, Perplexity, Fireworks, Moonshot, DashScope, XAI
  • Local: Ollama

Use rco auth login for OAuth providers or rco config set RCO_API_KEY=... for API key providers.

Modules§

auth
cli
commands
config
git
Git repository operations and utilities.
output
Unified output module for Rusty Commit CLI.
providers
update
utils
Utility modules for rusty-commit.