{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m5xzn91j7nr08wmx53r03rjm",
 "ids": {
  "org": "org_01m5xzn91j2p7gkmy21b2dmm61",
  "surfaces": {
   "web": "srf_01m5xzn91jsrzs3zd8xqdr1x2s",
   "mcp": "srf_01m5xzn91jdeqn5jhb2byqybta"
  },
  "slugs": [
   "tldraw"
  ],
  "domain": "tldraw.com"
 },
 "slug": "tldraw",
 "name": "tldraw",
 "url": "https://tldraw.com",
 "domain": "tldraw.com",
 "category": "design",
 "category_name": "Design",
 "tested_at": "2026-10-26",
 "run": "20261026T230018Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261026T230018Z",
   "date": "2026-10-26",
   "level": 3,
   "engine": {
    "model": "claude-opus-5-5",
    "driver": 5,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip",
    "version": "2026.10.26",
    "commit": "c9dc53639e39858139bcbb43e0136d42b5ec4301",
    "prompts": {
     "version": "2026.10.26",
     "commit": "9bef5e75f8e732d063fdfff8e766feca445cb123"
    },
    "rules": {
     "version": "2026.10.26",
     "commit": "cf67ac91a72987684eab8ae070c6dfd1b32f6dae"
    }
   },
   "stop": null,
   "drives": 2,
   "paid": false,
   "agent_paid": null
  }
 ],
 "level": 3,
 "level_name": "Does the work",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 2,
  "tries": 2,
  "self_start": true
 },
 "badges": [
  "agent-can-leave"
 ],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: no key needed",
   "how": "no-account",
   "way": "keyless"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "part",
   "text": "Work done: 71% of the core"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "na",
   "text": "No plan to buy",
   "value": "nothing",
   "route": "none"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, made nothing to delete",
   "how": "no-account",
   "left": "nothing_made",
   "delete": {
    "state": "na",
    "text": "Made nothing to delete",
    "why": "No account was made."
   }
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "no",
   "text": "No docs it can act on",
   "have": [
    "llms_txt",
    "mcp"
   ],
   "docs": "unreachable"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: no key needed",
   "how": "no-account",
   "way": "keyless",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "part",
   "text": "Work done: 71% of the core",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "na",
   "text": "No plan to buy",
   "value": "nothing",
   "route": "none",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, made nothing to delete",
   "how": "no-account",
   "left": "nothing_made",
   "delete": {
    "state": "na",
    "text": "Made nothing to delete",
    "why": "No account was made."
   },
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "keyless",
   "label": "No key needed",
   "routes": [
    "keyless"
   ],
   "minutes": 12,
   "core": "5/7"
  }
 ],
 "minutes": 12,
 "next": {
  "to": 4,
  "text": "Next: do 80% of the core work (now 71%)"
 },
 "stop": null,
 "core": "5/7",
 "scores": {
  "coverage": 79,
  "reliability": 93,
  "resilience": 87,
  "setup": 65,
  "surface_coverage": 39,
  "docs_accuracy": 100,
  "docs_completeness": 47
 },
 "parts": {
  "holds_up": 90,
  "docs_match": 84,
  "setup": 65,
  "security": null,
  "standards": [
   {
    "standard": "MCP client registration",
    "state": "current",
    "behind": null,
    "value": "cimd"
   }
  ]
 },
 "reliability_method": "pass^k",
 "resilience": {
  "parts": {
   "error_legibility": 61,
   "recovery": 100,
   "idempotency": 100
  },
  "summary": {
   "error_legibility": "mixed",
   "recovery": "good",
   "idempotency": "safe",
   "rate_limits": "none-seen",
   "notes": "Wrong file types, bad embed URLs and a bad MCP token each get a clear message; dragging the middle of an unselected unfilled shape fails silently. The same image uploaded twice is stored once."
  }
 },
 "stress": [
  {
   "capability": "Add an image, video or file to the board",
   "probe": "Upload a text file through the media tool",
   "outcome": "Toast \"Media | File type is not allowed\"; no shape created. The chooser accepts image/jpeg,png,webp,svg+xml,gif,apng,avif, video/mp4,webm,quicktime.",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Insert an embedded webpage or video",
   "probe": "Embed a URL the chosen service does not accept",
   "outcome": "Dialog: \"We could not create an embed from that URL.\"; Create button disabled.",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Add an image, video or file to the board",
   "probe": "Upload the same image twice (safe retry)",
   "outcome": "Two image shapes, both assetId \"asset:-1576161251\"; getAssets() lists one asset: the file is stored once (content-hashed id), the shape is added each time.",
   "grade": "clear",
   "idempotent": "yes",
   "rate_limit": null
  },
  {
   "capability": "Edit or move a shape",
   "probe": "Drag the middle of an unselected unfilled rectangle",
   "outcome": "Position unchanged (400,300); no message.",
   "grade": "silent",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "discovery",
   "probe": "Bad bearer token on the MCP server",
   "outcome": "401 WWW-Authenticate: Bearer resource_metadata=..., error=\"invalid_token\", error_description=\"The access token is expired, revoked, or issued for another resource\"; body {\"error\":\"invalid_token\",...}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "discovery",
   "probe": "Burst of 12 reads on the protected-resource metadata",
   "outcome": "12 x 200; no RateLimit, RateLimit-Policy, X-RateLimit-* or Retry-After headers.",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "none-seen"
  }
 ],
 "surface_audit": {
  "totals": {
   "items": 20,
   "documented": 18,
   "safe": 18,
   "exercised": 7,
   "passed": 7,
   "skipped": 0,
   "blocked": 11,
   "not_run": 0,
   "match": 7,
   "drift": 0,
   "broken_doc": 0,
   "docs_complete": 6,
   "docs_partial": 5,
   "docs_missing": 7,
   "errors_clear": 2,
   "errors_vague": 0,
   "errors_silent": 0
  }
 },
 "coverage_core": 71,
 "coverage_own": 71,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 5,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false
 },
 "methodology": 42,
 "rules_date": "2026-10-30",
 "engine": {
  "model": "claude-opus-5-5",
  "driver": 5,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip",
  "version": "2026.10.26",
  "commit": "c9dc53639e39858139bcbb43e0136d42b5ec4301",
  "prompts": {
   "version": "2026.10.26",
   "commit": "9bef5e75f8e732d063fdfff8e766feca445cb123"
  },
  "rules": {
   "version": "2026.10.26",
   "commit": "cf67ac91a72987684eab8ae070c6dfd1b32f6dae"
  }
 },
 "same_level_drives": 1,
 "drives": 2,
 "same_stop_drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": true,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Cloudflare Turnstile (Clerk bot protection)",
  "visible": true,
  "type": "network",
  "human": null,
  "how": "Let verified bots and signed agents past the check on sign-up: in Cloudflare, add a WAF custom rule that skips the bot challenge on your sign-up paths for verified bots and for signed agents (rule field cf.bot_management.signed_agent; since 1 July 2026 signed agents count as verified bots), and render Turnstile only when the request is not from a verified agent.",
  "recognises_us": true,
  "vendor_id": "cloudflare",
  "other_way": true,
  "way": "email_code",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "page",
   "kind": "home",
   "at": "2026-10-26"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "verified",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "auth.md, the AI catalog, the API catalog and tldraw.dev/llms.txt (SDK docs) fetched without a browser; the app's user manual (tldraw.notion.site) needs a browser."
  },
  "signup": {
   "status": "n/a",
   "cause": "check",
   "note": "Not needed: a documented route works without an account.",
   "way": "keyless",
   "route": "no_account",
   "no_account": true,
   "note_driver": "Not needed: the documented keyless editor at tldraw.com works without an account. The email sign-up (for share and comments) shows a visible Cloudflare Turnstile that our agent does not solve.",
   "status_driver": "n/a"
  },
  "verify": {
   "status": "n/a",
   "note": "Not needed: a documented route works without an account.",
   "no_account": true,
   "note_driver": "Not needed: no account was made on the keyless route.",
   "status_driver": "n/a"
  },
  "credentials": {
   "status": "n/a",
   "note": "Not needed: a documented route works without an account.",
   "via": "",
   "no_account": true,
   "note_driver": "The editor needs no key or token. The MCP server's OAuth token needs a signed-in account, which we did not have.",
   "status_driver": "n/a"
  },
  "first_call": {
   "status": "browser",
   "note": "https://www.tldraw.com/ opens the editor signed out, no bot check.",
   "route": "no_account"
  },
  "first_action": {
   "status": "browser",
   "note": "Drew a rectangle with the Rectangle tool; it read back after a reload."
  },
  "pay": {
   "status": "n/a",
   "grade": "n/a",
   "rails": [],
   "rail_ids": [],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "route": "none",
   "checkout": {
    "reached": "no",
    "processor": "none",
    "captcha": "none",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "none",
    "price": "",
    "currency": "",
    "period": "",
    "plan": "",
    "last_button": ""
   },
   "person": null,
   "ours": null,
   "note": "tldraw.com shows no paid tier: no 402 on its hosts (nothing paid), no registry listing, /pricing closed by robots.txt, no upgrade in the app menu. The only price is the SDK licence on tldraw.dev (100-day free trial, no card, or sales), not this app."
  },
  "cancel": {
   "status": "n/a",
   "grade": "n/a",
   "note": "Nothing to cancel: there is nothing to pay for.",
   "docs_note": "Nothing to cancel: free, signed-out use only; nothing recurring exists to start.",
   "nothing": "nothing_to_pay"
  },
  "delete": {
   "status": "n/a",
   "note": "No account was made. The signed-out board lives in this browser only (FAQ); all shapes were deleted and a reload showed an empty canvas.",
   "left": "nothing_made",
   "after_hours": null,
   "account": false
  }
 },
 "routes": [
  {
   "route": "keyless",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 12,
   "browser": true
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": false,
   "not_tried": "no_kit",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "no",
  "rail_offer": "none"
 },
 "docs": {
  "at": "2026-10-26",
  "read": 0,
  "listed": 0,
  "sampled": false,
  "overall": "unreachable",
  "getting_started": "missing",
  "auth": "missing",
  "errors": "missing",
  "examples": "none",
  "freshness": "unknown",
  "newest": null,
  "core_pages": "0 of 7",
  "capabilities": "none",
  "label": "Couldn't be read"
 },
 "claims": {
  "claimed": 0,
  "tried": 0,
  "held": 0,
  "broken": 0,
  "unclear": 0,
  "not_tried": 0,
  "undocumented_works": 0
 },
 "pay_options": {
  "checked": "2026-10-26",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": []
 },
 "surfaces": {
  "api": false,
  "openapi": false,
  "cli": false,
  "sdk": false,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": false,
  "sandbox": false
 },
 "urls": {
  "docs": "https://tldraw.dev/",
  "llms_txt": "https://tldraw.dev/llms.txt",
  "mcp": "https://www.tldraw.com/api/app/mcp"
 },
 "surface_notes": {
  "mcp": "official, read-only boards (find, pages, shape clusters, screenshots); OAuth 2.1 with CIMD; tools not published",
  "llms_txt": "tldraw.dev/llms.txt covers the SDK, not the app"
 },
 "surface_sizes": [
  {
   "kind": "api",
   "listed": 3,
   "tested": 3
  },
  {
   "kind": "mcp",
   "listed": 7,
   "tested": 0
  }
 ],
 "can_do": [
  "Open a new whiteboard without an account",
  "Draw, move and restyle shapes",
  "Upload an image or video to the board",
  "Export the board as PNG or SVG and download it as a .tldr file",
  "Add text, sticky notes, bound arrows, frames and embeds",
  "Align and arrange shapes",
  "Change preferences and the interface language"
 ],
 "cannot_do": [
  {
   "what": "Share a board for live collaboration",
   "why": "Needs an account; the email sign-up has a visible Cloudflare Turnstile"
  },
  {
   "what": "Comment on a board",
   "why": "Needs an account; the email sign-up has a visible Cloudflare Turnstile"
  },
  {
   "what": "Add more pages",
   "why": "Not offered signed out; needs an account"
  },
  {
   "what": "Read boards over the MCP server",
   "why": "OAuth for a signed-in account only, behind an access flag"
  }
 ],
 "blockers": [
  "Visible Cloudflare Turnstile on the email sign-up"
 ],
 "tips_for_agents": [
  "Open https://www.tldraw.com/ signed out for drawing and export; no account or key is needed",
  "Work stays in the browser profile: use main menu > Download to keep a .tldr copy",
  "Click a shape's outline or select it first before dragging; the empty middle of an unfilled shape does not grab",
  "Export (PNG, SVG) and Download are in the main menu behind the button labelled Page menu",
  "For the MCP server request exactly the scopes openid profile email offline_access with a CIMD client id"
 ],
 "selfhost": {
  "install": {
   "status": "skipped",
   "minutes": 0,
   "note": "FAQ: \"Can I self-host tldraw.com? Is there a docker image? No ... that project is not designed to be self-hosted.\" The open-source SDK is a library, not an edition of the app; the hosted editor already worked signed out."
  }
 },
 "edge_case": "none",
 "summary": "An agent can use the tldraw.com whiteboard fully signed out in a browser: create a board, draw, move and style shapes, upload media and export PNG, all read back. Sharing, comments and pages need an account, and the email sign-up shows a visible Cloudflare Turnstile, so our agent got no account. There is no API for boards; the read-only MCP server needs an OAuth token from a signed-in account.",
 "wall": "Cloudflare Turnstile on the email sign-up",
 "plan_scope": "none (no account): the signed-out free editor",
 "robots_stop": null,
 "robots": {
  "rule": "star",
  "step": null,
  "seen": "2026-10-26",
  "held": false
 },
 "terms": null,
 "terms_read": null,
 "email_gate": null,
 "plain": {
  "summary": "tldraw.com is an online whiteboard. An agent can use it fully without an account in a browser: draw, move and style shapes, upload an image, and export a PNG. Sharing, comments and extra pages need an account, and the email sign-up shows a visible 'Verify you are human' check that our agent does not solve.",
  "can_do": [
   "Open a new whiteboard without an account",
   "Draw, move and restyle shapes",
   "Upload an image to the board",
   "Export the board as a PNG and download it as a .tldr file",
   "Add text, sticky notes, arrows, frames and embeds",
   "Align and arrange shapes",
   "Change preferences and the interface language"
  ],
  "cannot_do": [
   {
    "what": "Share a board for live collaboration",
    "why": "Needs an account; the sign-up has a visible human check"
   },
   {
    "what": "Comment on a board",
    "why": "Needs an account; the sign-up has a visible human check"
   },
   {
    "what": "Add more pages",
    "why": "Not offered signed out"
   },
   {
    "what": "Read boards over the MCP server",
    "why": "Needs a signed-in account's OAuth token"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Create a whiteboard",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "www.tldraw.com opens straight onto a new anonymous board, no signup required"
   },
   "check": "A fresh visit to www.tldraw.com shows an empty canvas with a new board id in the URL",
   "capability_id": "cap_4bb55etw",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser",
    "ui"
   ]
  },
  {
   "id": "cap-02",
   "capability": "Draw a shape on the canvas",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "toolbar: Draw, Rectangle, Ellipse, Triangle, Diamond, Hexagon, Oval, Rhombus, Star, Cloud, Heart, X box, Check box, Line (and the More shapes flyout)"
   },
   "check": "Selecting a shape tool and dragging on the canvas adds a shape record that persists and is selectable afterward",
   "capability_id": "cap_te68gy58",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser",
    "ui"
   ]
  },
  {
   "id": "cap-03",
   "capability": "Edit or move a shape",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Select tool (V): drag to move/resize/rotate a shape; style panel changes color, fill, dash and size"
   },
   "check": "Dragging a selected shape's handle changes its recorded position/size on the canvas",
   "capability_id": "cap_ekgxs4mt",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser",
    "ui"
   ]
  },
  {
   "id": "cap-04",
   "capability": "Add an image, video or file to the board",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Media tool (Ctrl+U) / Page menu > Upload media…"
   },
   "check": "Uploading a file creates an image/video shape on the canvas referencing the uploaded asset",
   "capability_id": "cap_fk783d7e",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser",
    "ui"
   ]
  },
  {
   "id": "cap-05",
   "capability": "Share a board for live multiplayer collaboration",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "toolbar 'Share' button ('Sign in to share' when signed out)"
   },
   "check": "A shared board link opened in a second browser shows the same shapes and a live cursor for each participant",
   "capability_id": "cap_qhs0ztas",
   "source": "https://www.tldraw.com/",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-06",
   "capability": "Export the board as an image",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Page menu > Export (SVG, PNG)"
   },
   "check": "Choosing Export > PNG downloads a PNG file rendering the current selection or board",
   "capability_id": "cap_pfwg3hjr",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser",
    "ui"
   ]
  },
  {
   "id": "cap-07",
   "capability": "Comment on the board",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "toolbar 'Comment' tool (C)"
   },
   "check": "Placing a comment pin on the canvas creates a comment thread attached to that point",
   "capability_id": "cap_1ky2vpn2",
   "source": "https://www.tldraw.com/",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-08",
   "capability": "Add text to the canvas",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "toolbar 'Text' tool (T)"
   },
   "check": "Clicking with the Text tool creates an editable text shape that persists after clicking away",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-09",
   "capability": "Add a sticky note",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "toolbar 'Note' tool (N)"
   },
   "check": "Clicking with the Note tool creates a colored sticky-note shape with editable text",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-10",
   "capability": "Draw an arrow between shapes",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "toolbar 'Arrow' tool (A); More flyout also has fixed left/up/down/right arrows"
   },
   "check": "Dragging from one shape to another with the Arrow tool creates an arrow bound to both shapes, which moves when either shape moves",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-11",
   "capability": "Group content into a frame",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "More flyout > 'Frame' tool (F)"
   },
   "check": "Drawing a frame around shapes nests those shapes inside the frame record, so moving the frame moves its contents",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-12",
   "capability": "Insert an embedded webpage or video",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Page menu > 'Insert embed…' (Ctrl+I)"
   },
   "check": "Pasting a supported URL through Insert embed creates a live embed shape rendering that page/video on the canvas",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-13",
   "capability": "Arrange, align and reorder shapes",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "toolbar 'Actions' menu: align/distribute/stack, send to back/forward/bring to front, rotate, group"
   },
   "check": "Selecting several shapes and choosing 'Align left' moves them to share the same left edge",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-14",
   "capability": "Set a shape's color, fill, dash and size style",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "style panel shown with any drawing tool or selected shape: Color, Opacity, Fill, Dash, Size"
   },
   "check": "Changing the Fill radio from None to Solid on a selected shape changes its recorded fill style",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-15",
   "capability": "Organize content across multiple pages",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "toolbar 'Page menu'"
   },
   "check": "Creating a new page from the Page menu adds a separate page whose shapes are independent of the current page's shapes",
   "capability_id": "cap_pm7yev70",
   "source": "https://www.tldraw.com/",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-16",
   "capability": "Change app preferences (theme, snapping, etc.)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Page menu > Preferences"
   },
   "check": "Toggling a preference such as dark mode persists across a page reload",
   "capability_id": null,
   "unmapped": "not_a_job",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-17",
   "capability": "Change the interface language",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Page menu > Language"
   },
   "check": "Selecting a different language changes the toolbar and menu labels to that language",
   "capability_id": null,
   "unmapped": "not_a_job",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  },
  {
   "id": "cap-18",
   "capability": "View keyboard shortcuts and the user manual",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Page menu > Keyboard shortcuts / User manual"
   },
   "check": "Opening Keyboard shortcuts shows a reference dialog listing the app's shortcuts",
   "capability_id": null,
   "unmapped": "not_a_job",
   "source": "https://www.tldraw.com/",
   "result": "done",
   "via": "browser",
   "done_on": [
    "browser"
   ]
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/tldraw.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [],
   "stop": "signup",
   "why": "it asks for a Cloudflare Turnstile check our agent doesn't solve",
   "tone": "wall",
   "text": "Signing up needs a person: it asks for a Cloudflare Turnstile check our agent doesn't solve."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [],
   "stop": "first_call",
   "why": "it needs a browser",
   "tone": "wall",
   "text": "Stops at the first API call: it needs a browser."
  }
 },
 "sdk": null,
 "surface_reach": null,
 "connect": {
  "mcp": {
   "url": "https://www.tldraw.com/api/app/mcp",
   "transport": "streamable-http",
   "state": "documented",
   "no_answer": "2026-11-01"
  },
  "docs": {
   "url": "https://tldraw.dev/",
   "state": "documented"
  }
 },
 "surface_sources": {
  "mcp": "https://www.tldraw.com/api/app/mcp",
  "docs": "https://tldraw.dev/",
  "llms_txt": "https://tldraw.dev/llms.txt",
  "api": "https://www.tldraw.com/auth.md"
 },
 "copilot_connector": null,
 "stripe_directory": null,
 "in_stripe_directory": null,
 "stripe_projects": null,
 "pay_rails": [],
 "stop_evidence": null,
 "wall_vendor": null,
 "mcp_sign_in": null,
 "safety_issues": 1,
 "fix_counts": {
  "small": 4,
  "medium": 0,
  "large": 0,
  "total": 4
 },
 "evidence_sha256": "e41acef814e22ea58b887d39b421a65394634a3315bc637555a1ac7bbee5c3a8",
 "first_seen": "2026-10-26",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "correction": {
  "status": "none",
  "open": 0,
  "since": null,
  "reply_by": null
 },
 "attribution": {
  "vendor": "Cloudflare Turnstile",
  "at": "signup",
  "state": "seen",
  "stopped": false,
  "line": null
 },
 "confirmation": {
  "state": "awaiting",
  "drives": 2,
  "agree": 2,
  "review": null,
  "text": "2 drives on one day, awaiting confirmation"
 },
 "stop_shot": null,
 "stop_shot_hash": null,
 "attempts_count": 64,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "tldraw is an online whiteboard for drawing, styling and arranging shapes, adding text, sticky notes, arrows and images, and exporting boards as PNG or SVG.",
 "kind": "product",
 "rules_version": "rules-2026-10-30-42",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-30-42",
 "category_median": null,
 "peers": {
  "ERR-01": {
   "basis": "all",
   "n": 128,
   "below": 2,
   "above": 0,
   "percentile": 51
  },
  "ERR-02": {
   "basis": "all",
   "n": 105,
   "below": 84,
   "above": 0,
   "percentile": 90
  },
  "ERR-03": {
   "basis": "all",
   "n": 104,
   "below": 81,
   "above": 0,
   "percentile": 89
  },
  "ERR-07": {
   "basis": "all",
   "n": 104,
   "below": 34,
   "above": 40,
   "percentile": 47
  },
  "IN-08": {
   "basis": "all",
   "n": 120,
   "below": 55,
   "above": 0,
   "percentile": 73
  },
  "IN-11": {
   "basis": "category",
   "n": 5,
   "below": 3,
   "above": 0
  },
  "IN-12": {
   "basis": "category",
   "n": 5,
   "below": 3,
   "above": 0
  },
  "PROTO-02": {
   "basis": "all",
   "n": 94,
   "below": 0,
   "above": 2,
   "percentile": 49
  }
 },
 "probe": {
  "checked": "2026-11-01",
  "status": "ok",
  "sign_up_page": "robots",
  "wall": "robots",
  "llms_txt": false,
  "mcp": "not_asked",
  "openapi": false,
  "payment_402": null,
  "payment_rails": [],
  "files": {
   "openapi": {
    "url": null,
    "found": false
   },
   "llms_txt": {
    "url": null,
    "found": false
   },
   "llms_full": {
    "url": null,
    "found": false
   }
  }
 },
 "probe_history": [
  {
   "checked": "2026-11-01",
   "status": "ok",
   "sign_up_page": "robots",
   "wall": "robots",
   "llms_txt": false,
   "mcp": "not_asked",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-31",
   "status": "ok",
   "sign_up_page": "robots",
   "wall": "robots",
   "llms_txt": false,
   "mcp": "not_asked",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-30",
   "status": "ok",
   "sign_up_page": "robots",
   "wall": "robots",
   "llms_txt": false,
   "mcp": "not_asked",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-29",
   "status": "ok",
   "sign_up_page": "robots",
   "wall": "robots",
   "llms_txt": false,
   "mcp": "not_asked",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-28",
   "status": "ok",
   "sign_up_page": "robots",
   "wall": "robots",
   "llms_txt": false,
   "mcp": "not_asked",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  }
 ],
 "surface_changes": [],
 "agent_reports": null,
 "verdict": "L3 · Does the work: our agent got in on its own on tldraw.com, which opens the whiteboard signed out in a browser with no bot check. It recorded no stop at any checkpoint. Our agent drew a rectangle that read back after a reload, and moved and styled shapes, uploaded media and exported PNG, all read back. Sharing, comments and pages need an account, and email sign-up shows a visible Cloudflare Turnstile, so our agent got no account. There is no API for boards, and the read-only MCP server needs an OAuth token from a signed-in account.",
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261026T112827Z",
    "date": "2026-10-26",
    "level": 3,
    "stop": null,
    "entry": "self-start",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   },
   {
    "run": "20261026T230018Z",
    "date": "2026-10-26",
    "level": 3,
    "stop": null,
    "entry": "self-start",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/tldraw/changes.json"
 },
 "agreement": {
  "drives": 2,
  "agree": 2
 },
 "method_release": "2026-Q4.27",
 "found": {
  "agent_blockers": 1,
  "surface_issues": 7
 },
 "agent_surfaces": {
  "api": {
   "state": "tested",
   "reachable": true,
   "documented": 3,
   "tested": 3,
   "source": "https://www.tldraw.com/auth.md"
  },
  "mcp": {
   "state": "documented",
   "reachable": null,
   "documented": 7,
   "tested": 0,
   "source": "https://www.tldraw.com/api/app/mcp"
  },
  "cli": {
   "state": "none_found",
   "reachable": null,
   "documented": null,
   "tested": null,
   "source": null
  },
  "sdk": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  },
  "docs": {
   "state": "documented",
   "documented": 0,
   "tested": 0,
   "source": "https://tldraw.dev/"
  },
  "payment": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  }
 },
 "issues_found": 8,
 "rank": 2,
 "rank_of": 2,
 "rank_change": null,
 "rank_since": "2026-10-27",
 "links": {
  "category": [
   {
    "label": "Work and collaboration",
    "href": "https://agentdrives.com/categories/work"
   },
   {
    "label": "Design",
    "href": "https://agentdrives.com/categories/design"
   }
  ],
  "tasks": [],
  "walls": [
   {
    "label": "Bot checks",
    "href": "https://agentdrives.com/access/get-in/bot-checks",
    "note": "our agent got in another way"
   }
  ],
  "vendors": [
   {
    "label": "Cloudflare",
    "href": "https://agentdrives.com/vendors/cloudflare",
    "note": "on one way in",
    "slug": "cloudflare"
   }
  ],
  "standards": [
   {
    "label": "MCP",
    "href": "https://agentdrives.com/standards/mcp",
    "note": "tools an agent can call"
   },
   {
    "label": "llms.txt",
    "href": "https://agentdrives.com/standards/llms-txt",
    "note": "its docs, listed for agents"
   }
  ],
  "steps": [
   {
    "label": "Find",
    "href": "https://agentdrives.com/access/find"
   },
   {
    "label": "Get in",
    "href": "https://agentdrives.com/access/get-in"
   },
   {
    "label": "Use",
    "href": "https://agentdrives.com/access/use"
   },
   {
    "label": "Pay",
    "href": "https://agentdrives.com/access/pay"
   },
   {
    "label": "Leave",
    "href": "https://agentdrives.com/access/leave"
   }
  ],
  "rivals": [
   {
    "label": "Penpot",
    "href": "https://agentdrives.com/tools/penpot",
    "slug": "penpot",
    "level": 4
   },
   {
    "label": "Autodesk (Autodesk Platform Services)",
    "href": "https://agentdrives.com/tools/autodesk",
    "slug": "autodesk",
    "level": 1
   },
   {
    "label": "Canva",
    "href": "https://agentdrives.com/tools/canva",
    "slug": "canva",
    "level": 1
   }
  ],
  "compare": [],
  "rail": [
   {
    "label": "Watch this product",
    "href": "https://agentdrives.com/watch"
   },
   {
    "label": "Get the data",
    "href": "https://agentdrives.com/data#plans"
   }
  ]
 },
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Create a whiteboard",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-02",
   "name": "Draw a shape on the canvas",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-03",
   "name": "Edit or move a shape",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-04",
   "name": "Add an image, video or file to the board",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-05",
   "name": "Share a board for live multiplayer collaboration",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-06",
   "name": "Export the board as an image",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-07",
   "name": "Comment on the board",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-08",
   "name": "Add text to the canvas",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-09",
   "name": "Add a sticky note",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-10",
   "name": "Draw an arrow between shapes",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-11",
   "name": "Group content into a frame",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-12",
   "name": "Insert an embedded webpage or video",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-13",
   "name": "Arrange, align and reorder shapes",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-14",
   "name": "Set a shape's color, fill, dash and size style",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-15",
   "name": "Organize content across multiple pages",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-16",
   "name": "Change app preferences (theme, snapping, etc.)",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-17",
   "name": "Change the interface language",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  },
  {
   "id": "cap-18",
   "name": "View keyboard shortcuts and the user manual",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "done"
   }
  }
 ],
 "category_place": {
  "category": "design",
  "products": 5,
  "higher": 1,
  "same_level": 0,
  "as_of": "2026-10-31",
  "stop": null,
  "rivals_by": "level",
  "rivals": []
 },
 "page": "https://agentdrives.com/tools/tldraw?via=api"
}