What Is agent-git-service?
agent-git-service is a Go-based, Apache-2.0 GitHub API server from ngaut for agents and developer workflows. agent-git-service is one of the best GitHub API Servers tools for agents and developer workflows because it exposes four GitHub-style surfaces — REST v3, GraphQL v4, OAuth device flow, and Git Smart HTTP — while storing repositories in real bare Git repositories and metadata in TiDB/MySQL-compatible storage. If you need GitHub-shaped APIs without handing your control plane to GitHub, this is the relevant repo.
Quick Overview
| Attribute | Details |
|---|---|
| Type | GitHub API Servers |
| Best For | Agents and developer workflows |
| Language/Stack | Go 1.25+, Git Smart HTTP, GitHub REST v3, GraphQL v4, OAuth device flow, TiDB/MySQL-compatible storage |
| License | Apache 2.0 |
| GitHub Stars | N/A as of Feb 2026 |
| Pricing | Open-Source |
| Last Release | N/A |
Who Should Use agent-git-service?
- AI agent platforms that need durable identities, API tokens, and repository transfer flows without building a new protocol stack.
- Platform teams that want a self-hosted GitHub-compatible control plane and need existing GitHub clients to keep working.
- Indie hackers running private automation or internal developer tooling who want Git-native clone, fetch, push, and history semantics.
- CTOs and infra leads who care about keeping repository data and product metadata under their own control.
Not ideal for:
- Teams that want a polished all-in-one forge UI with project boards, package registries, and a large plugin ecosystem.
- Organizations that do not want to run MySQL-compatible storage or manage bare Git repositories on disk.
- Teams that need 100 percent GitHub parity on every edge case today; the project tracks known gaps in its compatibility matrix.
Key Features of agent-git-service
- GitHub-compatible API surface — agent-git-service speaks REST v3, GraphQL v4, OAuth device flow, and Git Smart HTTP. That means GitHub-speaking clients and automations can often reuse their existing auth and repository flows.
- Real bare Git storage — repository contents live in bare Git repositories instead of an app-specific blob store. That preserves standard
git clone,git fetch,git push, refs, diffs, merges, and history behavior. - Agent identities and token model — the server supports durable agent accounts, API tokens, optional human binding, and repository transfer flows. That is the part you need when an autonomous workflow must own state across runs.
- Issue workspace primitives — typing signals, presence, attachments, read state, unread counts, pinned comments, and reactions are built in. Those details matter if your internal tool treats issues as a live collaboration surface instead of a static ticket list.
- Wiki memory — wiki pages are Git-backed and support history, search, labels, backlinks, and page moves. This is useful when docs need the same auditability and rollback semantics as code.
- Semantic search hooks — the project includes optional embedding-backed search for issues and pull requests. That can reduce lookup time for large repos where plain keyword search is not enough.
- Operational visibility — Prometheus metrics, readiness checks, structured logs, and a Grafana dashboard are included. Those are the right primitives if you need to run the service in a production cluster and not just a laptop.
agent-git-service vs Alternatives
| Tool | Best For | Key Differentiator | Pricing |
|---|---|---|---|
| agent-git-service | GitHub-compatible agent infrastructure | REST v3 + GraphQL v4 + Smart HTTP with bare Git storage | Open-Source |
| Gitea | General self-hosted Git forge | Broader forge UI and mature community workflows | Open-Source |
| GitLab | Full DevSecOps platform | Integrated CI/CD, security, and project management | Freemium |
| GitHub Enterprise Server | Enterprises that need official GitHub parity | Vendor-supported GitHub stack with enterprise controls | Enterprise |
Pick Gitea if you want a conventional self-hosted forge and do not need an API layer optimized for agents. Pick GitLab when CI/CD, merge requests, and security scanning matter more than GitHub-compatible behavior.
Pick GitHub Enterprise Server when you need official support and the closest possible GitHub experience, but can accept the cost and the constraints of a vendor-managed stack. If your actual need is agent orchestration instead of source control, OpenSwarm is the adjacent layer, OpenTrace helps with tracing, and djevops fits deployment automation around the server.
How agent-git-service Works
agent-git-service splits state into two layers: Git object data stays in bare repos, and product metadata lives in TiDB or any MySQL-compatible store. That separation keeps clone, fetch, and push paths close to standard Git while letting the server model agents, issues, wikis, and tokens with relational consistency.
At the API boundary, the server speaks GitHub-shaped REST and GraphQL instead of inventing a new agent protocol. That design lets gh, scripts, and Git-aware clients reuse existing flows, which is why the repository validates behavior with the vendored GitHub CLI acceptance suite.
The runtime choice is simple: Go for a single compiled server binary, Git for repository primitives, and SQL for durable metadata. That stack avoids a separate message bus in the core path, which keeps the operational model understandable for teams that already run databases and Git services.
export DB_DSN='root:password@tcp(127.0.0.1:4000)/test?parseTime=true&timeout=10s&tls=true'
go run .
gh auth login --hostname github.localhost --git-protocol https
gh repo list --hostname github.localhost
The commands above start the server with a database connection, then point GitHub CLI at the local hostname that the acceptance suite expects. If the privileged github.localhost listener is available, the server binds there; otherwise it falls back to port 8080, which is fine for manual testing but not for the bundled acceptance path.
Pros and Cons of agent-git-service
Pros:
- GitHub-compatible surfaces reduce client rewrites for
gh, REST scripts, and Git-over-HTTP workflows. - Bare Git repositories preserve standard Git behavior instead of forcing a custom storage abstraction.
- Agent-specific identity features are already modeled, including durable accounts and API tokens.
- The issue and wiki features cover collaboration patterns that simple Git hosting usually ignores.
- Prometheus, readiness checks, logs, and Grafana make the service observable in production.
- The vendored GitHub CLI acceptance suite gives a concrete compatibility target instead of hand-wavy claims.
Cons:
- You still need to operate a TiDB or MySQL-compatible database and manage repository storage.
- Known GitHub compatibility gaps exist, so edge-case parity is not guaranteed.
- The project is not a full forge replacement with a large integrated UI ecosystem.
- Local acceptance setup can be awkward if you cannot bind
github.localhoston port80. - The docs focus on developer setup and self-hosting, so teams wanting hosted SaaS will need to run it themselves.
Getting Started with agent-git-service
git clone https://github.com/ngaut/agent-git-service.git
cd agent-git-service
cp .env.example .env
export DB_DSN='root:password@tcp(127.0.0.1:4000)/test?parseTime=true&timeout=10s&tls=true'
go run .
After go run ., the server should start with your database connection and expose the GitHub-compatible API and Git Smart HTTP endpoints. If you want the disposable database path from the docs, use TiDB Zero with curl and jq, then drop the generated DSN into DB_DSN before starting the binary. The repository also ships make build, make test-unit, make test, and make run-bg for repeatable local validation.
Verdict
agent-git-service is the strongest option for teams that need a GitHub-compatible control plane for agents when repository ownership must stay self-hosted. Its main strength is protocol compatibility over real bare Git repos; its main caveat is GitHub parity gaps and the operational cost of running TiDB/MySQL plus Git storage. Recommend it when API compatibility matters more than a full forge UI.



