flow ▸ steps compiled 0

Any site becomes an API.

Record a task once, or describe the goal. Writ publishes it as a versioned REST endpoint and an MCP tool at /v1/{slug}/{path}, running on your own accounts.

Writ runs on your own accounts, with your own credentials and data, on sites you are authorized to use.
Steps5 steps · self-healing targets
1Navigateopen example.com/search
2Fillsearch box ← {{query}}
3ClickSearch button
4Extractproduct titles + prices
5End Pointreturn results

Published as /v1/{slug}/extract

bld ▸ four ways to build 4
01
pick a door

Record it, or describe it

From a no-code recording to a code-driven pipeline. Pick the way that fits the task; every one ends as the same callable endpoint.

Need list, detail, and pagination? Compose an extract step that walks a list, opens each detail page, and follows pagination into structured records.See web data extraction.

Run 1
opens a browser
signs in · 2FA
banks the session
model calls 3
Run 200
reuses the session
no browser
plain HTTP
model calls 0
⚒ When the site changes
  1. a step fails: no valid selector
  2. the failing step + the live DOM go out
  3. the candidate is validated against the live page — or rejected
  4. the run completes

Auto-repair is opt-in, off by default, and a cloud capability — turning it on pins that workflow to the cloud.

Interactive demo

Watch Writ record a workflow — then take over.

Sign-in, 2FA, extraction, download — on a demo portal. Click anywhere in the page to take over.

End of the demo

You just made a site callable. Now do it with yours.

  • 9 actions recorded
  • 4 steps after optimization
  • 1 callable endpoint

This demo’s workflow is not saved: it lives in this page. No credit card.

wrı
Configure Untitled workflow Click to finish recording →

New workflow

Set up what gets recorded

Run typeEdit
One-off Live session

Run it, get a result, then stop. Ideal for an extraction, a form submission or a data pull — which is what most workflows need.

Entry URL

The page where recording will start.

Run on
AutoBest available agent
Or pin a specific agent…

Choose where the browser runs. Local agents use your own machine’s browser and network.

cap ▸ what it captures 8
02
the full step

It records the intent, not just the click

The recorder recognizes real-world UI patterns and writes resilient steps, so replays survive the site, not just the demo.

Stable element targetingThe recorder picks robust selectors as you click, so a replay finds the same element even after small layout changes, and self-heals common drift.
Auto-detected interactionsDate pickers, autocompletes, custom dropdowns, scroll-into-view, and multi-tab flows are recognized and recorded as the right step, not raw clicks.
Two-factor, recorded onceRecord a sign-in with authenticator or mailbox-OTP on your own account; Writ converts the code-fill into a proper twofa step automatically.
Network-aware optimizeWrit sees the underlying network calls and can suggest a faster, more reliable path, with a preview you Apply or Discard, never a silent rewrite.
Inline AI assistAsk the AI to add a step, fix a brittle one, or extract data. It works from your recorded steps and the page context.
Click-to-convert API captureSpot a request that returns the data you need and convert it into an API Call step. Skip the UI entirely where a clean call exists.
cop ▸ ai copilot 12
03
built into the recorder

A copilot that turns a rough recording into a clean endpoint

While you record, an AI copilot reads your recorded steps and page context. Ask it to add or fix a step, write an extraction from a description, replay the underlying API, or split a recording into reusable functions. Every change lands as a preview you Apply or Discard.

AI Optimize, network-awareTurn a slow click-by-click recording into a faster, sturdier one. Where a clean call exists, the copilot replays the underlying API instead of re-driving the UI.
Chat copilot in the recorderAsk it to add, modify, or explain a step, with full context of your recorded steps and page context. It reasons about your actual recording, not a generic snippet.
Extraction from a descriptionDescribe the data you want in plain language; the copilot writes the Extract step that reads it from the page, ready to run and edit.
Robust selectors + reusable functionsIt finds element targets that survive small UI changes and detects repeated segments, so you can split a recording into callable functions you reuse across workflows.
Advanced & streaming scriptsFor the parts that need real code, the copilot drafts a raw Script Block (or a handler for a warm streaming session), so you drop into scripting without a blank file.
Preview, then Apply or DiscardEvery AI change lands as a preview. The copilot suggests; you stay in control of what the workflow actually does.

A paid AI feature, priced by what it uses. The in-recorder copilot, AI Optimize, and AI-generated steps are available onStarter and up, billed by AI tokens used on managed cloud, and rate-limited. Bring your own keys on a local agent and that AI is unbilled by Writ.

pal ▸ 30+ step types 16
04
the step palette

Building blocks for the real, messy web

Grouped the same way as the in-app step palette: composable steps that handle logins, forms, tabs, and code on any site.

Navigation
Move through the site.
  • Navigate (go to a URL)
Interaction
Drive the page.
  • Click
  • Hover
  • Press Key
  • Scroll
  • Scroll to View
Input
Fill forms and fields.
  • Fill
  • Type
  • Select
  • Check
  • Uncheck
Control
Flow, waits, and assertions.
  • Wait
  • Wait for Change
  • Screenshot
  • Assert
  • Verify
  • End Point
Data
Read and compute.
  • Extract (read data from an element)
  • Evaluate JS (run JavaScript on the page)
  • API Call (make an HTTP request)
AI
Judgment where it's needed.
  • AI Fill (fill a form from instructions)
  • AI Continue (perform a task autonomously)
  • AI Navigate (navigate toward a goal)
Tabs
Multi-tab flows.
  • Tab Opened by Site
  • Open New Tab
  • Tab Closed
Advanced
Drop down to code.
  • Script Block (raw Playwright script)

Plus twofa for authenticator (TOTP) and mailbox-OTP sign-in on your own accounts.All step types in the docs.

rel ▸ survives the site 20
05
durability

Survives the site, not just the demo

Writ pairs recorded recipes with AI navigation, so a workflow keeps working through UI updates, without hallucinating actions.

vs brittle selector scriptsRecorded recipes capture stable element targets and self-heal common drift; AI Navigate steps recover when the page changes. No constant maintenance.
vs one-off RPABuilt to be called repeatedly and parameterized, not run once. Each workflow is a durable, versioned endpoint.
vs prompt-only agentsRecipes give deterministic structure; AI handles only what needs judgment. It works through login and two-factor on your own accounts.
heal ▸ self-healing 24
06
ai auto-repair

When the site changes, the AI repairs the step and the run continues

Turn on AI auto-repair per workflow. If a layout change breaks a step mid-run, Writ re-derives that step against the new page and keeps going, instead of failing the run. Every repair is recorded.

Opt-in per workflowTurn on ai_repair_enabled in a workflow's Settings. It stays off until you choose it; nothing repairs itself behind your back.
The run continuesWhen a step breaks, the AI re-derives it against the new layout and the run keeps going. No crashed run, no 3am page-out.
Simple or complex repairsSimple repairs re-resolve a moved selector; complex repairs reason over the page to rebuild a broken interaction. Each is recorded with its type.
A full repair historyEvery fix is logged (repair_count, last_repaired_at, and the before/after), so you can see exactly what the AI changed and when.
app.usewrit.app/settings
AI auto-repair ai_repair_enabled Repair broken steps automatically and continue the run.
on
Repair historyrepair_count · 3
"Export report" → button[data-test="export"]Selector moved · "Export report" → button[data-test="export"]2d ago
results panel restructured · interaction re-derivedStep rebuilt · results panel restructured · interaction re-derived5d ago
input#email → input[name="login"]Field renamed · input#email → input[name="login"]1w ago

last_repaired_at · 2 days ago

How a repair happens

  1. A step fails because the site changed: a button moved, a field was renamed, a panel was restructured.
  2. If ai_repair_enabled is on, the AI re-derives that step against the new page, a simple selector fix or a complex rebuild.
  3. The run continues from the repaired step, and the fix is written to the workflow's repair history.

Billed only when it runs. AI auto-repair is cloud-only and billed by AI-token usage, only when a repair actually fires. A healthy run that never breaks costs nothing extra. Seehow AI is billed.

api ▸ rest + mcp 28
07
the callable surface

One workflow, a REST endpoint and an MCP tool

A workflow's functions are its callable units: each becomes a REST operation and an MCP tool. Publish at /v1/{slug}/{path}, then call it from your app, a script, or an AI agent with an API key.

cURL

curl https://api.usewrit.app/v1/my-workflow/extract \
  -H "Authorization: Bearer wt_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "input": { "query": "quarterly report" } }'

MCP config

{
  "mcpServers": {
    "writ": {
      "url": "https://api.usewrit.app/v1/my-workflow/mcp",
      "headers": { "Authorization": "Bearer wt_xxx" }
    }
  }
}
wt_ API keysScoped keys for your own code.
wto_ OAuth tokensDelegated access for apps.
Consumer keysPer-consumer keys for anything you publish.
Webhook HMACSigned callbacks you can verify.
MCP-nativeUse Writ as a tool in Claude, Cursor, any MCP client.

Issue per-consumer keys, verify webhooks with HMAC, and serve from a custom branded domain. See managed endpointsand MCP.

run ▸ local or cloud 32
08
run it your way

Run it on your machine (free) or on the cloud

Run a workflow on your own local agent and it's never billed for compute; you provide the machine, and it can reach intranet, localhost, and VPN-only systems the cloud can't.

Your machineBYO agent · free
  • No compute charge: you provide the hardware
  • Reaches intranet, localhost, and VPN-only systems
  • BYO-AI keys stored locally and unbilled
Managed cloudMetered
  • Always-on managed execution fleet
  • Metered by actual running time (~$0.12 per browser-hour)
  • Paid from your prepaid balance, beyond the included usage

Local and BYO runs are free and unlimited on every plan, never metered and never billed; the cloud is metered by running time.How agents work.

obj ▸ object map 36
09
what a run captures

One page for the whole workflow

Every workflow has Overview, Steps, Data, Runs, Connect, and Settings: edit steps, watch runs, see extracted data, publish endpoints, and share it on the marketplace, all in one place.

OverviewStepsDataRunsConnectSettings

Explore the data explorer, orpublish it to the marketplace.

faq ▸ common questions 44
11
common questions

Workflows FAQ

Do I need an API from the site?
No. Writ works through the browser like a person, so it works on sites with no API at all, including ones behind a login. You get the REST endpoint the site never shipped.
Can AI agents call my workflows?
Yes. Every published workflow is an MCP tool and a REST endpoint, callable by Claude, Cursor, or any MCP client, and from your own code with a wt_ key.
Is it allowed?
Writ runs on your own accounts, with your own credentials and data, on sites you are authorized to use. Use it for public data, your own data, or your own accounts, respecting each site's terms and rate limits.
What happens when the site changes?
Recorded recipes self-heal common drift on every plan. Turn on AI auto-repair (cloud) and a broken step is re-derived mid-run so the run continues instead of failing.
Where do my credentials live?
In an encrypted secrets vault and reusable Personas. BYO-AI keys stay in your local agent and never reach Writ's servers.