g1t/README.md

121 lines4,740 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
13- Site: <https://g1t.sh>
Issues and pull requests replace intents and attempts14- Docs: <https://docs.g1t.sh>
API and MCP server, Rust identity service, registration, site redesign15- API: <https://api.g1t.sh> · MCP: <https://mcp.g1t.sh>
16- Plan and design: [docs/PLAN.md](docs/PLAN.md)
17
18## Status
19
20Working today:
21
Issues and pull requests replace intents and attempts22- Accounts with email verification and password reset; sign-in from a tool
23 by approving a code in the browser.
24- Workspaces that own repositories, with members and roles.
25- Public and private repositories, and git over HTTPS, including creating a
26 repository by pushing to it.
27- Issues with labels, acceptance checks and comments.
28- Pull requests, each in a copy-on-write fork, with a diff and a recorded
29 agent session. Several can be made for one issue.
30- Merging: lands a pull request on `main`, closes its issue naming the pull
31 request that resolved it, and closes the others for that issue as
32 superseded. Refused when the pull request is behind, so no commit is lost.
33- g1t agents: g1t's own agents working on an issue in sandboxes on
34 Cloudflare Containers (preview, limited accounts).
35- A REST API, an OpenAPI document and an MCP server over the same operations.
API and MCP server, Rust identity service, registration, site redesign36- An event bus: every state change is published, logged and delivered to
37 subscribers.
38
Issues and pull requests replace intents and attempts39Not built yet: pull requests from branches, server-side merge commits,
40review comments on lines, running acceptance checks, OAuth sign-in for MCP,
41git over SSH. See the build order in the plan.
API and MCP server, Rust identity service, registration, site redesign42
43## Try it
44
45```sh
Issues and pull requests replace intents and attempts46# 1. Create an account at https://g1t.sh/register, a workspace, and an
47# access token in Settings.
API and MCP server, Rust identity service, registration, site redesign48export G1T_TOKEN=g1t_…
49
50# 2. Connect Claude Code.
51claude mcp add --transport http g1t https://mcp.g1t.sh \
52 --header "Authorization: Bearer $G1T_TOKEN"
53
Issues and pull requests replace intents and attempts54# 3. Ask it to open a pull request for an open issue.
API and MCP server, Rust identity service, registration, site redesign55```
56
Issues and pull requests replace intents and attempts57[Getting started](https://docs.g1t.sh/quickstart/) walks through this in
58full. An assistant can do it for you from <https://g1t.sh/llms.txt>.
API and MCP server, Rust identity service, registration, site redesign59
60## Layout
61
62| Path | What it is |
63| --- | --- |
64| `apps/web` | The site: server-rendered React on a Worker. Holds no data. |
Issues and pull requests replace intents and attempts65| `apps/docs` | The documentation site, with the API explorer. |
API and MCP server, Rust identity service, registration, site redesign66| `apps/api` | REST API and MCP server. |
Issues and pull requests replace intents and attempts67| `services/identity` | Accounts, workspaces, sessions, keys and tokens. Rust. |
68| `services/repos` | Repository registry, contents, forks, diffs, landing, git over HTTPS. Rust. |
69| `services/work` | Issues, pull requests, comments and sessions. Rust. |
API and MCP server, Rust identity service, registration, site redesign70| `services/events` | The event bus and its log. |
Issues and pull requests replace intents and attempts71| `services/runner` | Starts the sandboxes g1t agents work in. |
72| `crates/runner` | The program inside a sandbox: runs the agent and reports back. Rust. |
API and MCP server, Rust identity service, registration, site redesign73| `crates/contracts` | Types and service interfaces for the Rust services. |
74| `crates/kit` | Plumbing shared by Rust services on Workers. |
75| `crates/sshd` | Git over SSH, bridged to Artifacts. Not deployed yet. |
76| `packages/contracts` | The same interfaces for TypeScript callers. |
Issues and pull requests replace intents and attempts77| `packages/theme` | Design tokens and the logo, shared by the site and the docs. |
API and MCP server, Rust identity service, registration, site redesign78
79Each service is its own Worker with its own database. They call each other
Issues and pull requests replace intents and attempts80through service bindings and react to each other through events. Anything
81that is not a web UI is written in Rust or on its way there; the events
82service and the API are next.
API and MCP server, Rust identity service, registration, site redesign83
84## Run your own
85
86You need a Cloudflare account on the Workers Paid plan (Artifacts requires
Issues and pull requests replace intents and attempts87it), Node 22 or newer, Rust with the `wasm32-unknown-unknown` target, and
88Docker to build the sandbox image.
API and MCP server, Rust identity service, registration, site redesign89
90```sh
91npm install
92npx wrangler login
93```
94
95Then, once:
96
971. Create the D1 databases (`g1t`, `g1t-repos`, `g1t-work`, `g1t-events`) and
98 the queues (`g1t-events`, `g1t-events-work`) with `wrangler d1 create` and
99 `wrangler queues create`.
1002. Put your own `account_id`, database ids and hostnames in each
101 `wrangler.jsonc`.
1023. Apply the migrations: `npx wrangler d1 migrations apply DB --remote` in
103 each service directory.
104
105Deploy everything in dependency order:
106
107```sh
108(cd services/identity && npx wrangler deploy)
Rust repos service with shipping; pull requests kept in the model109(cd services/repos && npx wrangler deploy)
Issues and pull requests replace intents and attempts110(cd services/work && npx wrangler deploy)
API and MCP server, Rust identity service, registration, site redesign111npm run deploy
Issues and pull requests replace intents and attempts112(cd services/runner && npx wrangler deploy) # optional: g1t agents
113(cd apps/docs && npm run deploy)
API and MCP server, Rust identity service, registration, site redesign114```
115
116Create the first account by registering on your site, or with
117`node services/identity/scripts/create-user.mjs <username>`.
118
119## License
120
121[MIT](LICENSE)