app.usewrit/writ-cloud

Writ Cloud

Read, crawl and act on websites, signed in as the user, and turn any site into an API.

Endpointhttps://api.usewrit.app/mcp (streamable-http)
Registry version1.0.0
Now41 tools · grade F (45) · pin ts_ae184386f872f56f60832082ec29a94c · protocol 2025-06-18
First / last listed2026-11-08 02:32 UTC / 2026-11-08 02:32 UTC
Grade over time2026-11-08: F (45), 41 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-08 02:32 UTC
41 tools, grade F (45)

Tools: writ_browser_use writ_record_website writ_website_to_api writ_discovery_status writ_browser_act writ_browser_context writ_browser_network writ_browser_compose writ_browser_save writ_browser_ask_user writ_browser_cancel writ_browser_sessions writ_personas writ_payment writ_devices writ_list_workflows writ_run_workflow writ_update_workflow writ_create_http_extraction writ_diagnose_http_workflow writ_pin_workflow_tool writ_workflow_data writ_search_data writ_export_data writ_workflow_runs writ_set_schedule writ_expose_workflow_api writ_crawl_site writ_saved_crawls writ_update_saved_crawl writ_run_saved_crawl writ_saved_crawl_data writ_scrape writ_crawl_status writ_crawl_files writ_create_automation writ_list_webhooks writ_create_monitor writ_wire_monitor writ_help writ_browser_live_view

Current tools (41)

writ_browser_useA REAL CLOUD BROWSER FOR A TASK ON A SITE: the user's signed-in account (a persona_id from writ_personas: the password stays sealed in Writ, and sessions never ask for a password), a click, form, submit or search inside an app, or a page a plain fetch cannot open (login wall, 403, CAPTCHA). Opens the browser and returns the first page; writ_browser_act drives it (Writ runs no model here). Recordin
params: url*, persona_id, goal, use_residential, execution_target, auth_mode, residential_country, fresh_exit
writ_record_websiteRecords a repeatable task on a site as a workflow (goal + start url): the same session as writ_browser_use, labelled with its goal, driven with writ_browser_act and saved with writ_browser_save. A goal that asks for an API opens as a writ_website_to_api build instead: the same browser, bound to the build.
params: goal*, url*, persona_id, use_residential, auth_mode, device, residential_country, fresh_exit, skip_existing, skip_marketplace
writ_website_to_apiTURNS A WEBSITE INTO A CALLABLE API (named functions with inputs, returning JSON), built by the caller in a real browser. url = the page that already shows the rows (search results or a listing, not the home page); goal = the inputs and fields wanted. The call first proposes the user's matching saved workflows and marketplace APIs (skip_existing / skip_marketplace build fresh), then opens a cloud
params: url, goal, save_as, persona_id, build_id, skip_existing, skip_marketplace, device, execution_target, anonymous, use_residential, residential_country
writ_discovery_statusStatus of a website-to-API build (a guided one, or one started in the Writ app). wait=true is one held call (up to 75 s) that follows the build to its newest rung and returns when it is done or parked. Answers: succeeded (workflow_id, functions, run_example), failed, cancelled, or needs_guidance (the build is the caller's to finish with writ_website_to_api build_id=<id>; its map comes with it).
params: build_id*, wait, timeout_seconds
writ_browser_actRuns one batch of actions on an open session and returns the fresh page. Each action is an object, e.g. {"action":"click","selector":"#go"}. DRIVE: navigate, click, fill, type_text, select, check, hover, submit, press_key, scroll, back, wait, wait_for. SEE: query_dom, find_text, read_text, count, get_attributes, inspect, list_candidates, get_dom, get_screenshot. NETWORK: capture_network, get_reque
params: session_id*, actions*, inputs, max_chars
writ_browser_contextRe-reads an open session: section=page (url, fields, buttons, cleaned DOM), lists (the page's repeating rows with a live-tested define_function payload for writ_browser_compose), map (the evidence of the build the session is bound to).
params: session_id*, section, offset, max_chars
writ_browser_networkSearches (operation=search, query, method) or reads in full (operation=detail, index) the backend requests the page made after capture_network: the site's real API. writ_browser_act api_call probes one with other values (a `flow`: several requests); an index feeds writ_browser_compose define_function from_index.
params: session_id*, operation, query, method, index, offset, max_chars
writ_browser_composeAuthors the workflow in an open session beyond a recording: named API functions (define_function with a `flow`, preferred in an API build, or a captured call's index or a lists payload; live-tested as defined; compile_function for an authenticated request), set_inputs, add_steps, test_function, remove_function, remove_step, list. A flow is built in small calls: define_function with its first reque
params: session_id*, operation*, payload
writ_browser_saveSaves the open session as a replayable workflow and closes the browser, in the place its browser ran: the user's desktop library or Writ Cloud. Composed functions become callable API functions, declared inputs become its parameters. The answer carries the steps, the inputs and a run_example; the workflow runs at zero AI cost through writ_run_workflow. A save that references something no run could
params: session_id*, name, description, save_to, allow_no_data, keep_open, contribute_to_catalog
writ_browser_ask_userHands an open session to the Writ user: kind='captcha' (they complete a security check in the live browser), 'twofa' (they supply the one-time code and Writ types it; the code never reaches this conversation), 'sign_in' (they sign in on the live page; no persona applies) or 'question' (their text answer). The call that opens the ask returns at once with user_link + tell_user to relay; later calls
params: session_id*, kind, question, wait_seconds
writ_browser_cancelCloses an open browser session (an open cloud browser bills until it is closed). Unsaved work that did more than visit pages is auto-saved first and the reply names it; discard=true keeps nothing.
params: session_id*, discard
writ_browser_sessionsLists the account's open cloud browser sessions (each resumable by its session_id).
params: limit, include_closed
writ_personasThe user's own accounts on websites (personas): how Writ signs in as them. No password passes through this tool or the conversation, and its answers never ask for one: credentials are typed only into a Writ window. action='list' domain=<site> shows the personas usable there; with none it answers persona_needed: a tell_user for the user, a create_url (a small Writ window with only the sign-in form,
params: action*, domain, link_id, persona_id, why, device, execution_target, wait, include_runs, force, login_url
writ_paymentPays on a site with one of the user's cards; card numbers never reach this conversation. request (site, max_amount, purpose) returns a tell_user and an open_url where the user approves; wait (grant_id or confirmation_id); checkout pauses at the order button for the user's confirmation, then Writ places the order; fill; list (card handles only). Details: writ_help('writ_payment').
params: action*, site, max_amount, purpose, grant_id, confirmation_id, session, commit_selector, currency, fields, total_selector, steps, summary, payment_method_id, automation_id
writ_devicesThe user's linked Writ desktops: list, use (scope this connection to one: runs, browsers, personas and monitors then target it), clear, monitors, datasets.
params: action, device
writ_list_workflowsLists the workflows saved in the Writ account; each runs on demand without live browsing. Returns id, name, declared inputs (with `input_rules`: the values and format an input accepts), schedule, whether it is pinned as its own run_<name> tool, and, for an API with several functions, their names (`functions`, `write_functions`): call one with function_name.
params: search
writ_run_workflowRuns a saved workflow by workflow_id or name and returns its extracted data (it waits by default). The answer's `data` is what the run returned and `records_path` names its records; pass `output` with only the fields the question needs (fields: ['price', 'data.date as date']) for a far smaller answer. Inputs go as top-level fields or under `inputs`; function_name runs one function of a multi-funct
params: workflow_id, workflow, inputs, function_name, persona_id, max_age, mutation_mode, execution_target, function_names, files, output, wait, timeout_seconds, device, use_residential, residential_country
writ_update_workflowInspects or edits a saved workflow: an outline, one function's source, targeted function or step edits, a settings patch. copy_to keeps a linked copy on Writ Cloud or the user's desktop. Every option: writ_help('writ_update_workflow').
params: workflow, workflow_id, patch, step_updates, function_updates, validate_only, copy_to, device, section, operator, limit, function_name, step_id, path, offset, max_chars, expected_updated_at, replace_steps, verbose, regenerate_skill
writ_create_http_extractionDrafts or revises a multi-request browserless HTTP extraction (loops, GraphQL, cursor pagination) from captured requests and a plain-language goal. Every option: writ_help('writ_create_http_extraction').
params: goal*, workflow_id, apply, workflow, step_index, request_samples, response_sample, desired_inputs, requirements
writ_diagnose_http_workflowExplains why a saved workflow's run returned nothing or failed: HTTP-lane readiness and, with task_id, the run's requests and responses.
params: workflow_id, task_id, workflow
writ_pin_workflow_toolPins (or unpins) a saved workflow as its own run_<name> tool on this server.
params: workflow_id, pinned, workflow
writ_workflow_dataReads a saved workflow's collected data as a table: q filters, run_id picks one run, refs returns full records.
params: workflow_id, q, run_id, limit, refs, device, workflow, view, preview_chars, output
writ_search_dataSearches everything the account's workflows already collected for a term, without running anything.
params: q*, workflow_id, limit, device, workflow, preview_chars
writ_export_dataExports a workflow's full data table as CSV or JSON.
params: workflow_id, format, workflow, q, view
writ_workflow_runsRun history (status, timing, errors, venue) of one workflow or all of them.
params: workflow_id, status, limit, device, workflow
writ_set_scheduleSchedules a saved workflow: every_minutes, or kind='daily'/'weekly' with time (HH:MM) and days. functions + inputs schedule chosen functions of a multi-function API.
params: workflow_id, every_minutes, kind, time, days, tz, workflow, enabled, functions, function, inputs
writ_expose_workflow_apiPublishes a saved workflow as a REST endpoint (a POST URL that waits and returns its JSON). Repeated calls reuse it.
params: workflow_id, label, workflow, timeout_seconds, wait_timeout
writ_crawl_siteCOLLECTS a site or a section into a queryable, change-tracked dataset (one row per page). Scope: intent (a section, in plain words), rank_cap=N (the top N items of a listing), seed_urls (known pages), or the whole site capped by page_budget. Modes: markdown (default, no AI), extract_mode='schema' (uniform records), executor='ai' + extract_prompt (per-page understanding, 5x the page rate). A bounde
params: url*, intent, rank_cap, seed_urls, page_budget, extract_mode, extract_schema, executor, extract_prompt, persona_id, save_as, wait, name, max_depth, include_paths, exclude_paths, same_domain, allow_subdomains, render_mode, ocr_mode, relevance_threshold, content_spec, respect_robots, delay_ms, max_concurrent_shards, device, use_residential, residential_country, speed, shard_size, timeout_seconds, limit, preview_chars, output, max_age
writ_saved_crawlsLists the crawls saved for re-running, with their scope.
params: limit
writ_update_saved_crawlInspects or changes a saved crawl's settings in place.
params: crawl*, settings, name, description, default_max_age_seconds
writ_run_saved_crawlRuns a saved crawl; max_age returns its recent data at no cost instead of re-crawling.
params: crawl*, max_age, wait, timeout_seconds, limit, preview_chars, output
writ_saved_crawl_dataReads the data a saved crawl collected on its last completed run, without crawling.
params: crawl*, limit, preview_chars, output
writ_scrapeREAD PAGES NOW, no browser session: one page (url), up to 20 pages in parallel (urls, on one site or several), or a listing plus its top N item pages (url + top_n). Returns clean markdown in 2-10 s, including pages a plain fetch cannot read: rendered by JavaScript (render_mode='browser'; a read that only got the page's shell says so and gives the retry), behind a bot wall or 403 (an automatic resi
params: url, urls, top_n, format, render_mode, persona_id, use_residential, include_paths, preview_chars, device, residential_country, respect_robots
writ_crawl_statusStatus of a crawl by crawl_id; wait=true holds up to 75 s and returns the collected rows when it converges.
params: crawl_id*, wait, limit, timeout_seconds, preview_chars, output
writ_crawl_filesThe original files (PDFs, office documents, images, CSVs) a crawl captured, with short-lived download URLs.
params: crawl_id, crawl, runs, limit
writ_create_automationCreates an automation: on an event (a workflow or crawl completed, a monitor change, a webhook, a schedule) it runs a workflow, sends a notification templated over the event's data, and/or wakes an AI agent. Event, template and webhook options: writ_help('writ_create_automation').
params: name*, when, schedule, on_workflow, target_id, run_workflow, notify, channels, ai_prompt, on_workflow_id, webhook_trigger_id, target_selector_id, ai_session_id, run_workflow_id, run_functions, run_function, inputs, blocks, recipients, title, ai_entry_url, cooldown_minutes, enabled, priority, description
writ_list_webhooksThe account's inbound webhook URLs and the automations they fire.
params: webhook_trigger_id
writ_create_monitorWATCHES a page for changes: Writ checks it on a schedule and fires change_detected when the page, a CSS selector's text, a value read by `extract`, or a visual zone changes. Returns the monitor_id that writ_wire_monitor connects to an alert, a workflow or an AI task (a price watch takes a threshold there). Without `interval` the answer is needs_input: this plan's options and a tell_user for the us
params: url*, interval, selector, extract, watch, session_id, persona_id, use_residential, device, interval_minutes, requires_browser, mode, zone_text, request_url, try_anyway, residential_country, enabled
writ_wire_monitorConnects a monitor's change_detected event to an action: action='notify' (channels and recipients the account has configured), 'workflow' (runs a saved workflow), or 'ai_task' (an AI agent opens the page and works `prompt`). A price watch takes `threshold` (+ threshold_op): the action then runs once, when a check reads a price at or below it. Buying at a price (`buy`): writ_help('writ_wire_monitor
params: monitor_id*, action*, channels, recipients, threshold, threshold_op, workflow, prompt, buy, device, workflow_id, title, message, ai_session_id, entry_url, max_steps, cooldown_minutes, name, enabled
writ_helpThe full reference of any Writ tool (every parameter and its rules) and the complete guide. topic = a tool name (e.g. 'writ_browser_compose', a 'run_<workflow>' tool), 'guide' for the manual (recurring digests, HTTP flow building, buying on a price, crawl modes), 'actions' / 'recording' / '2fa' for the browser rules, 'http_flows' / 'flow_operators' for writing an HTTP flow, or empty for the list o
params: topic
writ_browser_live_viewThe live browser card's own access: the card ChatGPT and Claude show under writ_browser_use and writ_record_website calls it to read the session's state and get one-time passes for the session's screencast and its take-over channel. The user watches the page in the card and can take it over there. It is not part of a conversation's work.
params: session_id*

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.