Coding agents that keep working while you’re away.

Cloud sandboxes for the harnesses you already use.

Runs the harnesses you already pay for

  • Codex
  • Claude Code
  • OpenCode
  • Pi
  • Gemini CLI

Statefold gives every agent its own sandbox, real git access and a thread that wakes itself up. It remembers your project, so the work keeps moving from first prompt to merged pull request.

Know what actually happened

Status comes from what’s running and linked, not the agent’s word. A thread is Done when its pull request merges.

Derived status

  • Working
  • Needs you
  • Ready to review
  • Done on merge
  • Failed
  • Limited until reset
  • Migrate billing webhooksNeeds you · which Stripe account?
    Claude
  • Fix token refresh raceReady to review · unmerged
    #482 ✓
  • Add CSV export to reportsReady to review · unmerged
    #479 ✓
  • Upgrade to React 19Working · 12m
    Codex
  • Nightly test runLimited · resumes at 14:00
    Claude
  • Bump wrangler to 4.xDone · merged
    #475
Subscriptions2 active
  1. YouPush this, watch CI, fix it if it fails, and email me when it’s green.
    09:02
  2. Subscribed to checksHead a41f9c2 on fix/refresh-race
    09:14
  3. Checks failed · thread wokeauth.spec.ts › rejects expired token
    09:21
  4. Pushed 7e02b1dLock the session before rotating; added a concurrency test
    09:26
  5. Checks passedSubscription completed · one email sent
    09:33
  6. Every weekday at 9Run the tests and tell me only if something broke
    next 09:00

Say it once. The thread keeps watch.

“Watch CI and email me when it’s green.” When a check, review or schedule fires, the same thread wakes with its full history.

Wakes on

  • CI checks
  • Review comments
  • Pull request events
  • Schedules

Combine harnesses without building a pipeline

A Codex thread can ask Claude Code to plan and OpenCode to review, then carry on with their results. Each child keeps its own sandbox and history.

Delegation

  • Child threads on any harness
  • Waits for results
  • Fork from any turn
  • @ a thread as context
CodeximplementerReady to review

Implemented the plan, pushed fix/refresh-race and opened #482.

  1. Claude Codeplanner4m 12s

    Lock the session in the store, reject expired tokens before rotating, add a concurrent-refresh test.

    Done · reported to parent
  2. OpenCodereviewer2m 51s

    One finding: the lock timeout is hard-coded.

    Done · reported to parent

Codex fixed the review finding in 7e02b1d and shipped.

Memory · api3 recalled for this thread
  • Project
    Session refresh goes through store.lock(). Never rotate a token without it.From Fix token refresh race · Codex
  • Feedback
    Keep pull requests under 400 lines. Ship migrations on their own.From Migrate billing webhooks · Claude Code
  • Project
    Use pnpm, not npm. CI runs on Node 22.From Upgrade to React 19 · Codex
  • User
    Prefers Vitest for new tests. Private to you.From Add CSV export to reports · OpenCode
  • Reference
    Staging uses the test Stripe account; production needs a second reviewer.From Migrate billing webhooks · Claude Code

Your project, remembered.

After each turn, threads keep what’s worth keeping: conventions, decisions and your feedback. The next thread recalls it, whichever harness it runs.

Memory is opt-in per project. Inspect, edit or forget any note.

Memory

  • Opt-in per project
  • Works on any harness
  • Private preferences
  • Edit or forget notes

Real git. Real pull requests.

Agents run git and gh as you, with short-lived tokens. Review comments wake the thread; you merge when checks pass.

Shipping

  • git and gh as you
  • Short-lived tokens
  • Project shipping prompt
  • Merge from the thread
#482Fix token refresh raceChecks passed
  • ✓typecheck38s
  • ✓test / unit1m 52s
  • ✓test / e2e4m 09s
  • ✓preview deploy1m 14s
maya commented on refresh.ts

Can we keep the lock timeout configurable?

Thread woke · addressing review
fix/refresh-race → mainMerge

Full access in the sandbox. Your keys stay out.

No approval prompts, because every thread is isolated. Your subscriptions and keys stay outside the container and are swapped in on the way out.

  1. Inside the sandboxOPENAI_API_KEY=sf_ph_8f2…

    The agent and its tools only ever see a placeholder.

  2. At egressSwapped for your key

    Only for hosts you approved, as the request leaves the container.

  3. api.openai.comReceives the real credential

    Usage is metered against your connection, never shared.

Isolated by design.Private by default.

Read the FAQ
  • Isolated per thread

    Own container, asleep when idle

  • Your accounts, metered

    Health and quota per connection

  • Short-lived GitHub tokens

    Minted per request, scoped to your repos

Start in your terminal. Review from your phone.

Hand off your checkout, uncommitted work included. Then hear from Statefold twice at most: when a thread goes idle, and when it needs you.

statefold “finish the export endpoint”

Hand-off

  • Uncommitted work included
  • Local branch untouched
  • Idle notification
  • Needs-you notification
Needs you

Migrate billing webhooks · Which Stripe account?

Ready to review

Fix token refresh race: #482 checks passed. Tap to review and merge.

Questions

No. Statefold runs the native harnesses you choose (Codex, Claude Code, OpenCode, Pi and Gemini CLI) and gives them a sandbox, git access and a thread that persists. The agent is still the agent you know.

Your next task, shipped while you’re away

Private alpha. Bring your own subscriptions and keys.