Issues that travel with your repo.
TicGit is a small Rust CLI for tracking work inside Git projects. Create tickets, tag them, assign owners, comment, save views, and sync the whole thing through Git metadata refs.
$ cargo install ticgit
$ ti init
ticgit initialised on this repository
$ ti new --title "fix parser" \
--tags bug,parser \
--comment "fails on empty input"
Created ticket d7f2d8 (fix parser)
$ ti list --tag bug
* d7f2d8 fix parser open bug,parser
Start in one minute.
Install the CLI, initialize metadata, and make your first ticket.
Install
Install the published crate with cargo install ticgit. From source, use cargo install --path crates/ticgit.
Initialize
Run ti init inside any Git repository. TicGit uses your Git identity for metadata authorship.
Track work
Create tickets with ti new, then filter, update, comment, and sync without leaving your checkout.
What it can do.
A practical issue tracker shaped like a command-line tool, not a web app.
Daily workflow
ti new --title "add docs"Create a UUID-backed ticketti list --state openFilter and sort ticket tablesti show <id> --jsonInspect details or script outputti checkout <id>Select a current ticketti comment "fixed it"Add threaded history
$ ti tag --ticket d7f2d8 bug ui
Tags on d7f2d8: bug, ui
$ ti assign you@example.com --ticket d7f2d8
d7f2d8 assigned: you@example.com
$ ti points 3 --ticket d7f2d8
d7f2d8 points: 3
$ ti state resolved --ticket d7f2d8
d7f2d8 -> resolved
Works offline
Tickets live in your repo's local git-meta database. Read and update them without network access.
Syncs with Git
ti pull, ti push, and ti sync exchange metadata through refs/meta/*.
Scriptable output
Use --json on list and show commands to feed tickets into shell scripts or other tools.
Saved views
Snapshot filtered ticket sets with ti save-view bugs --tag bug, then reopen with ti list --view bugs.
Simple fields
State, assignee, points, milestone, tags, comments, creation time, and author are first-class metadata.
Clean break
No legacy orphan branch or migration layer. TicGit uses structured git-meta values from the start.
Structured Git metadata.
Every ticket is project-scoped metadata under the ticgit: namespace.
Storage shape
Ticket existence is implied by fields under ticgit:tickets:<uuid>:*. There is no separate ticket index to keep consistent.
ticgit:schema-version
ticgit:owners
ticgit:views:bugs
ticgit:tickets:<uuid>:title
ticgit:tickets:<uuid>:state
ticgit:tickets:<uuid>:assigned
ticgit:tickets:<uuid>:tags
ticgit:tickets:<uuid>:comments
Ready for a terminal-first project tracker?
Use TicGit when issues belong with the code: small tools, offline work, experiments, forks, and repos where Git is already the shared source of truth.
ticgit-lib,
so publish ticgit-lib first, then publish ticgit.
After that, users can install with cargo install ticgit.