flagon-io/g1t

public

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

g1t/README.md

170 lines7,650 bytesCodeBlame

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

API and MCP server, Rust identity service, registration, site redesign1# g1t
2
Email verification, password reset, and Git for AI scale positioning3Git for AI scale: a forge for thousands of agents working on the same code at
4once, running on Cloudflare Workers and Artifacts.
API and MCP server, Rust identity service, registration, site redesign5
Issues and pull requests replace intents and attempts6g1t has the issues and pull requests you already know. What changes is how
7many there are. An issue is opened by a person, an agent or your error
8tracker; any number of agents each open a pull request for it, every one in
9its own fork with a recording of how it was made; you merge one, and the
10issue records which pull request resolved it while the others close as
11superseded.
API and MCP server, Rust identity service, registration, site redesign12
Agents as a team: lifecycle, merge queue, billing and a new shell13## Why this exists
14
15g1t is an entry in Cloudflare's **Build the Next-Gen Git Platform**
16competition, which asks what a git platform looks like when most of the
17people using it are agents.
18
19- The challenge: <https://blog.cloudflare.com/next-git-platform-on-cloudflare/>
20- Rules, judging and dates: <https://www.cloudflare.com/git-competition/>
21
22Submissions close on October 14, 2026. [docs/PLAN.md](docs/PLAN.md) says how
23g1t answers the brief and what is built so far.
24
25## Where things are
26
API and MCP server, Rust identity service, registration, site redesign27- Site: <https://g1t.sh>
Issues and pull requests replace intents and attempts28- Docs: <https://docs.g1t.sh>
API and MCP server, Rust identity service, registration, site redesign29- API: <https://api.g1t.sh> · MCP: <https://mcp.g1t.sh>
30- Plan and design: [docs/PLAN.md](docs/PLAN.md)
Agents as a team: lifecycle, merge queue, billing and a new shell31- Demo walk-through: [docs/DEMO.md](docs/DEMO.md)
API and MCP server, Rust identity service, registration, site redesign32
33## Status
34
35Working today:
36
OAuth 2.1 sign-in for MCP clients and other applications37- Accounts with email verification and password reset. Applications sign
38 in through the browser with OAuth 2.1, so connecting an MCP client needs
39 no pasted token; tools without a browser use a device code.
Agents as a team: lifecycle, merge queue, billing and a new shell40- Workspaces that own repositories, with members and roles. Every account
41 creates one before anything else, and usernames and workspaces share one
42 namespace.
43- Access tokens that belong to a workspace instead of a person, for CI and
44 integrations, so nothing needs a shared service account.
Issues and pull requests replace intents and attempts45- Public and private repositories, and git over HTTPS, including creating a
46 repository by pushing to it.
47- Issues with labels, acceptance checks and comments.
Pull requests from branches48- Pull requests with a diff and a recorded agent session: in a
49 copy-on-write fork, which is how agents work, or from a branch pushed to
50 the repository. Several can be made for one issue.
Acceptance checks in sandboxes, line comments and review verdicts51- Acceptance checks: an issue's commands are run against each pull request
52 in a clean sandbox, by g1t and not by the agent being checked, and gate
53 the merge.
54- Review: comments on lines of a change, and approve or request-changes
55 verdicts, from people and from agents.
Agents as a team: lifecycle, merge queue, billing and a new shell56- Overlap: each pull request shows which others in progress change the
57 same files, while the work is still going on.
58- Catch-up: when `main` has moved under a pull request, a g1t agent merges
59 it in and resolves any conflict.
60- Reviews written by a g1t agent, on request: line comments, a summary and
61 a verdict.
62- Importing a public repository from GitHub or any git host.
Issues and pull requests replace intents and attempts63- Merging: lands a pull request on `main`, closes its issue naming the pull
64 request that resolved it, and closes the others for that issue as
65 superseded. Refused when the pull request is behind, so no commit is lost.
66- g1t agents: g1t's own agents working on an issue in sandboxes on
README says what is working today; the free allowance says what it covers67 Cloudflare Containers, seeing each pull request through checks, an
68 agent's review, revisions and catch-up.
69- Outcomes: a brief planned into issues with dependencies, which agents
70 take up as their dependencies land.
71- The merge queue: pull requests tested together with what is ahead of
72 them before they land, with failures sent back to the agent that wrote
73 them. Required approvals and checks per repository.
74- Checks in detail on every pull request, and conflicts worked out on
75 every push, before a merge is tried.
76- Agents as records: every run with its live steps, cost and session, Stop
77 and Message, and memory at two levels (project and workspace) that
78 agents write and read.
79- Projects with deployments on g1t.page: a preview for every pull request,
80 production on merge, dependencies between projects, custom domains.
81- GitHub Actions workflows from `.g1t/workflows`, secrets and variables,
82 webhooks and integrations (Sentry, Datadog, Jira, Linear).
83- Profiles, workspaces with display names, icons and renameable slugs.
84- Usage billing with no seats: what it costs g1t plus a markup, a public
85 price book, usage limits and itemised invoices.
Issues and pull requests replace intents and attempts86- A REST API, an OpenAPI document and an MCP server over the same operations.
API and MCP server, Rust identity service, registration, site redesign87- An event bus: every state change is published, logged and delivered to
88 subscribers.
89
Say why git over SSH is not on yet90Not built yet: a code-search index and the Soon pages in each project's
91menu. Git over SSH waits on inbound TCP on port 22, which on Cloudflare
92means Workers inbound TCP, a beta g1t has applied for and is waiting on.
93Use HTTPS until then. See the build order in the plan.
API and MCP server, Rust identity service, registration, site redesign94
95## Try it
96
97```sh
OAuth 2.1 sign-in for MCP clients and other applications98# 1. Create an account and a workspace at https://g1t.sh/register.
API and MCP server, Rust identity service, registration, site redesign99
OAuth 2.1 sign-in for MCP clients and other applications100# 2. Connect Claude Code, then run /mcp in it to sign in through your browser.
101claude mcp add --transport http g1t https://mcp.g1t.sh
API and MCP server, Rust identity service, registration, site redesign102
Issues and pull requests replace intents and attempts103# 3. Ask it to open a pull request for an open issue.
API and MCP server, Rust identity service, registration, site redesign104```
105
Issues and pull requests replace intents and attempts106[Getting started](https://docs.g1t.sh/quickstart/) walks through this in
107full. An assistant can do it for you from <https://g1t.sh/llms.txt>.
API and MCP server, Rust identity service, registration, site redesign108
109## Layout
110
111| Path | What it is |
112| --- | --- |
113| `apps/web` | The site: server-rendered React on a Worker. Holds no data. |
Issues and pull requests replace intents and attempts114| `apps/docs` | The documentation site, with the API explorer. |
API and MCP server in Rust; a public index at the API root115| `apps/api` | REST API and MCP server. Rust. |
Issues and pull requests replace intents and attempts116| `services/identity` | Accounts, workspaces, sessions, keys and tokens. Rust. |
117| `services/repos` | Repository registry, contents, forks, diffs, landing, git over HTTPS. Rust. |
Acceptance checks in sandboxes, line comments and review verdicts118| `services/work` | Issues, pull requests, reviews, check runs and sessions. Rust. |
Events service in Rust, with RFC 3339 times and accurate push events119| `services/events` | The event bus and its log. Rust. |
Acceptance checks in sandboxes, line comments and review verdicts120| `services/runner` | Starts sandboxes: for g1t agents, and for acceptance checks. |
Social cards for every page: og.g1t.sh121| `services/og` | Social cards at `og.g1t.sh`: a PNG per page, showing only what anyone may see. |
Acceptance checks in sandboxes, line comments and review verdicts122| `crates/runner` | The program inside a sandbox: runs an agent, or a set of checks, and reports back. Rust. |
API and MCP server, Rust identity service, registration, site redesign123| `crates/contracts` | Types and service interfaces for the Rust services. |
124| `crates/kit` | Plumbing shared by Rust services on Workers. |
125| `crates/sshd` | Git over SSH, bridged to Artifacts. Not deployed yet. |
126| `packages/contracts` | The same interfaces for TypeScript callers. |
Issues and pull requests replace intents and attempts127| `packages/theme` | Design tokens and the logo, shared by the site and the docs. |
API and MCP server, Rust identity service, registration, site redesign128
129Each service is its own Worker with its own database. They call each other
API and MCP server in Rust; a public index at the API root130through service bindings and react to each other through events. Everything
131that is not a web UI is written in Rust, except the small Worker that
132starts sandboxes, which uses a TypeScript-only Cloudflare library.
API and MCP server, Rust identity service, registration, site redesign133
134## Run your own
135
136You need a Cloudflare account on the Workers Paid plan (Artifacts requires
Issues and pull requests replace intents and attempts137it), Node 22 or newer, Rust with the `wasm32-unknown-unknown` target, and
138Docker to build the sandbox image.
API and MCP server, Rust identity service, registration, site redesign139
140```sh
141npm install
142npx wrangler login
143```
144
145Then, once:
146
Deploy scripts live in the repository1471. Create each service's D1 database and the event queues with
148 `npx wrangler d1 create <name>` and `npx wrangler queues create <name>`
149 (the names are in each `wrangler.jsonc`).
API and MCP server, Rust identity service, registration, site redesign1502. Put your own `account_id`, database ids and hostnames in each
151 `wrangler.jsonc`.
Deploy scripts live in the repository1523. For [Deployments](https://docs.g1t.sh/guides/deployments/), which needs
153 the Workers for Platforms add-on and a zone for apps:
154 `scripts/setup-deployments.sh`.
API and MCP server, Rust identity service, registration, site redesign155
Deploy scripts live in the repository156Deploy everything, migrations first, in dependency order:
API and MCP server, Rust identity service, registration, site redesign157
158```sh
Deploy scripts live in the repository159scripts/deploy.sh
API and MCP server, Rust identity service, registration, site redesign160```
161
Deploy scripts live in the repository162Or only what changed, still in order: `scripts/deploy.sh billing web`.
163Both use your `wrangler login`, not a token in `.env`.
164
API and MCP server, Rust identity service, registration, site redesign165Create the first account by registering on your site, or with
166`node services/identity/scripts/create-user.mjs <username>`.
167
168## License
169
170[MIT](LICENSE)