Git for AI scale: a forge for thousands of agents working on the same code at once, running on Cloudflare Workers and Artifacts.
g1t has the issues and pull requests you already know. What changes is how many there are. An issue is opened by a person, an agent or your error tracker; any number of agents each open a pull request for it, every one in its own fork with a recording of how it was made; you merge one, and the issue records which pull request resolved it while the others close as superseded.
Working today:
main, closes its issue naming the pull
request that resolved it, and closes the others for that issue as
superseded. Refused when the pull request is behind, so no commit is lost.Not built yet: server-side merge commits, review comments on lines, running acceptance checks, git over SSH. See the build order in the plan.
# 1. Create an account and a workspace at https://g1t.sh/register.
# 2. Connect Claude Code, then run /mcp in it to sign in through your browser.
claude mcp add --transport http g1t https://mcp.g1t.sh
# 3. Ask it to open a pull request for an open issue.
Getting started walks through this in full. An assistant can do it for you from https://g1t.sh/llms.txt.
| Path | What it is |
|---|---|
apps/web | The site: server-rendered React on a Worker. Holds no data. |
apps/docs | The documentation site, with the API explorer. |
apps/api | REST API and MCP server. Rust. |
services/identity | Accounts, workspaces, sessions, keys and tokens. Rust. |
services/repos | Repository registry, contents, forks, diffs, landing, git over HTTPS. Rust. |
services/work | Issues, pull requests, comments and sessions. Rust. |
services/events | The event bus and its log. Rust. |
services/runner | Starts the sandboxes g1t agents work in. |
crates/runner | The program inside a sandbox: runs the agent and reports back. Rust. |
crates/contracts | Types and service interfaces for the Rust services. |
crates/kit | Plumbing shared by Rust services on Workers. |
crates/sshd | Git over SSH, bridged to Artifacts. Not deployed yet. |
packages/contracts | The same interfaces for TypeScript callers. |
packages/theme | Design tokens and the logo, shared by the site and the docs. |
Each service is its own Worker with its own database. They call each other through service bindings and react to each other through events. Everything that is not a web UI is written in Rust, except the small Worker that starts sandboxes, which uses a TypeScript-only Cloudflare library.
You need a Cloudflare account on the Workers Paid plan (Artifacts requires
it), Node 22 or newer, Rust with the wasm32-unknown-unknown target, and
Docker to build the sandbox image.
npm install
npx wrangler login
Then, once:
g1t, g1t-repos, g1t-work, g1t-events) and
the queues (g1t-events, g1t-events-work) with wrangler d1 create and
wrangler queues create.account_id, database ids and hostnames in each
wrangler.jsonc.npx wrangler d1 migrations apply DB --remote in
each service directory.Deploy everything in dependency order:
(cd services/events && npx wrangler deploy)
(cd services/identity && npx wrangler deploy)
(cd services/repos && npx wrangler deploy)
(cd services/work && npx wrangler deploy)
(cd apps/api && npx wrangler deploy)
npm run deploy
(cd services/runner && npx wrangler deploy) # optional: g1t agents
(cd apps/docs && npm run deploy)
Create the first account by registering on your site, or with
node services/identity/scripts/create-user.mjs <username>.