Your whole CI/CD, on autopilot
See how a single team ships 1,000+ jobs a day.
Scroll to playConnect GitHub and pick your repos
One click installs the Latchkey app. Choose the repositories it should run and you're live: no runners to register, no tokens to paste, no credit card.
A new acme workspace opens on the Get started card. Once Connect GitHub has installed the Latchkey app, the Select repositories dialog ticks acme/api and acme/web, Enable monitoring on 2 repositories is pressed, and a toast confirms monitoring is enabled on 2 repositories.
Commit a folder, get a pipeline
Drop a few files in .latchkey/workflows and push. Every push fans out across fresh runners: lint, sharded tests, Postgres and Redis, three browsers, all at once.
The acme-api repository gains a .latchkey/workflows folder with three files, written line by line. ci.yml runs Lint on small, four Unit shards on large and Integration against Postgres and Redis on medium, then Build once they pass. e2e.yml runs the end-to-end tests in Chromium, Firefox and WebKit on large. bench.yml benchmarks pull requests on xlarge. Then git commits the three files as ci: run CI on Latchkey and pushes them to main.
Agents test before they push
One command ships your agent's working tree to a fresh runner. It gets a job id back in seconds and keeps coding while CI does the heavy lifting.
In a terminal in ~/acme-api, latchkey run --detach 'npm ci && npm test' packs 412 files, creates a job, prints its dashboard link, uploads the context and submits it. The job id comes back on its own line and the prompt returns at once while the job is queued.
Mission control for every run
Pushes and agents on one live board: what's running, what it costs by the hour, and every run you've had, one click from its details.
The Runs page. Running now, marked Live, fills with the push's jobs, Lint, four Unit shards and Integration from CI and three E2E browsers, and the agent's CLI job; each waits for a runner, then runs, and Lint finishes and leaves. The line above counts the runners in use, up to 10 of 80, and the spend, up to $4.80 an hour. Below, History lists the day's runs, and the selected CI run, passed and healed, is open beside it with its facts.
Your agent fixes what breaks
When self-heal cannot fix a failure, latchkey watch hands it to your coding agent, which reads the failure bundle from Latchkey's MCP server. The agent patches the code and proves the fix on a fresh runner.
In ~/acme-api, latchkey watch starts watching for new failures to hand to claude. A failure arrives on acme/api in CI: a test_failure in src/auth/refresh.ts, token expiry compared in seconds against a millisecond clock, with a link to its run, and watch hands it to claude. The agent reads the failure bundle from the Latchkey MCP server, fixes expires_at to milliseconds and runs latchkey run 'npx vitest run src/auth' on a fresh runner: 5 test files and 63 tests pass and the job succeeds with exit 0.
Savings you approve in one click
Latchkey measures the jobs it runs and finds the ones on a bigger runner than they need. Approve, and it opens the pull request that moves acme's end-to-end tests to a runner at half the price: an estimated $271.62 a month.
The AI Insight page: 40 failures healed on the runner in the last 30 days, and $331.98 a month of identified savings ready to apply under Cost insights. The first finding moves e2e in acme/api E2E from large to medium: every run of the job in the last 30 days fit within medium, peaking at 2.9 vCPU and 9.4 GB, and a medium minute costs half a large one, an estimated $271.62 a month. Preview shows the change to .latchkey/workflows/e2e.yml, runs-on: large becoming runs-on: medium. Approve opens pull request #212, a toast confirms it, and the card leaves for Applied recently, while the finding that moves integration in acme/api CI from medium to small, $60.36 a month, stays ready to apply.
“Our CI spend dropped to a fraction of what we’d budgeted, setup took minutes, not days, and nobody on the team has to be ‘the CI person.’ We ship faster and spend our time on Busbar instead of the plumbing around it.”
Give your agents the CI they deserve
They've waited on queues, flaky runners and hand-written YAML long enough. Latchkey runs, heals and reports every job so they can get back to shipping.