Gitstalk docs
Gitstalk is a git forge built for coding agents. Many agents push small changes at once, and each change lands as soon as it passes its tests on the exact code it would land on. Nobody waits in a merge queue, and the stable line stays green.
Pick your path
I use agents live
Connect Claude Code, Codex or another MCP client, then let it push beans.
I run a team live
Roles, invitations, organizations, private and public repositories.
I automate live
GitHub Actions workflows and agents defined in git that react to events.
I self-host live
Run all of Gitstalk on your own Cloudflare account.
Three words
-
A bean is one change: a branch named
bean/<name>, pushed by an agent or a person. - The sprout is where a bean lands first, once its pre-land check passes on the sprout plus the bean.
- The stalk is the stable line. It moves only to sprout commits that passed validation, so it stays green.
See Concepts for the whole life of a bean.
The 60-second start
Three steps, with Claude Code or Codex and git installed. The Quickstart walks through each one with a small mock of every screen.
-
Sign up and create a repository
Sign up with an email code or a passkey and pick a handle. Then choose New repository: the TypeScript starter, an empty repository, or an import of a public git URL.
-
Connect your agent
Claude Code: paste in your terminal claude plugin marketplace add coop-collective/gitstalk-plugin && claude plugin install gitstalk@gitstalk && claude mcp login plugin:gitstalk:gitstalkYour browser opens once to approve the session. Then run
/gitstalk:setup <owner>/<repo>in Claude Code: it picks an SSH key (or makes one), opens a Gitstalk tab for you to approve it, and points git at your repository.Codex: paste in your terminal codex plugin marketplace add coop-collective/gitstalk-plugin && codex plugin add gitstalk@gitstalk && codex mcp login gitstalkFor git, ask Codex to run the setup script (
setup.sh, orsetup.ps1on Windows) from the web app.Cursor, Gemini CLI and other MCP clients: Connecting agents.
-
Push a bean
In a clone of your repository (the Quickstart shows how to connect git and clone):
Terminal git switch -c work origin/sprout git commit -am "Add a truncate helper" git push -o wait origin HEAD:refs/heads/bean/add-truncateThe push waits for the pre-land check and prints the verdict (shortened here):
remote: gitstalk: pre-land check started: your change is merged onto the sprout and the whole suite runs on that tree remote: gitstalk: LANDED: add-truncate passed its pre-land check and is on the sprout as 3f9c2ab remote: gitstalk: it moves to the stalk once CI validates the sprout
What is in it
Every page carries a badge. live is running on the hosted service. beta is built, but works only partly or has not been confirmed on the hosted service. planned is not built yet.
- QuickstartliveSign up, make a repository, connect an agent and push a first bean.
- ConceptsliveBean, sprout, stalk, the pre-land check and what happens when it goes red.
- Accounts, tokens and keyslivePasskeys, email codes, personal and deploy tokens, SSH keys, sessions. Notification settings are planned: nothing is sent yet.
- Connecting agentsliveThe plugin, OAuth sign-in, tokens and git credentials for containers.
- MCP tools and scopesliveWhat an agent can call at each scope. The tools added on 2026-10-14 are beta until the hosted service is confirmed to run them.
- Ask the repositoryliveAsk a question about the code, its beans and decisions, and see what answered it.
- Why this line: blame by beanbetaWhich bean wrote each line, and why.
- Cloud agents and sandboxesplannedAgents that run for you in the cloud. Not built; this page separates them from the sandboxes that check your beans.
- Live updates and streaming diffsbetaThe web app updates live as beans move. Streaming a diff while an agent writes it works only in engine races today, not in your repositories.
- RepositoriesliveCreate, import, the start page and the repository tabs.
-
Git compatibilitylivePlain git over HTTPS:
bean/*branches, push options, verdicts on the push, status refs. Git over SSH is built but not public yet. -
Checkslive
.gitstalk/checks.yml: what a bean must pass, and protected paths. Node test suites only today. -
Approval rulesbeta
.gitstalk/policy.yml: which changes land on their own and which wait for a person. - Decision cards and reconcilebetaWhen two changes disagree, the engine raises a card. Answering cards in the repository web pages is not built yet.
- Collaborators and visibilityliveRoles, invitations, public, private and internal repositories. Teams are planned.
- OrganizationsliveMembers, base permission, internal repositories, the audit log.
- Settings mapliveWho sees which repository settings section, and what each one does.
-
GitHub ActionsliveYour
.github/workflows, run on Cloudflare. - Runners: where jobs runliveThe Linux container each job gets, and the planned isolate.
-
Dependency cacheliveReuse
node_modulesbetween runs. - Secrets and variablesliveRepository and organization secrets, write-only and masked in logs.
- Environment variablesliveWhere to set one: a secret, a variable, a workflow, or a check.
- AutomationsliveAgents defined in git that react to Gitstalk events, with their own memory.
- Automation builder and templatesbetaBuild an automation in the browser from a form or YAML.
- Limits and plansliveThe managed beta limits. There is no billing today.
- Self-hosting and custom hostsliveProvision, secure and deploy your own copy.
- TroubleshootingliveLook up the message you saw.
- ArchitectureliveHow the pieces fit, with measured results.
- What did not workliveOptional background: ideas we measured and dropped.
How it works, and how we know
Architecture shows the pieces and the measured results: against GitHub's merge queue on 38 real changes from fastify, Gitstalk integrated each change 6 to 9 times faster with 16 parallel workers. What did not work lists the ideas we measured and dropped.