Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.12.2 instead.

gitvow

Provenance and a policy gate for AI-agent coding sessions, stored in the git you already have.

ci codeql python deps license

Who made this change, what were they trying to do, and was it allowed? For code written with AI agents, git alone cannot answer. gitvow makes it answer.

  • Commits made during an agent session carry the session id and a step number as trailers.
  • Each such commit gets a session note: the agent's stated plan, the tools it used, the files it touched, how much of the commit it wrote. Redacted, stored as a git note, never in the tree.
  • Every tool call passes a gate first: destructive commands are refused, risky ones require asking you, edits to gate-bearing files need a human. The rules are a JSON file you own. Missing policy fails closed.
  • A ledger of the whole session stays in your home directory. Nothing leaves the machine unless you push it.

Standard-library Python and git. No runtime dependencies, no network calls, no telemetry.

Quick start

pip install gitvow
gitvow install --user
gitvow selftest

Work in Claude Code as usual. When the agent commits:

$ git log -1 --format=%B
Fix week-start cache key

Gitvow-Session: 8f3d5c71-574a-4eec-8903-9425e3a8335b
Gitvow-Step: 4

$ gitvow show HEAD
...
gitvow-session
{
 "step": 4,
 "tools_used": ["Bash", "Edit", "Read"],
 "last_stated_plan": "Change the cache key to include week start so per-org settings do not collide...",
 "files_in_commit": ["query-engine/.../QueryCacheHelper.java | 4 +++-"],
 "files_written_by_agent_this_session": ["query-engine/.../QueryCacheHelper.java"],
 "attribution": {"files_in_commit": 1, "touched_by_agent": 1}
}

Try the gate by hand:

gitvow check -- git push --force          # DENY: force push
gitvow check -- kubectl apply -f x.yaml   # CONFIRM: cluster apply
gitvow check --path core/authz_rules.go   # CONFIRM: edits an authorization or gate file

Remove everything:

gitvow uninstall --user

Documentation

The docs site is the source of truth: https://wirevow.dev/gitvow (built from docs/).

How it works

Claude Code ──hook──▶ gitvow hook PreToolUse ──▶ policy ──▶ allow / confirm / deny  (exit 0 / 2 / 2)
            ──hook──▶ gitvow hook PostToolUse ─▶ on `git commit`: read transcript → redact → git notes add
git commit ──prepare-commit-msg──▶ Gitvow-Session / Gitvow-Step trailers   (from .git/gitvow-session.json)
Claude Code ──hook──▶ gitvow hook Stop ─────────▶ ~/.gitvow/ledger/<session>.json
Data Where Enters git?
session id, step commit trailers yes
session note (structure, redacted plan, attribution) refs/notes/sessions as a note; local until pushed
ledger, hook log, session state ~/.gitvow/, <repo>/.git/ no
transcript untouched never

Status

0.1.0. Used in a small internal trial; the roadmap lists what comes next and what is deliberately not planned. Claude Code is the only agent supported today; the hook payload is documented so adapters are straightforward.

Contributing and security

See CONTRIBUTING.md and SECURITY.md. Reproductions of redaction gaps must use synthetic secrets.

Apache-2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitvow-0.1.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitvow-0.1.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file gitvow-0.1.0.tar.gz.

File metadata

  • Download URL: gitvow-0.1.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gitvow-0.1.0.tar.gz
Algorithm Hash digest
SHA256 50893eb3bfe12ba0f6e21610d3fd7ba45029006d90702d17a85dca2bea0267f7
MD5 c96a3a78f0d7978d0467a6b2f374fc22
BLAKE2b-256 8b6881167c240aed9be086dc31a2ae88a308f76305e3d330fade179bfe50025b

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitvow-0.1.0.tar.gz:

Publisher: release.yml on wirevow/gitvow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gitvow-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: gitvow-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gitvow-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 754d0387435ca1a8c1f5f301d7dc0487721f6e6a2ca4f41ad86808bea681b139
MD5 987f7f4ee5d62a91218d8c67bf9c8b53
BLAKE2b-256 40e6d4a24b847bfbd4f636769d7de99b722bb7ed46cf1d503b0455cc164f7683

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitvow-0.1.0-py3-none-any.whl:

Publisher: release.yml on wirevow/gitvow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.12.2

2 files

0.12.1

2 files

0.12.0

2 files

0.11.1

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page