Your app, its database and its hosting

Describe an app.
Get it built and running.

Myso's agent writes your application, provisions it a real database, pushes the code to your own repository and puts it online. You watch it work, and approve anything risky.

Building uses credits. Every price is on one page — no per-seat surprises.

How it works

Three things happen when you ask

  1. 01

    Describe it

    Say what you want in plain language. The agent plans the work and shows you every file it touches.

  2. 02

    It gets a real backend

    Each project is provisioned its own isolated Postgres, auth and storage — not a shared sandbox.

  3. 03

    It goes live

    Myso pushes the code to a repository you own and deploys it. Your app has a URL, not a download.

What you actually get

Not a chat window that hands you a zip file

A workspace, a running app, and the code in a repository with your name on it.

An agent that executes — and asks first

It writes files, runs commands and fixes what it broke. Reading is automatic; anything that changes your code or your infrastructure stops and waits for you.

read_filesrc/app/page.tsxRuns
write_filesrc/app/invoices/page.tsxAsks unless trusted
run_commandnpm run buildAsks unless trusted
git_pushorigin mainAlways asks

Your code, your repository

Connect GitHub once. Myso creates the repo and pushes to it — you keep the code whatever happens to us.

Isolated by default

Every project gets its own database and its own signing secret. One project's keys cannot read another's data.

Wherever you work

A web workspace, a CLI and a VS Code extension — all talking to the same agent and the same project.

  • Web workspace
  • CLI
  • VS Code

For developers

The same agent, from your own code

Myso speaks the OpenAI wire format, so any OpenAI SDK works for chat. Agent runs — with tool execution and the approval gate — go through @myso/sdk, the CLI, or the VS Code extension.

  • Scoped API keys with per-key rate limits
  • Streaming events for every tool call
  • Billed per turn, not per round-trip
agent.ts
import { Myso } from "@myso/sdk";

const myso = new Myso({ apiKey: process.env.MYSO_KEY });

const run = await myso.agent.run({
  message: "Add Stripe checkout to the pricing page",
  tools: "all",
  onEvent: (e) => e.type === "tool_end" && console.log("✓", e.name),
});

// Risky steps pause the turn until you decide.
if (run.pending_approval) {
  await myso.agent.continue({ turn_id: run.turn_id, action: "approve" });
}

Start with one sentence

Tell Myso what you want built. You'll see every file it writes and approve anything that changes your infrastructure.

Start building