{
  "slug": "pilot/quickstart",
  "title": "Pilot Quickstart",
  "description": "Record and replay your first provider dashboard workflow in five minutes.",
  "url": "https://cuitty.com/docs/pilot/quickstart",
  "markdown_url": "https://cuitty.com/docs/pilot/quickstart.md",
  "json_url": "https://cuitty.com/docs/pilot/quickstart.json",
  "frontmatter": {
    "title": "Pilot Quickstart",
    "description": "Record and replay your first provider dashboard workflow in five minutes.",
    "order": 1,
    "section": "Pilot",
    "updatedAt": "2026-05-31"
  },
  "headings": [
    {
      "depth": 1,
      "slug": "pilot-quickstart",
      "text": "Pilot Quickstart"
    },
    {
      "depth": 2,
      "slug": "install-the-cli",
      "text": "Install the CLI"
    },
    {
      "depth": 2,
      "slug": "record-a-workflow",
      "text": "Record a workflow"
    },
    {
      "depth": 2,
      "slug": "replay-the-workflow",
      "text": "Replay the workflow"
    },
    {
      "depth": 2,
      "slug": "review-a-failed-run",
      "text": "Review a failed run"
    },
    {
      "depth": 2,
      "slug": "ai-healing-basics",
      "text": "AI healing basics"
    },
    {
      "depth": 2,
      "slug": "whats-next",
      "text": "What’s next"
    }
  ],
  "body_markdown": "# Pilot Quickstart\n\nCuitty Pilot records browser workflows against provider dashboards (AWS, Cloudflare, Vercel, etc.) and replays them on demand. If a provider changes their UI, Pilot's AI healing rewrites selectors so your automation keeps working. This guide walks through recording, replaying, and reviewing your first workflow.\n\n## Install the CLI\n\n```bash\ncurl -fsSL https://cuitty.com/install.sh | sh\ncui --version\n```\n\nOr install with npm:\n\n```bash\nnpm install -g @cuitty/cli\n```\n\nPilot uses Playwright under the hood. The first run will prompt you to install browser dependencies if they are missing.\n\n## Record a workflow\n\nStart a recording session against the Cloudflare dashboard. Pilot opens a browser window and captures every click, navigation, and form input:\n\n```bash\ncui pilot record \\\n  --name \"add-dns-record\" \\\n  --provider cloudflare \\\n  --start-url \"https://dash.cloudflare.com\"\n```\n\nWalk through the steps manually: log in, navigate to DNS, add an A record, save. When you are done, press `Ctrl+C` in the terminal. Pilot writes a playbook file to `.cuitty/playbooks/add-dns-record.yaml`.\n\n## Replay the workflow\n\nRun the recorded playbook headlessly:\n\n```bash\ncui pilot replay add-dns-record --headless\n```\n\nPilot replays each step, waits for network idle between navigations, and logs a pass/fail for every assertion checkpoint. Add `--headed` to watch the browser in real time.\n\n## Review a failed run\n\nIf a replay fails (e.g., Cloudflare moved a button), inspect the run:\n\n```bash\ncui pilot review add-dns-record --run latest\n```\n\nThe review command prints a step-by-step diff showing which selector broke, a screenshot of the page at the failure point, and the suggested AI-healed selector. Accept the fix with:\n\n```bash\ncui pilot review add-dns-record --run latest --accept\n```\n\nThis patches the playbook so future replays use the corrected selector.\n\n## AI healing basics\n\nPilot captures a DOM snapshot at every step during recording. When a selector breaks during replay, the AI healing engine compares the stored snapshot to the current page and proposes the best replacement selector. Healing runs locally by default; set `CUITTY_AI_KEY` to use the cloud model for higher accuracy on complex UI changes.\n\n## What's next\n\n- [Playbook reference](/docs/pilot/playbook-reference) — full YAML schema for steps, inputs, and assertions\n- [Executors](/docs/pilot/executors) — Browser, Terraform, Git, Persist, Shell, HTTP, and Composite\n- [JavaScript SDK](/docs/pilot/sdk/javascript) — `@cuitty/pilot-sdk` for TypeScript and Node.js\n- [Recording tips](/product/pilot#recording) — best practices for stable, replayable workflows",
  "body_html": "<h1 id=\"pilot-quickstart\">Pilot Quickstart</h1>\n<p>Cuitty Pilot records browser workflows against provider dashboards (AWS, Cloudflare, Vercel, etc.) and replays them on demand. If a provider changes their UI, Pilot’s AI healing rewrites selectors so your automation keeps working. This guide walks through recording, replaying, and reviewing your first workflow.</p>\n<h2 id=\"install-the-cli\">Install the CLI</h2>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\"><code><span class=\"line\"><span style=\"color:#B392F0\">curl</span><span style=\"color:#79B8FF\"> -fsSL</span><span style=\"color:#9ECBFF\"> https://cuitty.com/install.sh</span><span style=\"color:#F97583\"> |</span><span style=\"color:#B392F0\"> sh</span></span>\n<span class=\"line\"><span style=\"color:#B392F0\">cui</span><span style=\"color:#79B8FF\"> --version</span></span></code></pre>\n<p>Or install with npm:</p>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\"><code><span class=\"line\"><span style=\"color:#B392F0\">npm</span><span style=\"color:#9ECBFF\"> install</span><span style=\"color:#79B8FF\"> -g</span><span style=\"color:#9ECBFF\"> @cuitty/cli</span></span></code></pre>\n<p>Pilot uses Playwright under the hood. The first run will prompt you to install browser dependencies if they are missing.</p>\n<h2 id=\"record-a-workflow\">Record a workflow</h2>\n<p>Start a recording session against the Cloudflare dashboard. Pilot opens a browser window and captures every click, navigation, and form input:</p>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\"><code><span class=\"line\"><span style=\"color:#B392F0\">cui</span><span style=\"color:#9ECBFF\"> pilot</span><span style=\"color:#9ECBFF\"> record</span><span style=\"color:#79B8FF\"> \\</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  --name</span><span style=\"color:#9ECBFF\"> \"add-dns-record\"</span><span style=\"color:#79B8FF\"> \\</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  --provider</span><span style=\"color:#9ECBFF\"> cloudflare</span><span style=\"color:#79B8FF\"> \\</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  --start-url</span><span style=\"color:#9ECBFF\"> \"https://dash.cloudflare.com\"</span></span></code></pre>\n<p>Walk through the steps manually: log in, navigate to DNS, add an A record, save. When you are done, press <code>Ctrl+C</code> in the terminal. Pilot writes a playbook file to <code>.cuitty/playbooks/add-dns-record.yaml</code>.</p>\n<h2 id=\"replay-the-workflow\">Replay the workflow</h2>\n<p>Run the recorded playbook headlessly:</p>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\"><code><span class=\"line\"><span style=\"color:#B392F0\">cui</span><span style=\"color:#9ECBFF\"> pilot</span><span style=\"color:#9ECBFF\"> replay</span><span style=\"color:#9ECBFF\"> add-dns-record</span><span style=\"color:#79B8FF\"> --headless</span></span></code></pre>\n<p>Pilot replays each step, waits for network idle between navigations, and logs a pass/fail for every assertion checkpoint. Add <code>--headed</code> to watch the browser in real time.</p>\n<h2 id=\"review-a-failed-run\">Review a failed run</h2>\n<p>If a replay fails (e.g., Cloudflare moved a button), inspect the run:</p>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\"><code><span class=\"line\"><span style=\"color:#B392F0\">cui</span><span style=\"color:#9ECBFF\"> pilot</span><span style=\"color:#9ECBFF\"> review</span><span style=\"color:#9ECBFF\"> add-dns-record</span><span style=\"color:#79B8FF\"> --run</span><span style=\"color:#9ECBFF\"> latest</span></span></code></pre>\n<p>The review command prints a step-by-step diff showing which selector broke, a screenshot of the page at the failure point, and the suggested AI-healed selector. Accept the fix with:</p>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\"><code><span class=\"line\"><span style=\"color:#B392F0\">cui</span><span style=\"color:#9ECBFF\"> pilot</span><span style=\"color:#9ECBFF\"> review</span><span style=\"color:#9ECBFF\"> add-dns-record</span><span style=\"color:#79B8FF\"> --run</span><span style=\"color:#9ECBFF\"> latest</span><span style=\"color:#79B8FF\"> --accept</span></span></code></pre>\n<p>This patches the playbook so future replays use the corrected selector.</p>\n<h2 id=\"ai-healing-basics\">AI healing basics</h2>\n<p>Pilot captures a DOM snapshot at every step during recording. When a selector breaks during replay, the AI healing engine compares the stored snapshot to the current page and proposes the best replacement selector. Healing runs locally by default; set <code>CUITTY_AI_KEY</code> to use the cloud model for higher accuracy on complex UI changes.</p>\n<h2 id=\"whats-next\">What’s next</h2>\n<ul>\n<li><a href=\"/docs/pilot/playbook-reference\">Playbook reference</a> — full YAML schema for steps, inputs, and assertions</li>\n<li><a href=\"/docs/pilot/executors\">Executors</a> — Browser, Terraform, Git, Persist, Shell, HTTP, and Composite</li>\n<li><a href=\"/docs/pilot/sdk/javascript\">JavaScript SDK</a> — <code>@cuitty/pilot-sdk</code> for TypeScript and Node.js</li>\n<li><a href=\"/product/pilot#recording\">Recording tips</a> — best practices for stable, replayable workflows</li>\n</ul>",
  "links_out": [
    "/docs/pilot/playbook-reference",
    "/docs/pilot/executors",
    "/docs/pilot/sdk/javascript",
    "/product/pilot#recording"
  ]
}