Skip to content

ProGit Documentation

The repo is the project tracker. Issues live in git. Agents write them; humans move them; sync pushes them to every machine.

ProGit makes the repository the project management system. Issues, tickets, and board state live in .project/ as plain JSON, tracked in git as the single source of truth. No webapp database. No GitHub Issues. Git is the transport.

  • Repo is the database.project/issues/*.json, tracked in git. git log is your project history.
  • Agent ledger CLIprog issue create|set|note --json --actor agent:name. Machines write; you audit.
  • Board is a working tree — move cards on the Kanban board. Changes stage locally, like editing files.
  • Sync is a commit + pushprog sync flushes every pending change as one git commit and pushes to origin. Every clone pulls the new board state.
  • Forge federation bridge — Forgejo and GitLab REST sync ride alongside git-native as a peer transport.

Agent Ledger CLI

The JSON CLI contract agents use to write issues. Reference →

Migrate from GitHub Issues

Move your project state off the webapp database into your repo. Guide →

Terminal window
# machine A — developer
$ prog issue create --title "Fix auth race" --actor agent:voxis --json
created abc123 .project/issues/abc123.json
$ prog board # you move abc123 to "In Progress"
$ prog sync # flush: stage → commit → push
committed 1 issue change to .project/
pushed to origin
# machine B — another developer
$ git pull && prog board
abc123 now shows "In Progress"
$ git log --oneline -- .project/
a1b2c3d progit: sync 1 issue change abc123: backlog in-progress (agent:voxis)

The repository is not just where issues are stored. It is how they propagate. Git is the sync transport, not a forge REST API. Learn the model →

Machines write issues through a stable, non-interactive JSON CLI with actor attribution and an append-only event log. The write surface →

The board is a working tree. prog sync is commit + push. The propagation surface →