https://github.com/driftsys/git-std
From commit to release. One tool for conventional commits, versioning, changelog, and release management.
https://github.com/driftsys/git-std
changelog cli conventional-commits developer-tools git git-hooks rust semver version-management
Last synced: about 2 months ago
JSON representation
From commit to release. One tool for conventional commits, versioning, changelog, and release management.
- Host: GitHub
- URL: https://github.com/driftsys/git-std
- Owner: driftsys
- License: mit
- Created: 2026-03-10T23:47:42.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-04-28T09:05:20.000Z (about 2 months ago)
- Last Synced: 2026-04-28T10:31:12.046Z (about 2 months ago)
- Topics: changelog, cli, conventional-commits, developer-tools, git, git-hooks, rust, semver, version-management
- Language: Rust
- Homepage: https://driftsys.github.io/git-std/
- Size: 1.16 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# git-std
[](https://github.com/driftsys/git-std/actions/workflows/ci.yml)
[](https://crates.io/crates/git-std)
[](https://driftsys.github.io/git-std/)
[](LICENSE)
From commit to release. One tool for
[conventional commits][cc], [versioning][semver],
[changelog][keep-changelog], and [git hooks][githooks]
management.
`git-std` replaces commitizen, commitlint, standard-version,
husky, and lefthook with a single binary. Fast, low memory
footprint, zero runtime dependencies. Works out of the box
with sensible defaults, which can be overridden with a
`.git-std.toml`.
Supports per-package monorepo versioning with automatic
dependency cascades, per-package changelogs, and polyglot
workspace discovery (Cargo, npm, Deno).
Invoked as `git std` via git's subcommand discovery.
## Install
**Install script (recommended):**
```bash
curl -fsSL https://raw.githubusercontent.com/driftsys/git-std/main/install.sh | bash
```
**From source:**
```bash
cargo install git-std
```
## Quick start
```bash
git std hook install # set up hooks
git std bootstrap install # scaffold ./bootstrap for contributors
git add .
git std commit # interactive commit
git std lint --range main..HEAD # validate commits
git std changelog --stdout # preview changelog
git std bump # bump + changelog + tag
git push --follow-tags
```
**Shell completions:**
```bash
eval "$(git-std --completions bash)" # or zsh, fish
```
See the [user guide](https://driftsys.github.io/git-std/)
for commands, configuration, and recipes.
## Workspace crates
`git-std` is built on four independent library crates, each
published separately on [crates.io][crates-io]. The libraries
implement domain logic only — no CLI, no git operations, no
terminal output.
| Crate | Description |
| -------------------- | ------------------------------------------------ |
| [standard-commit] | Conventional commit parsing, linting, formatting |
| [standard-version] | Version bump (semver + calver), file detection |
| [standard-changelog] | Changelog generation from conventional commits |
| [standard-githooks] | Hook file format parsing, shim generation |
## License
MIT
## Documentation
- [User guide](https://driftsys.github.io/git-std/) (mdbook)
- [Specification](docs/SPEC.md)
- [API docs](https://docs.rs/git-std) (docs.rs)
## References
- [Conventional Commits v1.0.0][cc]
- [Semantic Versioning v2.0.0][semver]
- [Calendar Versioning][calver]
- [Keep a Changelog v1.1.0][keep-changelog]
- [Git hooks documentation][githooks]
[cc]: https://www.conventionalcommits.org/en/v1.0.0/
[semver]: https://semver.org/spec/v2.0.0.html
[calver]: https://calver.org/
[keep-changelog]: https://keepachangelog.com/en/1.1.0/
[crates-io]: https://crates.io
[githooks]: https://git-scm.com/docs/githooks
[standard-commit]: crates/standard-commit/
[standard-version]: crates/standard-version/
[standard-changelog]: crates/standard-changelog/
[standard-githooks]: crates/standard-githooks/
## Post-clone setup
Run `./bootstrap` after `git clone` or `git worktree add`.