beta · v0.4.2Closed beta — 142 repos on the loop

An autonomous coding loop that ships merged code while you sleep.

Keelen runs claude code against your repo in an isolated VM — 24 hours a day. Hand it your roadmap once. It picks up tasks, writes the code, runs the tests, opens a pull request, and — when CI is green — merges it. Want a human gate? Turn on plan-review or manual-merge.

Bring your own Claude key Auto-merge or human-in-the-loop No code leaves your isolated VM Pause anytime
keelen — acme/billing-service @ iter#42
live
07:14:02spawn iter#42 · acme/billing-service
07:14:03PM phase: selecting next task from queue
07:14:04$ claude code --dangerously-skip-permissions
07:14:07DEV reading context: 3 files, 847 tokens
07:14:09$ git checkout -b keelen/fix-race-condition
07:14:10✓ branch created
07:14:11editing src/finalize.ts (14 lines changed)
07:14:23$ npm test -- --testPathPattern=finalize
07:14:31✓ 12 tests passed, 0 failed
07:14:32$ git commit -m 'fix: race condition in finalize'
07:14:33verify: re-running the test suite on a clean clone
07:14:38✓ all checks green — opening PR
07:14:39$ gh pr create --title 'fix: race condition'
07:14:40✓ PR #1423 opened
07:14:52✓ CI green · auto-merged to main (manual & review modes available)
[ stack ]Claude CodeGitHub OAuthFly MachinesEgress allow-listYour repo / branches

01 — The loop, productized

Not an agent in a chat window. A process in a sandbox.

PILLAR 1

Runs 24/7

The loop doesn't stop when you do. Keelen keeps iterating on your backlog around the clock inside a dedicated Fly Machine.

PILLAR 2

Isolated VM sandbox

Every iteration runs in an ephemeral, non-root container. Your code never leaves your Fly org; egress is allow-listed at the network layer.

PILLAR 3

Ships merged code — or waits for you

Every iteration opens a PR, gates it on your tests, and — by default — merges the green ones to your branch. Want eyes on it first? Turn on plan-review (PO + dev sign-off) or manual-merge and nothing lands until you say so.

02 — Operator console

You watch the loop run, not the agent think.

The console shows the iteration that's running right now — phase, model, tokens spent, tests passing — plus the trail of everything that came before.

acme/billing-serviceiter#42·claude-sonnet-4 · 7m 21s
running
current task · T-088 · P0 · bug
Fix race in PaymentIntent finalize → webhook
AC 4/6 · started 7m ago · branch keelen/iter-42-T088
plan
38s
edit
2m 14s
verify
running…
commit
pr
logs · timeline.jsonl● live
00:01:04$ pnpm vitest run packages/payments
00:01:18vitest: 1 flaky test passed on retry
00:01:19vitest: 124 passed, 0 failed, 2.4s
00:01:23claude: writing AC checkmarks (4 / 6)
00:01:25claude: drafting PR description
phaseverify
tokens182k / 1M
tests124 / 124
files2 edited
budget$0.84
elapsed7m 21s
next taskT-091 · apple pay
queue12 open

03 — Setup

Four steps. Maybe ten minutes.

01

Connect GitHub

Authorize GitHub and point Keelen at a repo. It works on your branches and opens PRs — it never touches main directly.

● acme/billing-service · main
02

Hand off Claude

Log in once with your own Claude account — API key or OAuth. The loop runs on your tokens, billed to you at cost — no markup, no shared keys.

● claude /login · byo key · ✓ ready
03

Drop in tasks

Write a Request in plain language. Keelen turns it into prioritized roadmap items and dev-ready tasks with acceptance criteria.

● T-088 · P0 · Fix race in finalize → webhook
04

Press play

Start the scheduler and walk away. It picks up tasks, writes the code, runs the tests, and opens pull requests while you sleep.

● ▶ running · iter#42 · 7m 21s

04 — Roadmap-driven

Your roadmap is the prompt.

Drag a task to Next and it runs next iteration. Add an acceptance criterion and Keelen reads it. Lock a lesson and it graduates to a rule for every future run.

  • Drag a task to Next — it runs the next iteration.
  • Lessons stream: Keelen proposes, you lock or dismiss. Locked lessons compound.
  • Blocker detection: three failed iters on the same line and Keelen flags you.
  • Pause and resume at any iteration boundary — the machine suspends within a tick.

Next

2
T-091feature
Add Apple Pay flow to /checkout
P10/7
T-098improvement
Rate-limit /v1/charges to 60/min/account
P10/4

In progress

1
T-088bug
Fix race in PaymentIntent finalize → webhook
P04/6

Blocked

1
T-082chore
Migrate webhook signing to v2
P12/5

Done

42
T-079feature
Surface decline-code mapping
P25/5
T-076improvement
Backport idempotency-key dedupe
P14/4

05 — How it's different

Where copilots stop, Keelen keeps going.

Runs without you watching
IDE copilot no
Cloud agent partial
Keelen yes
Uses your Claude subscription
IDE copilot no
Cloud agent no
Keelen yes
Code stays on your infrastructure
IDE copilot yes
Cloud agent no
Keelen yes
Output is reviewable in GitHub
IDE copilot partial
Cloud agent partial
Keelen yes
Learns across iterations
IDE copilot no
Cloud agent no
Keelen yes

06 — Pricing

Flat tiers. Predictable.

Keelen uses your Claude account, so we don't charge for tokens. We charge for the loop — the scheduler, the VM, the dashboard, the observability. Cancel any time.

Free
Free
Kick the tires.
  • 20 iterations / month
  • 1 project
  • 1 concurrent run
  • 7-day log retention
  • Bring your own Claude key
Start free
Indie
$29/ mo
For solo devs and side projects.
  • 200 iterations / month
  • 3 projects
  • 2 concurrent runs
  • 1 scheduled project
  • 30-day log retention
  • Email support
Start with Indie
most picked
Operator
$79/ mo
Ship while you sleep.
  • 1,000 iterations / month
  • 10 projects
  • 5 concurrent runs
  • 5 scheduled projects · 24/7 loop
  • 90-day log retention
  • Priority support
Go Operator
Agency
$299/ mo
For teams running multiple clients.
  • 5,000 iterations / month
  • 30 projects
  • 15 concurrent runs
  • Unlimited scheduled projects
  • 5 team seats
  • 1-year log retention
  • Dedicated support channel
Go Agency
Enterprise
For orgs with 10+ repos on the loop.Unlimited projects + concurrent machines · SSO (Google, Okta, SAML) · Self-hosted runner option.
Talk to us

Compare all plans →

07 — FAQ

Reasonable doubts.

Things people ask in the first call. Email us if yours isn't here.

Do I need a Claude Max plan?

No. Keelen runs on whatever Claude credentials you connect at setup — a Claude API key or an OAuth login. We don't resell tokens; usage bills to your own Anthropic account at cost. Other engines (GLM and more) are supported too, so you're not locked to one provider.

What does Keelen see of my code?

Nothing on our infrastructure. Your repo is cloned into a Fly Machine that's yours for the project's lifetime — we provision and orchestrate it but never read the volume. The only data flowing back is the iteration log (with redaction filters) and timeline metrics.

How does it avoid blowing up my codebase?

Every iteration branches first, runs your test suite as a gate, and opens a PR. By default Keelen merges that PR once CI is green — but you're never locked into that. Three ways to keep a human in the loop, per project: turn on plan-review and a PO/SM plus a developer sign off on the plan before any code is written; set merge to manual and Keelen opens the PR but leaves the merge button to you; or branch-onlyand it pushes a branch without opening a PR at all. Per-project rules and an "acceptance criteria" budget also have to be satisfied before a task is marked done.

What if it gets stuck?

Each iteration has a 4-hour wall-clock cap. Three failed iterations on the same blocker and Keelen pauses itself and emails you with the parsed reason. You unblock, click Resume, the loop continues.

Can I self-host?

On Enterprise, yes — we ship the runner image and a Terraform module for your own Fly org. The control plane (scheduler + dashboard) stays SaaS but never reads your code.

What languages does it support?

Anything Claude Code handles. We've tested heaviest on TypeScript, Python, Go, and Rust monorepos. The runner image ships with Node 20, Python 3.12, Go 1.22, and Rust stable; you can extend it with a per-project Dockerfile overlay.

What happens when the Claude CLI updates?

We pin the CLI version in the runner image and run a contract test against its /loginprompt nightly. CLI upgrades are explicit releases — you'll see them in the changelog before they roll to your machine.

Closed beta

Let it run overnight.
See what's in your inbox.

Drop your email — we'll set you up with a free run against a sandbox repo, no credit card. If you like it, point it at your own.

no spam · cancel access any time · we read every signup