10branchesTags

README.md

g1t

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.

Status

Working today:

  • Accounts with email verification and password reset; sign-in from a tool by approving a code in the browser.
  • Workspaces that own repositories, with members and roles.
  • Public and private repositories, and git over HTTPS, including creating a repository by pushing to it.
  • Issues with labels, acceptance checks and comments.
  • Pull requests, each in a copy-on-write fork, with a diff and a recorded agent session. Several can be made for one issue.
  • Merging: lands a pull request on 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.
  • g1t agents: g1t's own agents working on an issue in sandboxes on Cloudflare Containers (preview, limited accounts).
  • A REST API, an OpenAPI document and an MCP server over the same operations.
  • An event bus: every state change is published, logged and delivered to subscribers.

Not built yet: pull requests from branches, server-side merge commits, review comments on lines, running acceptance checks, OAuth sign-in for MCP, git over SSH. See the build order in the plan.

Try it

# 1. Create an account at https://g1t.sh/register, a workspace, and an
#    access token in Settings.
export G1T_TOKEN=g1t_…

# 2. Connect Claude Code.
claude mcp add --transport http g1t https://mcp.g1t.sh \
  --header "Authorization: Bearer $G1T_TOKEN"

# 3. Ask it to open a pull request for an open issue.
sh

Getting started walks through this in full. An assistant can do it for you from https://g1t.sh/llms.txt.

Layout

PathWhat it is
apps/webThe site: server-rendered React on a Worker. Holds no data.
apps/docsThe documentation site, with the API explorer.
apps/apiREST API and MCP server.
services/identityAccounts, workspaces, sessions, keys and tokens. Rust.
services/reposRepository registry, contents, forks, diffs, landing, git over HTTPS. Rust.
services/workIssues, pull requests, comments and sessions. Rust.
services/eventsThe event bus and its log.
services/runnerStarts the sandboxes g1t agents work in.
crates/runnerThe program inside a sandbox: runs the agent and reports back. Rust.
crates/contractsTypes and service interfaces for the Rust services.
crates/kitPlumbing shared by Rust services on Workers.
crates/sshdGit over SSH, bridged to Artifacts. Not deployed yet.
packages/contractsThe same interfaces for TypeScript callers.
packages/themeDesign 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. Anything that is not a web UI is written in Rust or on its way there; the events service and the API are next.

Run your own

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
sh

Then, once:

  1. Create the D1 databases (g1t, g1t-repos, g1t-work, g1t-events) and the queues (g1t-events, g1t-events-work) with wrangler d1 create and wrangler queues create.
  2. Put your own account_id, database ids and hostnames in each wrangler.jsonc.
  3. Apply the migrations: npx wrangler d1 migrations apply DB --remote in each service directory.

Deploy everything in dependency order:

(cd services/identity && npx wrangler deploy)
(cd services/repos && npx wrangler deploy)
(cd services/work && npx wrangler deploy)
npm run deploy
(cd services/runner && npx wrangler deploy)   # optional: g1t agents
(cd apps/docs && npm run deploy)
sh

Create the first account by registering on your site, or with node services/identity/scripts/create-user.mjs <username>.

License

MIT