a git repository library manager
 ██████╗ ██╗████████╗███████╗████████╗ ██████╗ ██╗    ██╗
██╔════╝ ██║╚══██╔══╝██╔════╝╚══██╔══╝██╔═══██╗██║    ██║
██║  ███╗██║   ██║   ███████╗   ██║   ██║   ██║██║ █╗ ██║
██║   ██║██║   ██║   ╚════██║   ██║   ██║   ██║██║███╗██║
╚██████╔╝██║   ██║   ███████║   ██║   ╚██████╔╝╚███╔███╔╝
 ╚═════╝ ╚═╝   ╚═╝   ╚══════╝   ╚═╝    ╚═════╝  ╚══╝╚══╝

Clone it. Stow it. Never lose it.

You clone repos to learn from them. Then they rot in ~/misc-stuff-2. gitstow turns them into a library: paste a URL, get an organized collection you can bulk-pull, tag, freeze, and grep. And your AI agents already know how to drive it.

$ pipx install "gitstow[ui]"
Star on GitHub ↗
MIT · Python 3.10+ · GitHub / GitLab / Bitbucket / Codeberg
quick start

Sixty seconds to a stowed library.

One install, one onboard, and every repo you paste lands exactly where it belongs.

$ pipx install "gitstow[ui]"
$ gitstow onboard # optional first-run wizard, installs the Claude skill too
$ gitstow add anthropic/claude-code # shorthand or full URLs
$ gitstow pull # update everything, in parallel
$ gitstow ui # open the dashboard ↓
gitstow — demo
gitstow CLI demo
live capture: add, pull, status, done
gitstow ui

The tab you leave open.

A local-first browser dashboard, and the primary way to live with your library. Dirty state at a glance, one-click pulls, tags, freezes, and per-file diffs. It auto-refreshes every 30 seconds and never phones home: 127.0.0.1 only.

gitstow — Library
127.0.0.1:7853
gitstow library.mgr · v0.2.6
LibraryWorkspacesSettings
Jul 21 — Dashboard
Your library.
44 repos across 2 workspaces, 41 in sync.
38 clean 03 local changes 02 behind 01 frozen
All workspaces ▾ Search repos, tags… Hide frozen ↻ Refresh ⟳ Fetch all + Add repo ↓ Pull all
StatusRepositoryWorkspaceBranchRemote ΔTagsLast pullActions
01 clean anthropic/claude-code oss main aitools 2h ago Pull
02 behind facebook/react oss main ↓ 12 ui 3d ago ↓ Pull 12
03 2 mod · 1 unt karpathy/nanoGPT oss master ai 1d ago Pull
04 ahead gitstow active main ↑ 2 active 5h ago Pull
05 frozen torvalds/linux oss master reference 3w ago Pull
06 clean ziglang/zig oss master lang 2h ago Pull
auto-refresh 30s · click repo name → details · pull runs in place
live127.0.0.1:7853 Shutdown
local-first
Binds 127.0.0.1 only. Your repos, your machine, nobody else's business.
pull all, in parallel
One click updates the whole library with a per-repo summary. Frozen repos politely skipped.
per-file diffs
Click into any dirty repo: staged, unstaged, untracked, with colored line diffs.
ai integration

Your agents just… know.

Onboarding installs a Claude Code skill automatically. From then on, "add this repo" or "update my library" just works. No configuration, no prompt engineering, no ceremony.

1
Skill installs itself
Part of gitstow onboard, auto-updates on version bumps.
2
Zero token overhead
Skills cost nothing when inactive, unlike MCP tools that squat in context.
3
MCP for everything else
Cursor, Claude Desktop, and friends get a server via pip install gitstow[mcp]. Every command speaks --json.
claude code
grab karpathy/nanoGPT and tag it ai
⏺ Using skill: gitstow
⏺ Bash(gitstow add karpathy/nanoGPT)
  ✓ cloned → ~/oss/karpathy/nanoGPT
⏺ Bash(gitstow repo tag karpathy/nanoGPT ai)
  ✓ tagged: ai
Stowed. It's in your oss workspace under karpathy/nanoGPT, tagged ai.
features

Everything a library needs.

Workspaces
Open-source library here, active projects there. Structured owner/repo layout or flat, per directory.
gitstow workspace add ~/oss --layout structured
Auto-organization
Paste URLs, get owner/repo folders. Concurrent clones, deduped, and a mismatched remote errors loudly.
gitstow add anthropic/claude-code facebook/react
Bulk operations
Pull, fetch, and status across everything in parallel. One bad repo never stops the rest.
gitstow pull --tag ai --exclude-tag stale
Freeze & tags
Tag repos, filter every operation by tag, freeze the ones you want left alone.
gitstow repo freeze torvalds/linux
Any git host
GitHub shorthand, GitLab nested groups, Bitbucket, Codeberg. SSH or HTTPS, your call.
gitstow add https://gitlab.com/group/project
Search & exec
ripgrep across the whole library, or run any command in every repo. Filter by tag, glob, workspace.
gitstow search "def main" --glob "*.py"
Portable collections
Export your library as YAML, import it on a new machine. Your curation, reproducible.
gitstow collection export -o my-repos.yaml
Shell sugar
fzf pickers, tab completion, and gs to cd into any repo. Muscle memory in three keystrokes.
eval "$(gitstow shell init)"
vs the field

The best of both. Then some.

ghq organizes but can't operate. gita operates but can't organize. gitstow does both, and brings a dashboard and your agents along.

capabilitygitstowghqgita
Auto-organize by owner/repo
Bulk pull, fetch & status
Workspaces (structured + flat)
Tags, freeze & filtered ops
Local browser dashboard
Claude Code skill + MCP server
JSON output on every command
● yes · ◐ partial · — no   (ghq 3.5k★, gita 1.8k★, both great at what they do)

Stop losing repos.
Start stowing them.

Your future self — and your agents — will thank you.

$ pipx install "gitstow[ui]"