No description
  • Shell 89.6%
  • Bicep 3.5%
  • Python 3.2%
  • HCL 2.6%
  • Nix 0.6%
  • Other 0.5%
Find a file
trevato 4d46ecd5c5
All checks were successful
guard-ppt / no-ppt (push) Successful in 22s
reseed / reseed (push) Successful in 2m6s
standby: return aftercare — pod fabric check, catch-up lanes re-run
Six hours after the rehearsal return one agent's pods could not reach pods
on one other node while every node was Ready and every pod Running. The
cron controller had also fired the missed backup schedules before the forge
was up and burned their retries. primary-fabric-check.sh probes every node
pair from inside a pod (--heal restarts an agent once); primary-return.sh
step 6 runs it and re-runs any backup lane whose catch-up job failed.
docs: return aftercare (ci-bot read-only after the org move, AGit pulls vs
branch-cloning workflows, crawler policy).
2026-09-21 11:19:16 -05:00
.claude green 2026-09-21 10:07:04 -05:00
.forgejo/workflows seed-release: jq-free, tag keyed to upstream.json (#263) (#266) 2026-09-02 15:03:45 +00:00
bin sweep the escaped domain spelling; seed-release in-cluster API (#258, #263) (#264) 2026-09-02 08:56:17 +00:00
deploy the platform's own org, and one name for the product (#246) 2026-09-01 18:22:54 +00:00
docs standby: return aftercare — pod fabric check, catch-up lanes re-run 2026-09-21 11:19:16 -05:00
genesis genesis: reseed r897 (automated #14) (#267) 2026-09-02 15:23:30 +00:00
recipe the platform's own org, and one name for the product (#246) 2026-09-01 18:22:54 +00:00
scripts standby: return aftercare — pod fabric check, catch-up lanes re-run 2026-09-21 11:19:16 -05:00
wiki the platform's own org, and one name for the product (#246) 2026-09-01 18:22:54 +00:00
.gitignore upstream propagation: signed release manifest, seed pubkey, germinate bake, P1/P2 gate (#169) 2026-08-20 18:26:59 +00:00
flake.lock genesis 2026-06-10 03:28:24 +00:00
flake.nix the immune system: rehome, the gauntlet, domain validation (#254) 2026-09-02 02:56:01 +00:00
green green 2026-09-21 10:07:04 -05:00
ORIGIN the platform's own org, and one name for the product (#246) 2026-09-01 18:22:54 +00:00
README.md the platform's own org, and one name for the product (#246) 2026-09-01 18:22:54 +00:00

Open Platform — grow your own software platform

Describe the software you want in plain words, and an AI build crew builds it, tests it by clicking through it in a real browser, and puts it live at a web address — on hardware you own. Your ideas go in as sentences; working tools come out as URLs.

This repo is mitosis — the part of Open Platform that hands you the whole thing. Clone it, run one command, and a complete, sovereign platform grows on your machine: your Git server, CI, registry, and build crew, with fresh keys and its own identity. Like buying the CD back in the day: it's yours. And when you're ready, your platform can seed a daughter the same way and hand someone else the same power.

Not technical? Start with the wiki's plain-language track: The Big Idea · A Day With Your Crew · Questions People Ask. Every platform grown from this repo carries its own copy of these pages in its Wiki tab — the wiki ships in the seed (wiki/) and is the full guide, from first app to platform internals.

Grow one

git clone https://git.open-platform.sh/open-platform/mitosis
cd mitosis
CLAUDE_CODE_OAUTH_TOKEN=<your-token> nix run .#up

That's the whole install. Go make coffee — the first run builds the platform from source and takes 30–60 minutes, then prints a YOUR PLATFORM card with your domain, your admin logins (Git and Grafana), and exactly how to reach everything.

You need: Nix with flakes (it brings every other tool along), Docker with ~4 CPUs and 10 GB, host ports 80/443 free (or set HTTP_PORT/HTTPS_PORT), and one Claude credential — CLAUDE_CODE_OAUTH_TOKEN (subscription) or ANTHROPIC_API_KEY (API billing). You can add the credential later; the crew idles until one is set. Linux is the tested path; macOS works on a best-effort basis. Custom domain: DOMAIN=acme.local nix run .#up.

First-run stage Rough time
Create the cluster ~2 min
Bootstrap the Git server ~2 min
GitOps reconcile + Postgres cold start 10–20 min
Build the platform's images (CI) 15–25 min

If a step fails, it tells you which one; the fix is almost always k3d cluster delete plat and re-run — setup is one-shot by design.

⚠ Keep your sovereign key safe — forever. The card points at a generated age key file. It is the only key to every secret on your platform. Back it up somewhere offline you trust.

Use it

The card prints the exact lines, but the shape is: point your machine at the cluster (/etc/hosts), trust the platform's CA, open https://git.<domain>, and click Use this template on open-platform/app-template — the name and description you type are the spec. Within a minute the crew opens the first pull request and builds in the open; a validator browser-tests it; it ships to https://<app>-<org>.<domain> with its own documentation in the repo's Wiki tab, written by the crew as it built.

From there, everything is the wiki's Experience track: Build Your First App · Building with Issues · Orgs and Planning · Connect Your Agent (point Claude Code or any MCP harness at mcp.<domain> and build from your own chair).

Run it

  • Meters and levers: https://grafana.<domain> ships from birth — fleet allocation, spend burn, and the flow-control forms. Steering the Fleet
  • People and access: the platform is born with one root-like admin, plat, and one org it owns, open-platform, that holds everything the platform is made of. People get their own accounts and orgs; plat is for changing the platform itself. Users, Teams and Access
  • When it breaks: a failed setup step → delete the cluster and re-run; agents idle → seal a Claude credential (the card prints how); logs → kubectl -n agents logs deploy/agents.

Reproduce it — mitosis

Your platform can have children: PLAT_PAT=<forgejo-pat> nix run .#seed snapshots it (add PUBLISH=1 to version it into your platform's package registry — then SEED=latest nix run .#up grows a child with no file to carry, integrity-checked against the seed's own integration spec); anyone with a seed and this repo grows their own sovereign platform — fresh keys, fresh secrets, its own identity, lineage recorded. One command puts a platform on AWS, Azure, or DigitalOcean — bare VMs, single or 3-VM HA, one DNS record to finish: deploy/. For any other VPS, a tunnel edge, or adding machines: Grow Your Own Platform and docs/deploy/hetzner-vps.md.

Under the hood

Forgejo is the whole control plane; a gitops repo is the substrate the cluster converges on; the platform's own org (open-platform) holds the gitops, the tool server, the crew, the app template and this repo, and the plat admin is the one identity that can change them; the build crew runs on a non-privileged, isolated CI pool with no escape path to your machine; every claim is enforced by a cold-start gate that germinates a complete platform in CI before any change merges. The honest engineering tour: Architecture · Platform Internals · Security Model · CI and Builds · Reference

Supported by

Open Platform is supported by espodev, who build and run production implementations for teams that want one delivered. The platform itself is yours to run — nothing here requires them.