Git, but for your anime-watching history.
anigit is a local-first CLI tool that reimplements git's full command
surface — init, add, commit, log, diff, branch, merge, and more
— renamed and repurposed for tracking anime instead of code. Written in
Rust. Full design rationale lives in brainstorm.md.
v1 complete and released. Every command in v1's scope (everything git can
do fully offline, plus anigit refresh as a documented network exception)
has a real implementation. See brainstorm.md section 4 for the full
v1/v2/v3 boundaries, and section 1 for the complete build history.
brew tap TSSS-org/anigit
brew trust --formula tsss-org/anigit/anigit
brew install anigit
The brew trust step is required by Homebrew's tap trust check for
non-official taps (Homebrew 6.0.0+) — without it, brew install will
refuse with an "untrusted tap" error. This is expected, current Homebrew
behavior, not a problem with this formula.
To uninstall a Homebrew install, use Homebrew's own command:
brew uninstall anigit
Do not use anigit uninstall for a Homebrew install — it will detect
the Homebrew-managed install path and refuse, pointing you back at
brew uninstall anigit. This is intentional: deleting the binary directly
would leave Homebrew's own installation records out of sync with reality.
scoop bucket add anigit https://github.com/TSSS-org/scoop-anigit
scoop install anigit
The manifest is written to Scoop's documented schema and the download URLs/checksums are real and verified against the actual release assets, but this has not yet been run on a real Windows machine — no Windows environment was available to test end-to-end at the time this was written. If you try it and it works (or doesn't), that's worth confirming/fixing before relying on it.
To uninstall a Scoop install, use Scoop's own command (scoop uninstall anigit) rather than anigit uninstall, for the same bookkeeping-mismatch
reason as Homebrew above — anigit uninstall's package-manager detection
currently only recognizes Homebrew's install path pattern; Scoop detection
is a planned follow-up, not yet implemented.
Download the prebuilt binary for your OS/architecture from the
latest release,
unzip it, and place the anigit binary somewhere on your PATH.
To uninstall a manual install:
anigit uninstall # prompts for confirmation
anigit uninstall --confirm # skips the prompt (for scripting/testing)
This removes the anigit binary and its bundled/synced anime catalog file
only — it never touches any .anigit repos or their generated folder-tree
views, regardless of where they are.
cargo install --path .
(Requires a Rust toolchain — install via rustup if you don't have one yet.)
src/
main.rs → CLI entry point, dispatches to commands/
lib.rs → module wiring
cli.rs → clap subcommand definitions (the full v1 command list)
repo/
mod.rs → .anigit/ folder handling (init, HEAD, refs, commits)
commit.rs → Commit/Changes/CatalogRef data model (schema_version'd)
config.rs → RepoKind (Shared/SingleUser) + Visibility toggle
commands/ → one file per subcommand
catalog/ → SQLite access layer for the local anime metadata cache
tui/ → interactive screens: anigit add's edit form, and the
search screens used by both `add` and `blame`
tree.rs → generates the read-only watching/completed/dropped/
planning/ folder view after every commit
scripts/
update-packages.sh → regenerates BOTH the Homebrew formula and the
Scoop manifest for a new release in one run
(downloads + verifies + hashes all six binaries,
writes homebrew-anigit/Formula/anigit.rb and
scoop-anigit/bucket/anigit.json)
- Bump the version in
Cargo.toml. - Commit, push, then tag and push the tag:
git tag vX.Y.Z && git push origin vX.Y.Z. - Wait for the GitHub Actions release workflow to finish building all 6 platform targets (check the Actions tab).
- Run
./scripts/update-packages.sh X.Y.Zto regenerate BOTH the Homebrew formula and the Scoop manifest with fresh, verified checksums. - Commit and push the updated formula in
homebrew-anigit/and the updated manifest inscoop-anigit/. - Test Homebrew:
brew uninstall anigit || true,brew untap TSSS-org/anigit || true, thenbrew tap TSSS-org/anigit,brew trust --formula tsss-org/anigit/anigit,brew install anigit,anigit --version. - Test Scoop (on a real Windows machine — see the untested caveat above):
scoop bucket add anigit https://github.com/TSSS-org/scoop-anigit,scoop install anigit,anigit --version.
animetaScraper(separate repo, Python) — scrapes AniList's public GraphQL API to build/maintain the anime metadata catalog this tool reads from. Runs centrally on a scheduled VM job;anigit refreshpulls deltas from it.homebrew-anigit(separate repo) — the Homebrew tap; see Installation above.scoop-anigit(separate repo) — the Scoop bucket; see Installation above (untested on real Windows as of this writing).- AniHub (not started) — a GitHub-style companion website for
anigitrepos. Planned for after v1 of this CLI is complete.