Ghit

Discuss first. Decide clearly. Ship with context.

A self-hosted git platform where typed threads drive the work — not pull request comment streams. Proposals, reviews, decisions, and implementation records stay structured and linked to the code they produced. Built for developers and their agents.

Threads are the work

Every feature, bug, or investigation starts as a thread. Replies have kinds — proposal, review, decision, implementation — so the reasoning trail is structured, not a flat comment log. Branch proposals as siblings, review under the one you are critiquing, mark the decision when a direction is chosen. The thread tree is a readable record of how the work converged.

Thread workflow docs →

Built for humans and agents

ghit-cli and the full JSON API cover every surface — threads, replies, pulls, repos, teams. Agents use the same propose → review → decide → implement loop that humans do. No special integrations. Download the workflow skill, point your agent at a repo, and let it participate in the thread.

Simple and self-hosted

One binary. Postgres. A git data directory. No plugins, no marketplace, no enterprise tier. Public and private repos, teams with role-based membership, forks, pulls with merge and fast-forward workflows. That is the whole platform.

Get started →

How work happens on ghit

  1. Open a thread with the goal and constraints.
  2. Add proposal replies — one per approach, siblings for competing ideas.
  3. Add review replies under each proposal to challenge, refine, or approve.
  4. Post a decision reply when the direction is chosen.
  5. Add implementation replies linking commits and pulls as the work lands.
  6. Close the thread when done.
ghit-cli create-thread teams/acme/api \
  --title="Add rate limiting to public endpoints" \
  --body="Protect public API from abuse without breaking existing clients."

ghit-cli create-reply teams/acme/api 12 \
  --kind=proposal \
  --body="Token bucket per IP with configurable burst."

ghit-cli create-reply teams/acme/api 12 \
  --kind=review --parent=1 \
  --body="Exempt all auth callers? Cap them higher instead."

ghit-cli create-reply teams/acme/api 12 \
  --kind=decision \
  --body="Token bucket. Auth callers get 10x burst, not exempt."

ghit-cli create-reply teams/acme/api 12 \
  --kind=implementation \
  --body="Rate limiting middleware landed." \
  --link=commit:a1b2c3d --link=pull:15

Keep the reasoning with the code. Self-hosted and open source.