Skip to content
257 linesCodeBlameRaw

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.

Agents as a team: lifecycle, merge queue, billing and a new shell1# Demo script
2
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording3A walk through g1t for the submission video. It runs about nine minutes at
4a normal speaking pace (the entry allows five to ten) and uses `flagon-io/hello`, a small Rust greeter whose
Usage while free is shown at cost; agents get rustfmt and clippy5whole history was written by agents working on issues.
Agents as a team: lifecycle, merge queue, billing and a new shell6
7Everything shown is live on g1t.sh. Nothing is mocked.
8
Usage while free is shown at cost; agents get rustfmt and clippy9The judges weigh agent collaboration (half), concurrency and conflicts (a
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording10quarter) and ease of use (a quarter). Sections 3 to 7 carry the first two;
11sections 2 and 9 the third.
Usage while free is shown at cost; agents get rustfmt and clippy12
Agents as a team: lifecycle, merge queue, billing and a new shell13## Before recording
14
15- Sign in as `syntaqx`.
16- Have a terminal open in an empty directory, with Claude Code installed.
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look17- Open `https://g1t.sh/flagon-io/hello` in one tab and `https://g1t.sh/` in
Agents as a team: lifecycle, merge queue, billing and a new shell18 another.
Usage while free is shown at cost; agents get rustfmt and clippy19- Write the three issues for section 3 in a scratch file so they can be
20 pasted (titles below). Agents take one to three minutes each: start them,
21 talk over sections 4 and 5, and come back.
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md22- In `flagon-io/hello` **Settings → Rules**, check the ruleset for `main`
23 has **Require the merge queue**, and in Settings check **Merge
24 automatically when ready** is on, so section 7's pull requests enter the
25 queue by themselves. (`automation-lab` is set to wait for a person, so do
26 not record there.)
27- In the same settings, **Ask a person before merging low-confidence
28 changes** is on for `hello`. Decide before recording: leave it on and
29 say so if a low-confidence change waits for you in section 7, or turn it
30 off for the take so every green, reviewed pull request lands by itself.
31 Turn it back on afterwards.
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording32- Write the brief for section 4 in the scratch file too.
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md33- Mark the inbox's error notifications read, and check the latest
34 **Deploy** run on `flagon-io/g1t` is green, since section 9 ends there.
35- Load every page the script visits once before recording. Cold loads take
36 1.4 to 2.7 seconds; warm ones 0.4 to 0.9.
Usage while free is shown at cost; agents get rustfmt and clippy37- Do not deploy the runner while agents work.
Agents as a team: lifecycle, merge queue, billing and a new shell38
39## 1. The problem (30 seconds)
40
41On the landing page.
42
43> Git forges were built for people taking turns: one issue, one branch, one
44> pull request, one reviewer. Put fifty agents on a repository and that
45> breaks. They collide, nobody can review it all, and when something lands
46> you cannot tell why it was written. g1t is a forge built for that case. It
47> is ordinary git, with issues and pull requests, and it runs entirely on
48> Cloudflare.
49
Usage while free is shown at cost; agents get rustfmt and clippy50## 2. It is still git, and your CI comes with you (1 minute)
Agents as a team: lifecycle, merge queue, billing and a new shell51
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look52On `flagon-io/hello`, Code tab.
Agents as a team: lifecycle, merge queue, billing and a new shell53
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording54- The file list reads like any forge's: each file with the commit that last
55 changed it. Press **Code**: clone over HTTPS, the one line that connects
56 an agent, or **Download ZIP**.
57- Glance at **Branches** (each with its pull request, checks and how far it
58 has moved) and **Compare**.
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look59- In the terminal: `git clone https://g1t.sh/flagon-io/hello.git`.
Usage while free is shown at cost; agents get rustfmt and clippy60- Open `.g1t/workflows/ci.yml`. It is a GitHub Actions workflow, unchanged:
61 `actions/checkout@v7`, a Rust toolchain action, `actions/cache@v6`, then
62 formatting, lints, an "Every flag is documented" step, and tests.
63
64> Moving from GitHub is renaming `.github` to `.g1t`. The same workflow
65> syntax, the same actions from the marketplace, the same `push`,
66> `pull_request` and `merge_group` events. Storage is Cloudflare Artifacts;
67> every job runs in its own Cloudflare Container.
Agents as a team: lifecycle, merge queue, billing and a new shell68
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md69- **Workflows** tab: the runs, by event. Open one and show the steps and the log.
Usage while free is shown at cost; agents get rustfmt and clippy70
71## 3. Many issues, an agent on each (1 minute 30 seconds)
Agents as a team: lifecycle, merge queue, billing and a new shell72
73Issues tab.
74
Usage while free is shown at cost; agents get rustfmt and clippy75- Create three issues quickly, pasting them in:
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md76 - **Add a --repeat-sep flag**: `--repeat-sep <s>` prints the greetings
77 `--times` repeats on one line, separated by `<s>`, documented in the
78 README options table.
Usage while free is shown at cost; agents get rustfmt and clippy79 - **Add a --sparkle flag** that ends the greeting with a sparkle emoji.
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md80 - **Greet in German** with `--lang de` (`Hallo, NAME!`). Today `--lang de`
81 is refused with an error, and a test says so; that test changes too.
82- All three change `src/lib.rs`, `src/main.rs` and `README.md`, so once
83 the agents have pushed, each pull request shows the others under **Other
84 work is changing the same files**.
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent85- Tick all three and press **Assign to g1t**. Say there is nothing
Usage while free is shown at cost; agents get rustfmt and clippy86 else to choose: no number of agents, no model. Each issue gets an agent of
87 its own and g1t routes the work; every session opens by naming the model
88 that ran.
89- Open one. Its draft pull request has appeared. Show the **Session** tab
90 filling in live: the prompt, what the agent was told about the other work
91 in progress, every command it runs.
Agents as a team: lifecycle, merge queue, billing and a new shell92
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording93> Each agent has its own sandbox and its own fork, so an agent cannot damage
94> what it cannot write to; a day after its pull request lands, the fork is
95> retired and only its head is kept. Each agent is told what else is in
96> flight, so two agents on the same file know about each other before they
97> collide.
Agents as a team: lifecycle, merge queue, billing and a new shell98
Usage while free is shown at cost; agents get rustfmt and clippy99While they run, go on.
Agents as a team: lifecycle, merge queue, billing and a new shell100
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording101## 4. One outcome, planned into work that runs in parallel (1 minute)
102
103Issues tab, then **Outcomes**.
104
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md105- Paste a brief, such as: *The greeter should greet in Italian with
106 `--lang it` (`Ciao, NAME!`) and in Portuguese with `--lang pt`
107 (`Olá, NAME!`). Each language should be documented in the README and
108 covered by tests.* (`hello` speaks `en`, `es` and `fr` today.) Press
109 **Plan it**. In about twenty seconds an agent has read the
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording110 repository and proposed issues: what each must make true, the files each
111 will touch, and which has to land before which.
112- Press **Open these and assign g1t**. The first issue starts at once. Come
113 back to it at the end: as soon as it merges, the ones that depended on it
114 start together, each with its own agent.
115
116> You say what should be true; g1t works out the order. Independent pieces
117> run at once, and a piece that needs another starts the moment that one
118> lands, from its result.
119
120## 5. Agents keep CI honest, and fix what it catches (1 minute 30 seconds)
Agents as a team: lifecycle, merge queue, billing and a new shell121
Usage while free is shown at cost; agents get rustfmt and clippy122Open issue **#80, CI: fail when a flag is missing from the README**, and its
123pull request **#81**.
Agents as a team: lifecycle, merge queue, billing and a new shell124
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md125- An agent wrote this CI step. **Files changed**: the shell step it added to
Usage while free is shown at cost; agents get rustfmt and clippy126 `ci.yml`. It went through review and the merge queue like any change.
Agents as a team: lifecycle, merge queue, billing and a new shell127
Usage while free is shown at cost; agents get rustfmt and clippy128Open issue **#84, Add a --reverse flag**, and its pull request **#85**.
Agents as a team: lifecycle, merge queue, billing and a new shell129
Usage while free is shown at cost; agents get rustfmt and clippy130- Its checks, `cargo test`, passed. Its first workflow run did not:
131 **Formatting** failed. Open the run and show the step and its log.
132- Session tab: the agent's second session opens with the failed run, the
133 instruction to read it with `get_workflow_run` and `get_job_logs`, and to
134 fix the code rather than the workflow. Show it reading the log, fixing
135 the formatting, and pushing. The second run is green.
Agents as a team: lifecycle, merge queue, billing and a new shell136
Usage while free is shown at cost; agents get rustfmt and clippy137> Nobody marks their own homework. Workflows run in a clean sandbox on the
138> exact commit; the agent that wrote the code never touches the result. A
139> failure goes back to the agent with the log, and the pull request cannot
140> merge until it is green.
Agents as a team: lifecycle, merge queue, billing and a new shell141
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording142## 6. Checks, reviews and choosing between pull requests (1 minute)
Agents as a team: lifecycle, merge queue, billing and a new shell143
Usage while free is shown at cost; agents get rustfmt and clippy144Open **Say goodbye too** (#4) and its pull request **Add a farewell** (#9).
Agents as a team: lifecycle, merge queue, billing and a new shell145
Usage while free is shown at cost; agents get rustfmt and clippy146- This one was pushed as a branch by a person, the way you already work.
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md147- **Checks failed.** A closed pull request keeps its checks: open
148 `cargo test`'s **Details** and show the log. The agent's pull request for
149 the same issue, #10, passed and was merged; #9 says "#10 was merged
150 instead".
Agents as a team: lifecycle, merge queue, billing and a new shell151
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md152Open **Greet in Spanish and French** (#2), then either of its pull requests.
Agents as a team: lifecycle, merge queue, billing and a new shell153
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md154- **Other attempts at #2**: two agents' pull requests for one issue, side
155 by side, each with its state, its checks, where its review stands and the
156 size of the change. Reviews come from @g1t, the one name all of g1t's own
157 work carries.
158- Then, on one of section 3's pull requests: **Other work is changing the
159 same files**, naming the other two and the files they share.
Agents as a team: lifecycle, merge queue, billing and a new shell160
Usage while free is shown at cost; agents get rustfmt and clippy161> This is the overlap radar. g1t says so while the work is still going on,
162> not at the end as a merge conflict. Agents see the same thing through the
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording163> API, which is how the agents in sections 3 and 4 were told about each other.
Agents as a team: lifecycle, merge queue, billing and a new shell164
Usage while free is shown at cost; agents get rustfmt and clippy165Open **A blank name greets nobody** (#1): closed, saying which pull request
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md166resolved it; the other says which one was merged instead.
Usage while free is shown at cost; agents get rustfmt and clippy167
Demo: agents asking each other, and the queue fitting their changes together (#86-#89)168Open **Add a --both flag** (#88) and its pull request **#89**, then **Rename
169hail() and part() to greet() and farewell()** (#86, pull request **#87**).
170
171- Session of #89: its agent saw #87 renaming the functions it needed and
172 asked #87's agent, with `message_agent`, for the exact names and
173 signatures.
174- #87's change was done and waiting; its agent was not running. Its
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent175 conversation says "g1t woke g1t to answer the agent on #89". Its
Demo: agents asking each other, and the queue fitting their changes together (#86-#89)176 session shows the agent reading its own `src/lib.rs` and answering:
177 `pub fn greet(name: &str) -> String`, `pub fn farewell(name: &str) ->
178 String`, and that `hail` and `part` are gone. Twenty seconds, four cents.
179- The answer arrives in #89's session at its next step.
180
181> Agents do not just avoid each other; they talk. A question to an agent
182> that has finished wakes it, in its own sandbox, with its own change in
183> front of it. Nobody relays anything.
184
185- Then the queue: #89 landed first, and #87, tested on top of it, failed.
186 g1t sent #87's agent back; it caught up and made the new `--both` code
187 use `farewell()`. Both are on main, and main builds.
188
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording189## 7. The merge queue (1 minute 15 seconds)
Usage while free is shown at cost; agents get rustfmt and clippy190
Merge demo dry run fixes: settled checks, other attempts, queue links, clone box, activity feed, DEMO.md191Back to the pull requests from section 3. Their checks have passed and
192@g1t has reviewed them.
Usage while free is shown at cost; agents get rustfmt and clippy193
194- With auto-merge on, they enter the **Merge queue** on their own. Open it.
195
196> Three changes, written at the same time, each green on its own. That
197> proves nothing about all three together. The queue builds main with the
198> first, main with the first and second, and so on, and tests every one of
199> those combinations at once, in parallel sandboxes: the issues' acceptance
200> checks, every check main has promised so far, and the repository's
201> `merge_group` workflows, exactly as GitHub's merge queue sends them.
Agents as a team: lifecycle, merge queue, billing and a new shell202
Usage while free is shown at cost; agents get rustfmt and clippy203- As each lands, the issue closes, recording which pull request resolved it.
204- Show #79 and #81 under **Recent**: landed, with the `merge_group` run.
Agents as a team: lifecycle, merge queue, billing and a new shell205
Usage while free is shown at cost; agents get rustfmt and clippy206> When a combination fails, that entry is taken out with the reason, the
207> ones behind it are tested again without it, and its agent is sent back
208> to fix it. A conflict with something ahead of it says which.
Agents as a team: lifecycle, merge queue, billing and a new shell209
Usage while free is shown at cost; agents get rustfmt and clippy210If one conflicts on camera, so much the better: open its Session and show
211the agent being given both sides and what the pull request is for.
Agents as a team: lifecycle, merge queue, billing and a new shell212
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording213## 8. Bring your own agent (45 seconds)
Agents as a team: lifecycle, merge queue, billing and a new shell214
215Terminal.
216
217```sh
218claude mcp add --transport http g1t https://mcp.g1t.sh
219```
220
221- In Claude Code, `/mcp`, choose g1t. The browser opens on g1t's consent
222 page. Approve.
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look223- Ask: "What issues are open on flagon-io/hello on g1t, and which pull
Usage while free is shown at cost; agents get rustfmt and clippy224 requests overlap? Did the last CI run pass?"
Agents as a team: lifecycle, merge queue, billing and a new shell225
Usage while free is shown at cost; agents get rustfmt and clippy226> No token to paste. The same operations are a REST API at api.g1t.sh,
227> including GitHub's own Actions endpoints, and the two are generated from
228> one list, so they cannot drift apart.
Agents as a team: lifecycle, merge queue, billing and a new shell229
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording230## 9. Close (30 seconds)
Agents as a team: lifecycle, merge queue, billing and a new shell231
Usage while free is shown at cost; agents get rustfmt and clippy232Back on the Issues tab: the three issues from section 3, closed, each saying
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording233which pull request resolved it. Then the outcome from section 4: its plan
234page shows every issue landed, the later ones started in parallel once the
235first merged. Finish on mission control: the week, split into what agents
236landed on their own, what a person merged, and people's own work.
Agents as a team: lifecycle, merge queue, billing and a new shell237
Usage while free is shown at cost; agents get rustfmt and clippy238> Issues and pull requests, as you know them, and your GitHub Actions as
239> they are. What changes is the number of hands. Every agent isolated in its
240> own fork, told what the others are doing, held to checks and workflows it
241> cannot mark itself, reviewed, and landed through a queue that tests the
242> combinations. g1t is open source, free while it is being built out, and
243> hosted on itself.
Agents as a team: lifecycle, merge queue, billing and a new shell244
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look245Show `https://g1t.sh/flagon-io/g1t`.
Agents as a team: lifecycle, merge queue, billing and a new shell246
247## If something goes wrong on camera
248
249| What | Do |
250| --- | --- |
Usage while free is shown at cost; agents get rustfmt and clippy251| An agent's pull request closes itself | Open its Session; the last note says why. Assign the issue again. |
252| A workflow stays queued | Open the run and press **Re-run all jobs**. |
Agents as a team: lifecycle, merge queue, billing and a new shell253| Checks stay queued | Press the re-run button on the checks panel. |
Usage while free is shown at cost; agents get rustfmt and clippy254| Nothing enters the queue | Auto-merge waits for checks, workflows and a review; the pull request's sidebar says which is missing. |
255| Merge is refused | Read the message: it is a draft, its checks or workflows have not passed, or it needs a review. |
Demo script: a planned outcome running in parallel, the Code button and Branches, forks described as they are measured, and checks before recording256| A check fails in checkout | It retries the fetch twice itself; if it still fails, press **Re-run failed jobs**. |
257| A planned issue does not start | Open it: a start that was refused says why in a comment. **Assign to g1t** on the issue starts it by hand. |

This file's history is long; its oldest lines are credited to the oldest commit read.