Skip to content

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.sh
2branchesTags
syntaqxThe desktop app's runner is a dot right beside Settings in the title bar, with its own menu, and the settings open over the page rather than in a window to manage; every button that asks the app for something shows it is working until what it asked for shows. The dot is the runner's colour, live (green running, blue and breathing while it works, amber or red when it needs you, grey stopped), with the words on hover and beside it on a wide window. A click hangs the runner menu under it: what the runner is doing with Start or Stop for the whole runner, the whole runner's line and fix when it needs you, each kind of job with its state, the job it runs linked to its run, a newer runner waiting and its own Start or Stop, when the app last looked for updates with Check for runner updates, the last lines of the log with Open the whole log, and Runner settings…. Escape, a click outside or the dot again closes it, and the dot says whether it is open. The settings are a dialog with their sections down the left (Starting and closing, Runner, Notifications, Window, Updates, Server, About) and the one chosen on the right, opened by the title bar's button, the File or g1t menu's Settings and Ctrl+, or ⌘,, the tray's Settings…, the account menu's Desktop app settings, and Check for updates…, which opens them at Updates and looks; the window comes forward if it was hidden. Both are drawn by the site's page, which fills the window under the bar and tells the app it can once it has loaded; while the window shows no page of the site's (the server picker, the offline page, signing in with GitHub), or a site too old to say so, they open in the Settings and Runner windows as before. Each change is saved over the settings as the app has them at that moment, so a change made elsewhere meanwhile isn't undone. The site's page may change every setting but one: it can't take the runner out of its sandbox; choosing In Docker or Directly on this computer opens the Runner window, bundled with the app, where that is chosen, and putting it back in the sandbox works from either. Retry, Check now, Start, Stop, Remove it and start again, Open Docker, Check for runner updates, Check for updates, Restart now and the rest show a spinner, can't be pressed again and are said to be busy from the click until the runner's status or the answer that follows changes, an error, or 20 seconds with nothing, in the site and in the app's own windows alike; which fixes wait for the runner, and what Remove it and start again asks first, are now the app's catalogue's to say. The desktop guide says all of it.

README.md

g1t

g1t is where a company's people and agents work together. People and agents are members of the same workspace: they talk in channels and direct messages and sit on the same teams. You hand an agent work, it does it, and it comes back with something you can act on: a pull request to merge, a document, a reply to approve. Home says where you are needed and what happened while you were away. Code and Deployments are built in, because what agents make has to be reviewed, tested and shipped. Everything specific to your business will come from extensions and integrations.

g1t is MIT-licensed. Use it on g1t.sh, or run it yourself. It runs on Cloudflare Workers, and the core runs in Docker.

g1t is in alpha. Accounts are by invite. Each feature below is marked:

  • Live: works on g1t.sh for every workspace.
  • Preview: works on g1t.sh, but is limited to some workspaces or unfinished.
  • Coming: planned, not built.

Where things are

What's in it

The workspace

FeatureStatus
The dock: Home, Chat, Notifications, Agents, Code, Artifacts and your pinned apps, with People, Workspace and your account at its foot; a bottom bar on phonesLive
Home: where you're needed now, what happened since you were last here (agent work and how much was accepted the first time, what landed, deploys, decisions, spend), what is running, and where to startPreview
Chat: channels, direct messages and threads, live, with people and agents as membersLive
Notifications: mentions, reviews, approvals and alerts, with browser pushLive
People and teams: members, roles, nested teams, invitesLive
A directory of people and agents, profiles, teams with agent membersComing
Artifacts: documents written together, live, by people and agentsLive
Slides, designs and dashboards as artifactsComing
Scratchpads: tools, reports and agents anyone can build on a copy of the data, promoted after reviewComing
Desktop app for Windows, macOS and Linux (Tauri): the site in a window of its own, notifications from the system, a badge, g1t:// links, updates that install themselvesPreview
A runner inside the desktop appComing
A phone app for Android and iOS (Expo, in apps/mobile): Chat in full, live, with notifications on the phone; Code and Customize; signed in with OAuth, to g1t.sh or your own g1t. Android first, in testing; not in the stores yetPreview

Agents

FeatureStatus
Agents hired into roles from templates, each with responsibilities, a voice, model limits and a budgetLive
@g1t, the orchestrator every workspace has, which hands work to the right agent with hand_offLive
Your own model providers' keys (14 providers), and the AI GatewayLive
g1t's hosted models (open to invited workspaces during the alpha)Preview
Budgets per workspace, person, agent and task; guardrails; agents act with the asker's accessLive
Spend: where the money went by agent, person, channel, model and product, every budget, a receipt for each task, and your spend in the top barPreview
Spend by extensionComing
Memory, sessions with live steps and cost, routines on a scheduleLive
Agent templates in Agents: starting points for a new agent, configured once startedLive
Foundational skills in every agent: PDFs, Word documents and spreadsheets, reports with sources, charts, code review, thread summaries; owners turn them off per agentLive
A skill library in the open SKILL.md format: write, import, save from a session, attach to agents, teams or every agent at a pinned version, optionally kept in a repositoryLive
More specialist templates; web research; skills from the Marketplace; skill scripts on an agent's own computerComing
Agents on runners anywhere (g1t's, yours, your desktop), with sessions that persist between tasksComing
Agents answering in Slack and TeamsComing

Code and Deployments

FeatureStatus
Public and private repositories, git over HTTPS, creating a repository by pushing to itLive
Issues, pull requests, line comments, reviews from people and agentsLive
Required checks, rulesets, CODEOWNERS, the merge queueLive
Workflows from .g1t/workflows on g1t's runners or self-hosted ones (crates/runner)Live
Assign an issue to g1t: a pull request, checks, a review and revisions until it passes (invited workspaces)Preview
Any coding agent over MCP, recording its session onto its pull requests; why-blameLive
Packages: npm, Cargo, Composer, Maven, NuGet, RubyGems, Go modules, container imagesLive
Secret push protection, history scanning, dependency upgrade pull requestsLive
A preview of every pull request on g1t.page, production on merge, custom domainsLive
GitHub import: every branch and tag, and issuesLive
A copy of the data for every preview, instant rollback, container apps kept warmComing
Git over SSH (waits on inbound TCP on Workers; use HTTPS)Coming

Extend and run

FeatureStatus
Integrations: the GitHub App, Sentry, Datadog, Jira, Linear, alertsLive
REST API, OpenAPI, MCP server, webhooks, an event busLive
Usage billing with no seats, a public price book, spend limits, itemised invoicesLive
The Marketplace: extensions and integrations, added by owners, with install requests from membersLive
Extensions shared from public repositories (Mail, Support, CRM, Recruiting, On-call and helpdesk, CRM and ERP bridges are listed); Drive, Gmail, Calendar and Slack integrationsComing
Single sign-on (SAML, OIDC) and SCIM per workspaceComing
Storage: databases and buckets per team, with copies of production for anything unreviewedComing
Self-hosting: the core forge in Docker Compose (agents, deployments and context search off)Preview

Try it

# 1. Create an account and a workspace at https://g1t.sh/register (you need an invite).

# 2. Connect Claude Code, then run /mcp in it to sign in through your browser.
claude mcp add --transport http g1t https://mcp.g1t.sh

# 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 isLanguage
apps/webThe site: server-rendered React on a Worker. Holds no data.TypeScript
apps/docsThe documentation site, with the API explorer.TypeScript
apps/apiREST API and MCP server.Rust
services/identityAccounts, workspaces, sessions, keys and tokens.Rust
services/reposRepository registry, contents, forks, diffs, landing, git over HTTPS.Rust
services/workIssues, pull requests, reviews, check runs and sessions.Rust
services/eventsThe event bus and its log.Rust
services/searchSite-wide search and Explore.Rust
services/billingUsage, the price book, limits, invoices and payments.Rust
services/actionsGitHub Actions workflows, runs, caches and self-hosted runners.Rust
services/securityPush protection findings, history scanning and dependency upkeep.Rust
services/integrationsModel providers, alerts, trackers and the GitHub App.Rust
services/webhooksWebhook deliveries.Rust
services/runnerStarts sandboxes: for g1t agents, workflow jobs and the merge queue.TypeScript
services/projectsProjects: what a workspace builds and runs, and where its code lives.TypeScript
services/deploymentsBuilds, previews and production on g1t.page.TypeScript
services/pagesServes every app deployed on g1t.page, and custom domains.TypeScript
services/modelsThe model proxy at models.g1t.sh.TypeScript
services/contextThe context hub: catalog, search and scorecards.TypeScript
services/chatChannels, direct messages, threads and their live sockets.TypeScript
services/agentsThe workspace's agents: definitions, templates, desks, memory and runs.TypeScript
services/artifactsArtifacts: docs and the other kinds to come, their spaces, sharing and live editing.TypeScript
services/notifyNotifications: each person's feed, live counts and browser push.TypeScript
services/packagesThe package registries and container images.Rust
services/ogSocial cards at og.g1t.sh: a PNG per page, showing only what anyone may see.TypeScript
apps/statusThe status page at status.g1t.sh.TypeScript
apps/sudog1t's own staff console.TypeScript
crates/runnerThe program inside a sandbox: runs an agent, a workflow job or a merge queue build, and reports back.Rust
crates/contractsTypes and service interfaces for the Rust services.Rust
crates/kitPlumbing shared by Rust services on Workers.Rust
crates/g1tThe g1t command line.Rust
crates/rulesThe rules engine for rulesets on branches and tags.Rust
crates/blobstoreObject storage: R2 on Cloudflare, any S3-compatible store self-hosted.Rust
crates/actionsReads workflows and evaluates their expressions.Rust
crates/scanSecret and lockfile scanning, shared by services.Rust
crates/secretsSecrets at rest and signatures.Rust
crates/sshdGit over SSH, bridged to Cloudflare Artifacts. Not deployed yet.Rust
packages/contractsThe same interfaces for TypeScript callers.TypeScript
packages/themeDesign tokens and the logo, shared by the site and the docs.CSS
deploystack.jsonc, every deployable part and its resources; self-host, the Docker Compose version.JSON, Docker Compose

Each service is its own Worker, and each one that keeps data has its own database. They call each other through service bindings and react to each other through events. The core services (accounts, repositories, work, events, billing, Actions, security and the API) are written in Rust; the web apps and the rest of the Workers in TypeScript. The Language column says which, part by part.

Run your own

On your own machine

The core forge runs in Docker, with no Cloudflare account:

docker compose -f deploy/self-host/docker-compose.yml up --build
sh

Then open http://localhost:8787 and sign up. The confirmation mail is in Mailpit at http://localhost:8025. Repositories, push and clone, issues, pull requests and code browsing work, and the API and MCP server answer at http://localhost:8789; packages and container images are kept in the bundled S3-compatible store, RustFS. Agents, deployments and context search are off in this version. Run g1t yourself says what works, and how a self-hosted g1t runs what runs inside it.

On Cloudflare

You need a Cloudflare account on the Workers Paid plan (Cloudflare Artifacts, where repositories are stored, requires it), Node 24 (.nvmrc, and engines in package.json), 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 resources each part needs: D1 databases, queues, KV namespaces, R2 buckets and the Cloudflare Artifacts namespace (npx wrangler d1 create <name>, npx wrangler queues create <name>, and so on), and set each part's secrets. deploy/stack.jsonc lists them all.
  2. Put your own account_id, database ids and hostnames in each wrangler.jsonc.
  3. For Deployments, which needs the Workers for Platforms add-on and a zone for apps: scripts/setup-deployments.sh.

Deploy everything, migrations first, in dependency order:

scripts/deploy.sh
sh

Or only what changed, still in order: scripts/deploy.sh billing web. Both use your wrangler login, not a token in .env.

Create the first account by registering on your site, or with node services/identity/scripts/create-user.mjs <username>. Deploy g1t to Cloudflare covers the deploy tool, the workflow and first-time setup in full.

License

MIT