turbocommit 3.2.1

A CLI tool to create commit messages with OpenAI GPT-5.6 for Git and Jujutsu (JJ) repositories
turbocommit-3.2.1 is not a library.

turboCommit

Crates.io Crates.io Crates.io

A CLI that uses OpenAI's GPT-5.6 family to generate conventional commit messages from Git and Jujutsu (JJ) diffs.

Features

  • GPT-5.6 Luna by default, with Terra, Sol, and the gpt-5.6 Sol alias available
  • Concise GPT-5.6 developer instruction plus strict Structured Outputs
  • Conventional commit suggestions with optional explanatory bodies
  • Interactive selection, direct editing, and AI revision
  • Reasoning effort and output verbosity controls
  • Git staged-change and amend flows
  • JJ revision selection and description rewriting
  • YAML configuration via ~/.turbocommit.yaml
  • Optional request, response, usage, and timing diagnostics

Installation

cargo install turbocommit

Optional alias:

alias tc='turbocommit'

Usage

Stage changes in Git or make changes in a JJ working copy, then run:

turbocommit

The CLI generates suggestions and lets you select, edit, revise, or apply one.

Options

  • -n <number>: suggestions to generate; default 3
  • -m, --model <model>: gpt-5.6-luna, gpt-5.6-terra, gpt-5.6-sol, or gpt-5.6
  • -e, --reasoning-effort <level>: none, low, medium, high, xhigh, or max
  • -v, --verbosity <level>: low, medium, or high
  • -a, --auto-commit: apply one generated message without interactive selection
  • --amend: regenerate the last Git commit message from its diff
  • -r, --revision <rev>: describe a specific JJ revision
  • --rw: toggle the configured JJ rewrite behavior
  • -c, --config <path>: load another config file
  • --api-key <key>: provide the API key directly
  • --api-endpoint <url>: override the API endpoint
  • --system-msg-file <path>: load a custom developer instruction; the legacy option name is retained for compatibility
  • -d, --debug: show request and usage details
  • --debug-file <path>: write detailed diagnostics to a file, or - for stdout
  • --debug-context: include message contents in diagnostics
  • --select-files: always prompt for diff file selection
  • --disable-auto-update-check: skip automatic version checks

Any remaining arguments are sent as a user instruction:

turbocommit focus on why the cache policy changed

Models and API behavior

The default is gpt-5.6-luna, OpenAI's efficient high-volume tier. Use Terra when the diff needs stronger judgment at moderate cost, or Sol for the hardest changes. The gpt-5.6 alias routes to Sol.

All supported models have a 1,050,000-token context window and support Chat Completions plus Structured Outputs. turboCommit intentionally keeps the bounded v1/chat/completions workflow: it sends the application instruction as a developer message and constrains results with a strict JSON schema.

The default reasoning effort remains low for this latency-sensitive task. The default verbosity is medium; output length is primarily controlled through the API parameter rather than repeated prompt instructions.

Current GPT-5.6 pricing

Per 1M text tokens:

Model Input Cached input Output
GPT-5.6 Luna $1.00 $0.10 $6.00
GPT-5.6 Terra $2.50 $0.25 $15.00
GPT-5.6 Sol $5.00 $0.50 $30.00

Prompts above 272K input tokens use OpenAI's higher long-context rates. Check OpenAI's model pages for current pricing before relying on these figures.

Configuration

On first run turboCommit creates ~/.turbocommit.yaml:

model: gpt-5.6-luna
api_endpoint: https://api.openai.com/v1/chat/completions
api_key_env_var: OPENAI_API_KEY
default_number_of_choices: 3
disable_auto_update_check: false
reasoning_effort: low
verbosity: medium
jj_rewrite_default: true
# Omit system_msg to use the built-in developer instruction.

system_msg is the legacy configuration key for the developer instruction and remains supported to avoid breaking existing configs. Omit it to use the built-in instruction. Missing configuration fields inherit application defaults.

Existing GPT-5.4 configs are not silently rewritten. When upgrading, change model to gpt-5.6-luna (or another supported tier) and remove the old system_msg field to adopt the shorter GPT-5.6 instruction. Help and explicit -c configs remain usable while the default config needs migration.

Set the API key in the configured environment variable:

export OPENAI_API_KEY='...'

Multiple configs

turbocommit -c ./local-config.yaml
turbocommit -c ~/.turbocommit-azure.yaml

Git amend flow

--amend analyzes the previous commit diff and changes only its message. It rejects staged changes so they are not accidentally mixed into the operation.

turbocommit --amend
turbocommit --amend --auto-commit

Development

A disposable Dev Container is included for Git and JJ integration testing:

devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . bash

License

MIT. See LICENSE.