Open source · AGPL-3.0 · Self-hostable
Turn any website into an API. By showing, not coding.
Record a workflow once in your real, logged-in browser — or ask an AI agent to do it. Stepped compiles it into a deterministic, self-healing automation that is simultaneously a typed REST endpoint, an MCP tool, and a scheduled job.
$ curl -fsSL https://stepped.ai/install | sh ⛰ Stepped — turn any website into an API ✔ Node 23 runtime ready (provisioned automatically) ✔ wrote ~/stepped/.env with generated secrets · starting Stepped… ✔ Stepped is up → http://localhost:7431 next: open the URL, or run stepped onboard $ stepped onboard ✔ admin account created ✔ extension paired — code 481-062 ✔ first recording compiled → POST /api/w/demo-invoice/run
0 LLM calls on the happy path · under 30 s from recording to endpoint · your data stays on your instance
How it works
Record. Replay. API.
Show Stepped the task once. From then on it’s software — deterministic, versioned, callable by anything.
1 · Record
Hit Record in the Chrome extension and do the task once — in your real browser, logins included. Or ask the AI agent to do it while the recorder watches. Steps stream live into the sidepanel with screenshots and click targets.
2 · Replay
Stepped compiles the recording into a workflow: intent-level steps, ranked selectors, verification effects, typed variables. Replays are deterministic — zero LLM calls when the site behaves.
3 · API
The same artifact is instantly a typed REST endpoint, an MCP tool, and a cron schedule. From stop-recording to a working endpoint: under 30 seconds.
The healing ladder
Deterministic first. AI only when the site changes.
An AI agent doing a browser task burns 50–200 LLM calls, every run. Stepped replays with zero — and when a site ships a redesign, it escalates one rung at a time, spending the minimum needed to recover. Every heal becomes a reviewed patch, so the workflow gets stronger with age.
$0 happy path · healed runs p95 < $0.01
- L0
Primary selector
~0 ms · $0The recorded selector hits and the element fingerprint checks out. The normal case.
- L1
Ranked fallbacks
<50 ms · $0Recorded alternates — test id, ARIA, text, CSS, XPath — tried in order, each verified before use.
- L2
Structural matching
<1 s · $0Weighted similarity scoring finds the element even after markup shuffles. Still no AI.
- L3
One-call LLM pick
~$0.002A single structured call: step intent and recorded fingerprint in, one element out.
- L4
Scoped agent
cents · rareAn agent takes over exactly one step. Success is defined by the step’s recorded effects.
- L5
Human gate
your callThe run parks and notifies you. Finish the step live — 2FA, captcha — and replay continues.
Three surfaces, one artifact
Every workflow is an API
No exports, no glue code. The moment you save a recording, it answers as a REST endpoint, shows up as an MCP tool, and can run on a schedule.
Typed REST
Variables become the request body. Outputs — even files — come back.
curl -X POST \
https://app.stepped.ai/api/w/tripo-text-to-3d/run \
-H "Authorization: Bearer $STEPPED_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "prompt": "a low-poly fox" }'
# → { "status": "succeeded",
# "outputs": { "model_file": ".../fox.glb" } } MCP tool
One line and every workflow is a tool in Claude Code, Cursor, or any MCP client.
claude mcp add --transport http stepped \
https://app.stepped.ai/mcp
# new recordings appear automatically
# (listChanged) — plus meta-tools like
# create_workflow_from_goal Schedule
Timezone-aware cron with preset variables, retries, and canary health runs.
POST /api/w/weekly-report/schedule
{
"cron": "0 7 * * 1",
"timezone": "Europe/Berlin",
"variables": { "range": "last-week" }
}
# notified only on heal or failure For AI agents
Built to be found — and called — by machines
Point your agent at Stepped once. Community workflows are published for both humans and machines, and any of them can land in your own instance with one click.
-
Browsable — every community workflow has a public page at
/w/<slug>: a step-by-step guide plus ready-to-copy API docs. -
Discoverable —
/llms.txtand the sitemap index every public workflow, so agents find them without scraping. -
Importable — paste a workflow URL into any self-hosted instance for one-click import. Bundles (
.stepped.json) are secret-free by construction. -
Callable — connect via MCP and every workflow is a typed tool. Agents can even teach new ones:
create_workflow_from_goalrecords while the agent works.
# Stepped — community workflows. # Each is callable: POST /api/w/<slug>/run # or as an MCP tool via /mcp /w/tripo-text-to-3d Tripo AI: text prompt → 3D model download vars: prompt (string) · out: model_file (file) /w/chatgpt-image ChatGPT: prompt → generated image file vars: prompt (string) · out: image (file) /w/google-doc-to-pdf Google Docs: create, fill, export as PDF vars: title, body · out: pdf (file)
Self-host
Your machine. Your data. One command.
No Docker required — the installer provisions a Node 23+ runtime if needed, writes a config with generated secrets, and starts Stepped with its built-in SQLite database. Nothing else to install, no external services to sign up for.
- First-run wizard: admin account, optional AI provider, extension pairing
- Works AI-free — connect Anthropic, OpenAI, or local Ollama only if you want healing L3+
- Multi-user with roles, invites, API tokens, and a full audit log
curl -fsSL https://stepped.ai/install | sh
git clone https://github.com/myfoxit/stepped
cd stepped && docker compose up -d
# hardened compose: loopback-only ports,
# cap_drop ALL, resource ceilings
# → http://localhost:7431 The extension
Record in your real browser
Since Chrome 136, external tools can no longer attach to your default profile — an
extension using chrome.debugger
is the only way to automate the browser you’re actually logged into. Stepped’s recorder
and replayer live there: your sessions, your cookies, your fingerprint — no separate
robot browser to babysit.
FAQ
Questions, answered
Self-host or cloud?
Both. Stepped is built to be self-hosted — one command, your machine, your data. A hosted cloud at app.stepped.ai is coming for teams that don’t want to run anything. The software is identical.
Is it open source?
Yes — the entire stack (server, web app, Chrome extension, CLI) is licensed under AGPL-3.0 and developed in the open on GitHub.
Do my credentials leave my machine?
No. Recordings and sessions stay on your own instance. Passwords are typed secret at capture time — encrypted at rest, masked in logs, and excluded from exports. Shared .stepped.json bundles are structurally secret-free: there is simply no field where a session or credential could travel.
What happens when a site changes?
The healing ladder kicks in — selector fallbacks and structural matching first (free, deterministic), a one-call LLM element pick only if those fail, then a scoped agent, then a human gate. Every heal is recorded as a reviewed patch, so the workflow comes out stronger.
Can AI agents use it?
That’s the point. Connect once via MCP and every workflow becomes a typed tool in Claude Code, Cursor, or any MCP client — new recordings appear automatically. There’s also a plain REST API, and agents can teach new workflows with create_workflow_from_goal.
What does it cost?
Self-hosting is free, forever — AGPL-3.0. Replays cost $0 in LLM spend on the happy path by design. The hosted cloud will be paid when it launches; self-hosters lose nothing.
Show it once. Call it forever.
Two minutes from curl to calling a website as an API.