Skip to content
Testing
Skill

/canary-automate

Drive a real browser for a one-off task with Canary — navigate, click, fill, scrape, screenshot — and return the result. Nothing is recorded. Use when the user asks to automate a browser task, scrape a page, fill a form, or check something on a site without needing a report.

From plugin
canary
4945 skills4 agents4 commands

Claude Code

$ npx -y skills add 0xnyn/canary --skill canary-automate --agent claude-code

SKILL.md

canary-automate.SKILL.md
name: canary-automate
description: Drive a real browser for a one-off task with Canary — navigate, click, fill, scrape, screenshot — and return the result. Nothing is recorded. Use when the user asks to automate a browser task, scrape a page, fill a form, or check something on a site without needing a report. Trigger phrases — "go to X and get Y", "scrape this page", "automate this browser task", "log in and check", "take a screenshot of".
license: MIT
metadata:
  author: usecanary
  version: 0.4.4
  category: workflow
  tags:
    - canary
    - browser-automation
    - scraping

Canary automate (one-off)

Run a script against a real browser and return the result — ephemeral, nothing recorded. Use the **canary-scripting** skill for the API.

When to use

  • A quick, one-shot browser task: navigate, extract, fill, screenshot.
  • Scraping or checking a page where you don't need a trace / video / report.
  • For a recorded, verifiable run **with** a report, use **canary-session** instead.

Examples

Example 1: scrape

User says: "get the top 10 Hacker News titles" or "scrape the headlines" Write a script that opens the page and `evaluate`s the data, run it, return the JSON it logs.

Example 2: check

User says: "is the pricing page up and what's the headline?" or "screenshot the homepage" `goto`, read the element (or `screenshot`), report.

Workflow

1. If the runtime isn't installed: `npx @usecanary/cli install` (one-time; downloads Chromium). 2. Write a short, focused script with the canary-scripting API (`browser.getPage`, `page.goto`, `locator`/`evaluate`, `console.log` the result), observing first on unknown pages (see *Hard rules*). 3. Run it: `npx @usecanary/browser run ./script.js` (or pipe the script via stdin). 4. If the result is empty or a selector missed, **observe and retry**: run a second short script that logs `page.url()`, `page.title()`, and `(await page.snapshotForAI()).full` (or a targeted `locator(...).count()`), pick a better selector, re-run. Named pages persist between runs, so state carries over. 5. Report the script's stdout. On optional extractions, degrade gracefully (log a `WARN`, don't crash) — but don't paper over a miss you can fix by observing. 6. Cleanup (optional): the run leaves a shared background daemon up for reuse. To shut it (and any browser) down, run `npx @usecanary/browser stop` (alias of `canary stop` / `canary daemon stop`).

Hard rules

<!-- canary:snippet rule-observe-first -->

  • Unknown page? Snapshot first, then act: read `(await page.snapshotForAI()).full` to see what

is there, pick a semantic selector from it (`getByRole`, `getByText`), then interact. Never guess selectors blind.

  • Known page or selectors? Skip the snapshot and use direct selectors — faster and more reliable.

<!-- canary:end rule-observe-first -->

Read more
@0xnyn
Ships withcanary

QA harness built for Claude Code | E2E testing with screen recordings, console logs, network HARs, and Playwright traces

4945 skills4 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
494
Star history of 0xnyn/canary on GitHub, a chart by star-history.com

Other skills on canary.

canary-review

canary-review

Open and triage recorded Canary sessions in the local viewer. Use when the user wants to look at, replay, compare, or triage a…

@0xnyn@0xnynInstall Skill
canary-scripting

canary-scripting

The Canary sandbox scripting API for browser automation. Use when writing or debugging a Canary script — looking up how to open a…

@0xnyn@0xnynInstall Skill
canary-session

canary-session

Record a verifiable QA session with Canary — explore a flow step by step against one persistent browser, each script a recorded…

@0xnyn@0xnynInstall Skill
canary-verify

canary-verify

Turn a code change into a prioritized browser-QA plan with Canary — read the git diff, infer which user-facing workflows it…

@0xnyn@0xnynInstall Skill

More skills from other plugins.

api-review

api-review

Produce the "Playwright 1.xx API Review" artifact for a range of commits - the public API additions and the breaking or behavior…

@microsoft@microsoftInstall Skill
add-e2e-selectors

add-e2e-selectors

Add reliable @grafana/e2e-selectors to interactive elements and key containers in the Grafana frontend. Use when adding e2e…

grafana1d78k
@grafana@grafanaInstall Skill
promptfoo-evals

promptfoo-evals

Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…

@promptfoo@promptfooInstall Skill
deepeval

deepeval

DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…

@confident-ai@confident-aiInstall Skill

Questions about canary-automate.

Which coding agents can use canary-automate?
canary-automate installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.