A Rust TUI app that inspects the current Git repository, generates a detailed commit message with description via the opencode CLI, copies it to the system clipboard, and optionally stages & commits all changes.
curl -fsSL https://raw.githubusercontent.com/Crowforge-Studios/Commiter/master/install.sh | shInstalls to ~/.local/bin/commiter. Run commiter in any git repo.
curl -fsSL https://raw.githubusercontent.com/Crowforge-Studios/Commiter/master/install.sh | sh -s -- -u./install.sh -v v1.0.0 # specific version
./install.sh -p /usr/local/bin # custom prefix (needs sudo)
./install.sh -u # uninstallcargo install --git https://github.com/Crowforge-Studios/Commiter- opencode CLI — install, ensure it's in
PATH - Clipboard tool (one of):
- Wayland:
wl-copy(wl-clipboard) - X11:
xcliporxsel
- Wayland:
Inside any Git repository:
commiter| Flag | Description |
|---|---|
--model <model> |
AI model (default: opencode/deepseek-v4-flash-free), or OPENCODE_MODEL env var |
--diff-cutoff <bytes> |
Max diff bytes sent to AI (default: 8192), or COMMITER_DIFF_CUTOFF env var |
--version, -V |
Print version and exit |
--help, -h |
Print this help |
- Open the app inside a Git repo with staged/unstaged changes.
- The app pre-generates a commit message in the background.
- Press Enter to copy to clipboard.
- Press Enter again to stage all and commit.
- Press
eto edit the message before committing. - Press
rto regenerate with full diff.
| Key | Context | Action |
|---|---|---|
Enter |
PreGenerated | Copy message to clipboard |
Enter |
Idle + changes | Generate commit message |
Enter |
Ready | Commit |
e |
Ready + message | Enter edit mode |
Esc |
Editing | Exit edit mode |
r |
PreGenerated / Ready | Regenerate message |
F1 |
Any | Toggle file list |
q |
Any | Quit |
| Target | Description |
|---|---|
make build |
Build & strip release (dynamic) |
make release |
Fully static binary (musl) |
make docker-build |
Static binary via Docker |
make clean |
Remove build artifacts |
make buildFor a fully static binary (no deps):
# Install musl target
rustup target add x86_64-unknown-linux-musl
sudo apt install musl-tools # Debian/Ubuntu
make releaseOr via Docker (no toolchain setup):
make docker-buildThe resulting binary at ./commiter has no external dependencies.
Uses opencode/deepseek-v4-flash-free by default. Override with --model flag
or OPENCODE_MODEL environment variable.
Contributions are welcome! Feel free to open issues or submit pull requests on GitHub.
MIT