Record a website task
writ_record_websiteRecords a repeatable website task as a workflow that replays on demand. For recording, capturing, teaching, automating or repeating actions on a site when the point is the task, not an API surface. Writ opens a real cloud browser, returns an observation and runs no model there; the caller is the brain: writ_browser_act drives the browser, writ_browser_compose authors what the recorder cannot see (inputs a caller passes, explicit steps, named functions), and writ_browser_save saves the finished task. The saved workflow replays at zero AI cost (writ_run_workflow, or its own run_ tool once pinned with writ_pin_workflow_tool) and can be scheduled. A goal that asks for an API ("turn into an API", "an endpoint for") is routed automatically to writ_website_to_api's intelligent ladder (the fast path, then Writ's AI browser rung), so the recording is a real build. That build first proposes the user's own matching workflows (existing_workflows) and ready-made marketplace APIs (marketplace_candidates); skip_existing / skip_marketplace bypass those.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL to start on (required). | |
| goal | Yes | What should be recorded on the website, in plain language | |
| device | No | A linked Writ desktop's agent_id (writ_devices) to act on. Omitted: the desktop this connection chose with writ_devices action='use', if any. | |
| auth_mode | No | Browser recordings only: reuse verifies unknown saved auth before adoption; fresh_login records a new login without restoring old cookies, headers or storage. Device identity stays the same. | |
| fresh_exit | No | Residential only: skip the persona's usual exit for this site and draw a new address — after the site refused it (an IP rate limit, a sign-in rejected with correct credentials). Ignored on server-IP egress. | |
| persona_id | No | Saved identity to sign in with (list them with writ_personas). Required for sites behind a login with 2FA — the one-time code is then minted server-side and never shown to the caller. A desktop persona ('device:…') records on its own desktop, which fills its values itself. | |
| human_layer | No | Browser recordings only: native keyboard input, distance-adaptive mouse paths and pre-click dwell. Fresh login enables it by default; false explicitly disables it. Native actionability checks remain active. | |
| skip_existing | No | API builds first propose the user's OWN matching workflows (replaying is instant and free); set true after the user declined those. | |
| use_residential | No | Open on the platform residential network (premium) for a site that blocks datacenter IPs or shows a bot wall. Default off (free datacenter egress). | |
| skip_marketplace | No | API builds then propose compatible ready-made marketplace APIs; set true to skip that and record fresh. | |
| residential_country | No | Two-letter ISO country the residential exit should be in (e.g. 'us', 'fr') — for a site that serves a different page per country, or throttles foreign traffic. Omit for an automatic exit. Ignored unless the session egresses residential. |