Skip to main content
Glama

Solvers × CreateOS: AI specialists that prove every step by running it

Built for the CreateOS × Stripe "Build Agents That Run Code" hackathon (Oct 17, 2026).

Ask an AI to build something and you get code that looks right. Whether it installs, whether the tests pass, whether the server even starts is left to you. CreateOS Builder is a specialist agent that closes that gap: it writes the code, runs it in a CreateOS Sandbox, reads the real errors, fixes them, and is not allowed to move to the next step of its method until the step's checklist is proven by execution (exit codes, test runs, a health check). It ends with a live preview URL of the running app.

It is sold through Solvers, a marketplace of AI specialists, with Stripe Checkout, and used inside the AI the customer already has (Claude, ChatGPT) through our MCP connector. The stack was provisioned with Stripe Projects.

Live (on CreateOS): web https://production-solvers-web.tyzo.nodeops.app · MCP connector https://production-solvers-api.tyzo.nodeops.app/mcp · demo video https://vimeo.com/1236904942


What happens in a session

You (in Claude)  ──  "Build me a waitlist API that takes a paid reservation"
   │
   ▼  MCP (OAuth 2.1 + PKCE)
Solvers API ── activate_solver(createos) ── license? (bought with Stripe Checkout) ── yes
   │
   ├─ Step 1  Spec & stack ........ sandbox_run node -v / python3 --version      gate ✓ proven
   ├─ Step 2  Scaffold ............ npm install in /workspace/app                gate ✓ proven
   ├─ Step 3  Code & tests ........ npm test  ✗ exit 1  → the step does NOT advance
   │                                sandbox_checkpoint → fix → (bad fix? sandbox_restore) → npm test ✓
   ├─ Step 4  Stripe payments ..... webhook signature tests                      gate ✓ proven
   └─ Step 5  Preview & deploy .... npm start (background) → sandbox_preview      gate ✓ proven
                                    https://<sandbox>-3000.app.sb.createos.sh  (live URL)

Each step's gate is declared in the Solver package (agents/createos/manifest.json, steps[].verify). When the model calls next_step, the server itself runs those checks in the session's sandbox; a failing check blocks the step and hands stdout/stderr back to the model, a passing one is shown as proof (command, exit code, milliseconds). The model cannot talk its way past a red test.

A real run, captured by pnpm --filter @solvers/server cli:demo-mcp (an MCP client that plays the model's part):

━━ Step 3 · Code and tests: the gate blocks, then passes
→ sandbox_run npm test   ✗ exit 1   │ ✖ GET /health answers 200 { ok: true }
→ next_step   ✗ Step 3 is not done yet: its gate checks failed in the sandbox, so the session did not advance.
→ sandbox_checkpoint   ✓ checkpoint 6426d6f1-…
  attempt 1 (a typo slips in)   ✗ SyntaxError: missing ) after argument list
→ sandbox_restore   ✓ restored
  attempt 2 (the real fix)      ✓ pass 1 · fail 0
→ next_step   Step 3 gate proven: Test suite passes (exit 0, 320 ms)
━━ Step 5 · Live preview
→ sandbox_run npm start [background]   ✓ started
→ sandbox_preview port=3000   ✓ https://01m55sq1b9jgpb6veyvm385se0-3000.app.sb.createos.sh   → 200 {"ok":true}

Related MCP server: agent-sandbox

How we used the sponsor tools

CreateOS Sandbox (apps/server/src/sandbox/, apps/server/src/mcp/sandbox-tools.ts)

Feature

How Solvers uses it

devbox:1 sandboxes

One sandbox per (user, Solver session), created on first use (~0.4 s), reused across steps.

Run code

sandbox_run MCP tool: upload files, run a command, get stdout/stderr/exit code (truncated safely for the model), hard timeouts.

Background processes

sandbox_run { background: true } starts the app server and returns at once (process API).

Egress control

Sandboxes are created with an allowlist (npm, PyPI, GitHub); everything else is denied. The user's keys never enter the sandbox.

Live URL

Ingress on at creation; sandbox_preview waits for the port and returns the public HTTPS preview URL.

Pause / resume

auto_pause_after_seconds: 300; a paused sandbox is resumed transparently on the next call.

Fork

sandbox_checkpoint pauses and forks the sandbox before a risky fix; sandbox_restore forks the checkpoint back. On the free plan (1 concurrent sandbox) the fork is refused, and the checkpoint falls back to a /workspace snapshot.

Verified gates

runStepVerify (sandbox/verify.ts) runs a step's checks before the session may advance; every run is logged in sandbox_runs.

Verifier

Creator-submitted packages with test suites are verified in an ephemeral sandbox (verifier/sandbox.ts).

Hosting

API and web deployed on CreateOS (see Live above).

Stripe

  • Stripe Projects provisioned the stack from the CLI: stripe projects init, stripe projects add createos/free, createos/project (the CreateOS account and project used for hosting), neon/free + neon/postgres (the database). Credentials land in .env via stripe projects env --pull (never committed; .projects/state.json is).

  • Stripe Checkout (hosted, test mode) sells each Solver (apps/server/src/payments/). The plan came from Stripe's own integration planner (MCP stripe_implementation_planner): hosted Checkout + checkout.session.completed.

  • Webhook: signature-verified, idempotent (stripe_events dedupe), and a paid session fulfils the ledger row and grants the license in one transaction (licenses.stripe_checkout_session_id is unique). Resending the same event never creates a second license. A reconciliation job re-checks sessions still pending after an hour.

  • The ledger records the platform fee split (10%) in cents; payouts to creators with Stripe Connect are the next step.

What was built during the hackathon vs. what existed

Being explicit, because the rules ask for new work:

  • Existed before (imported in the first commit, d3cc272): the Solvers platform: catalog, Solver package format and runtime (method steps, gates, knowledge search, templates, memory, trials), MCP server and OAuth, creator submissions and review, the web storefront. It is the distribution layer.

  • Built today (every later commit):

    • CreateOS Builder (agents/createos/): the new agent: method, gates with verify, knowledge base on CreateOS and Stripe, Express + Stripe template, evals.

    • CreateOS Sandbox runtime: session sandboxes, sandbox_run / sandbox_preview / sandbox_checkpoint / sandbox_restore, verify gates in the engine, the verifier on CreateOS, idle cleanup.

    • Stripe: Checkout, webhook, ledger in cents, Stripe Projects setup, deploy on CreateOS.

    • Migration off the old stack: the platform previously ran on a blockchain (wallet identity, on-chain licenses, stablecoin payments). All of it was removed: email identity (magic link), licenses in Postgres, Stripe payments. pnpm check:crypto enforces it.

Run it locally

Requirements: Node 22+, pnpm 10, the Stripe CLI with the Projects plugin, a CreateOS account.

pnpm install
stripe projects init
stripe projects add createos/free && stripe projects add createos/project
stripe projects add neon/free && stripe projects add neon/postgres
stripe projects env --pull                       # writes .env (Neon, CreateOS)
# add to .env: STRIPE_SECRET_KEY / STRIPE_PUBLISHABLE_KEY (test mode), CREATEOS_SANDBOX_API_KEY,
#              CREATEOS_SANDBOX_BASE_URL=https://api-eu.sb.createos.sh
# apps/server/.env: JWT_SECRET, MEMORY_KEK (32 bytes base64), DEV_LOGIN=1, SANDBOX_MODE=createos,
#                   STRIPE_WEBHOOK_SECRET (from `stripe listen --print-secret`)
pnpm --filter @solvers/server db:migrate
pnpm --filter @solvers/server cli:publish        # loads every Solver in agents/ into the catalog
pnpm --filter @solvers/server dev                # API on :3038
pnpm --filter @solvers/web dev                   # web on :3041
stripe listen --forward-to localhost:3038/api/stripe/webhook

Then sign in at http://localhost:3041/login (with DEV_LOGIN=1 the link is shown on screen), buy CreateOS Builder with the test card 4242 4242 4242 4242, and add http://localhost:3038/mcp (or the public URL) as a connector in Claude. Or run the scripted session: pnpm --filter @solvers/server cli:demo-mcp -- --api http://localhost:3038.

Checks: pnpm -r typecheck, pnpm -r test, pnpm check:crypto.

Tech

TypeScript monorepo (pnpm + turbo) · API Express 5, MCP SDK (Streamable HTTP), OAuth 2.1 + PKCE, Drizzle ORM, Postgres + pgvector on Neon, local multilingual embeddings · Web Next.js 16, React 19, next-intl (en/pt) · Sandbox @nodeops-createos/sandbox · Payments stripe (Checkout, webhooks) · Stripe Projects · CreateOS.

apps/server     API, MCP server, runtime, sandbox, payments
apps/web        storefront, login, checkout, library, connector consent
packages/shared types and rules shared by API and web
packages/api-client
agents/         Solver packages (createos = CreateOS Builder)
tools/          check:crypto gate

Team

Raphael (<discord handle>).

License

FSL-1.1-ALv2 (see LICENSE).

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables non-coders to build software by describing ideas in natural language, orchestrating AI agents and CLI workers via chat without needing a terminal.
    30
    6 npm
    4
    Apache 2.0
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI coding agents to run Kubernetes inspection and Terraform plan/apply operations inside ephemeral gVisor-sandboxed jobs with short-lived, narrowly-scoped credentials, while routing destructive changes through a human approval gate.
    3
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables building and shipping real apps directly from Claude or ChatGPT by scaffolding projects, editing code, running live previews with public share URLs, storing data, sending email and push notifications, deploying to hosting, and exporting finished repos.
    22
    MIT