| Crates.io | turbocommit |
| lib.rs | turbocommit |
| version | 3.0.0 |
| created_at | 2023-03-05 22:40:05.557825+00 |
| updated_at | 2025-11-18 13:39:24.721738+00 |
| description | A CLI tool to create commit messages with OpenAI GPT models for Git and Jujutsu (JJ) repositories |
| homepage | https://github.com/dikkadev/turboCommit |
| repository | https://github.com/dikkadev/turboCommit |
| max_upload_size | |
| id | 801817 |
| size | 241,784 |
A powerful CLI tool that leverages OpenAI's GPT-5.1 models to generate high-quality, conventional commit messages from your staged changes in Git and Jujutsu (JJ) repositories.
Version 2.0 now supports both Git and Jujutsu (JJ) version control systems! Latest update: Exclusively uses GPT-5.1 models with enhanced reasoning and verbosity controls!
cargo install turbocommit
Pro tip: Add an alias to your shell configuration for quicker access:
# Add to your .bashrc, .zshrc, etc.
alias tc='turbocommit'
git add . # or stage specific files (Git)
turbocommit # or 'tc' if you set up the alias
After generating commit messages, you can:
Important: turboCommit now only supports GPT-5.1 models (gpt-5.1, gpt-5.1-codex, gpt-5.1-codex-mini)
-n <number> - Number of commit message suggestions to generate (default: 3)-m <model> - Specify the GPT-5.1 model to use
gpt-5.1, gpt-5.1-codex, gpt-5.1-codex-mini-e, --reasoning-effort <level> - Set reasoning effort level (default: low)
none (disable reasoning), low, medium, high-v, --verbosity <level> - Control output verbosity (default: medium)
low, medium, high-d, --debug - Show request/response info and token usage--debug-file <path> - Write detailed debug logs to file (use '-' for stdout)--auto-commit - Automatically commit with the generated message--amend - Amend the last commit with the generated message--api-key <key> - Provide API key directly--api-endpoint <url> - Custom API endpoint URLGPT-5.1 models have built-in reasoning capabilities. You can control the reasoning effort level which affects the depth of analysis:
You can control the reasoning effort level:
turbocommit -m gpt-5.1 # Default reasoning (medium)
turbocommit --reasoning-effort high -m gpt-5.1 # High reasoning effort
turbocommit --reasoning-effort low -m gpt-5.1-codex # Low reasoning effort
turbocommit --reasoning-effort none -m gpt-5.1 # Disable reasoning features
Control the level of detail in the model's responses:
turbocommit --verbosity low -m gpt-5.1-codex-mini # Concise output
turbocommit --verbosity medium -m gpt-5.1 # Balanced output (default)
turbocommit --verbosity high -m gpt-5.1-codex # Detailed output
Debug output helps troubleshoot API interactions:
turbocommit -d # Basic info to console
turbocommit --debug-file debug.log # Detailed logs to file
turbocommit --debug-file - # Detailed logs to stdout
The debug logs include:
For more options, run:
turbocommit --help
turboCommit creates a config file at ~/.turbocommit.yaml on first run. You can customize:
Example configuration:
model: "gpt-5.1" # Must be a GPT-5.1 model: gpt-5.1, gpt-5.1-codex, or gpt-5.1-codex-mini
default_number_of_choices: 3
reasoning_effort: "low" # Options: none, low, medium, high
verbosity: "medium" # Options: low, medium, high
disable_auto_update_check: false
api_endpoint: "https://api.openai.com/v1/chat/completions"
api_key_env_var: "OPENAI_API_KEY"
You can maintain multiple configuration files for different use cases (e.g., different providers or environments) and specify which one to use with the -c or --config option:
# Use a local config file
turbocommit -c ./local-config.yaml
# Use a different provider's config
turbocommit -c ~/.turbocommit-azure.yaml
# Use the default config
turbocommit # uses ~/.turbocommit.yaml
Each config file follows the same format as shown above. This allows you to easily switch between different configurations without modifying the default config file.
Contributions are welcome! Feel free to open issues and pull requests.
Licensed under MIT - see the LICENSE file for details.
The --amend option allows you to change the commit message of your last commit. This is useful when:
Usage:
# First, make sure you have no staged changes
git status # Should show no staged changes
# Then use --amend to improve the last commit's message
turbocommit --amend # This will analyze the last commit's changes and suggest a new message
Important Notes:
--amend, you must not have any staged changesgit commit --amend manually to include themYou can also combine this with auto-commit for a quick message update:
turbocommit --amend --auto-commit # Automatically amend with the first generated message
If your project uses Git hooks (e.g., linters, formatters) or JJ workflows, here's how to use turboCommit effectively:
# For Git repositories:
git add .
turbocommit
# For JJ repositories:
turbocommit
If hooks fail:
git add .)If you want to improve the commit message after all hooks pass:
# Make sure you have no staged changes
git status
# Then improve the message
turbocommit --amend # This will analyze the commit and suggest a better message
This workflow ensures that:
A disposable Dev Container is provided to safely develop and validate Git + Jujutsu (jj) integration. It includes the Rust toolchain, git and jj, and automatically prepares two throwaway repos inside the container at /tmp/testenv/.
devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . bash