> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wirevow.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick start

> Requirements: git, Python 3.9 or newer, Claude Code

## Install for yourself

```sh theme={"dark"}
pip install gitvow
gitvow install --user
```

This puts the hooks into your Claude Code user settings, a default policy into `~/.gitvow/policy.json`, and a git hook into `~/.gitvow/git-hooks` registered as your global hooks path. Every repository you open in Claude Code is covered.

## Prove it works

```sh theme={"dark"}
gitvow selftest
```

The self-check creates a throwaway repository, drives every hook with the payloads Claude Code sends, and prints one line per check. Nothing you own is touched.

```
  ok   session recorded in .git
  ok   deny: force push blocked
  ok   confirm: git push requires asking
  ok   allow: harmless command
  ok   confirm: gate-bearing file edit
  ok   deny: destructive MCP tool
  ok   commit trailer added
  ok   session note attached
  ok   ledger written

selftest: 9 passed, 0 failed
```

## Work normally

Start a Claude Code session in any repository. When the agent commits, look at the result:

```sh theme={"dark"}
git log -1 --format=%B
gitvow show HEAD
```

## Try the gate by hand

```sh theme={"dark"}
gitvow check -- git push --force      # DENY: force push
gitvow check -- git push origin main  # CONFIRM: pushing to a remote
gitvow check --path values/production-in/api/values.yaml
```

## Remove it

```sh theme={"dark"}
gitvow uninstall --user
```

Everything the install added is removed. Trailers already in commit history stay, because they are part of the commits.
