https://github.com/cachebag/sotto
The only good CLI for generated commit messages.
https://github.com/cachebag/sotto
Last synced: about 1 month ago
JSON representation
The only good CLI for generated commit messages.
- Host: GitHub
- URL: https://github.com/cachebag/sotto
- Owner: cachebag
- License: apache-2.0
- Created: 2026-05-03T16:54:08.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2026-05-22T02:36:10.000Z (about 1 month ago)
- Last Synced: 2026-05-24T03:33:56.891Z (about 1 month ago)
- Language: Rust
- Homepage:
- Size: 101 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
#
sotto
https://github.com/user-attachments/assets/6876cc21-7da3-4583-a5ac-18909a33e3d1
sotto watches your git repo, sends diffs to an LLM API (e.g. OpenRouter), and surfaces a cached commit message in your shell when you commit.
## Install
Nothing interesting here yet but I will set something up soon. Just clone the repo and run `cargo install --path .` and then `sotto setup`
## Current state
I've only got a prototype working for the zsh side, and it is deliberately thin. Control is relenquished at the right time to allow for the cache entry to be surfaced. I just write a ([very hacky](https://github.com/cachebag/sotto/blob/master/src/shell/sotto.zsh)) widget into your zsh config.
Biggest problems now are implementing an ipc. Right now it's just the filesytem, technically. Eventually, I'd like to setup a unix socket that can get us things like realtime status changes, on demand generation and the ability to covenant over multiple repos on a machine (that is, in a better fashion than simply spawning a `sotto` process against individual repos).
Please take a look at our [issues](https://github.com/cachebag/sotto/issues) for more details.
Fish, bash, etc. is all currently in development.
## Contributing
Thank you for wanting to contribute. Please take a look at our [contributing guide](CONTRIBUTING.md) for more details.
## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0), or
- MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project shall be dual-licensed as above, without any additional terms or conditions.