A QA beagle for your coding agent.

Plan-gated skills that run your app locally, sniff out bugs across every user path, and write an evidence-based report. The same skills work in Claude Code and Codex CLI.

  • 9 skills
  • Plan-gated
  • Claude Code
  • Codex CLI
  • ~/.agents
  • Apache 2.0
A cartoon beagle sniffing along a dashed trail past screens, a lock, an accessibility icon, and a speed gauge, toward a bug and an open gate

Every run stops for your approval first.

Nothing launches, installs, seeds, or captures until you say yes. In Claude Code that is plan mode; in Codex the agent posts the plan and waits for your OK.

Discover

Preflight works out what kind of project this is, whether the toolchain is present, how the app runs, and where captures should go.

Approve the route map

You see which screens and flows it will exercise, what it will capture, what it cannot verify, and where the report lands. Then you decide.

Run and report

It launches the app, captures every screen, exercises the flows, and writes a report with evidence and an explicit list of what it could not check. It never invents a pass.

Start in your tool.

Open your coding agent in the repo you want to test, then say the word. It shows you a plan first and waits — nothing runs until you approve.

Claude Code
In Claude Code: typing /beagle opens plan mode with the route map (9 routes, agent-browser driver, report to docs/qa, and what it won't verify yet), you approve, and it writes the report
Type /beagle, approve the route map, read the report. One word more — /beagle security — jumps straight to a skill.
Codex CLI
In Codex: asking in plain language, the agent posts a plan and the confirmation line, you say yes, and it writes the report
Just ask in plain language, in English or Korean. The agent posts the plan, waits for your OK, then runs.

Representative of a real run; the route map, driver, and report path are the actual ones from the Juice Shop example. Other runtimes (Cursor, Gemini CLI, Copilot) read the same skills from ~/.agents. Install →

What you get: a full, detailed report.

Not a teaser — the entire bugsweep report from that run, scrollable below. The route-coverage table (which routes, in which states, with what result), every finding with its evidence, and an explicit list of everything it could not verify. breachsweep and a11ysweep read the same way. Korean by default, English or another language on request.

The full bugsweep report: environment, a summary with route coverage (9 of 41 routes) and six unverified items, the complete route-coverage table across states and variants, findings with evidence, and the unverified table listing registration, checkout, 2FA, admin, locale, and theme

↕ Scroll the report — this is the whole thing, every route and every unverified item.

  • HIGHExposed /ftp directory listingBackup files and a KeePass database, reachable with no auth. Confirmed by a plain GET.
  • a11yForm input with no accessible labelaxe-core, injected into the live page, flagged it on every audited route with the exact node.
  • UNVERIFIEDSQL injection, XSS, IDORAll present by design. TestBeagle left them in the unverified column instead of claiming them, because a non-destructive run cannot prove them. It never counts an unexercised path as a pass.
Juice Shop product listing Logged-in basket, proving the real login flow Juice Shop score board
Under the hood: the real commands, start to finish
Terminal recording: checking the app version, driving the login form with agent-browser, finding the exposed /ftp listing, and listing the vulnerability classes it refuses to claim

The same run at the shell level — preflight, agent-browser driving the app, the /ftp finding, and the refusal table.

Nine skills, one trail.

Each skill is a portable folder your agent reads. Point one at a repo you can run locally: web, iOS, Android, an API, or a monorepo.

  • preflight run first

    Checks whether the repo can be run and tested locally: project type, toolchain, how it runs, where screenshots and media go.

    preflight this repo
  • bugsweep

    Full-path functional QA. Screenshots or video of every screen, plus real interaction across every flow from signup onward.

    run a full QA pass on the web app
  • breachsweep

    Security testing of an app you own: authorization and IDOR, injection, secret exposure, headers, cookies and CORS. Local and non-destructive.

    pentest my app
  • a11ysweep

    Accessibility and UX: contrast, tap-target size, ARIA and labels, keyboard navigation, locale parity, and generated-UI slop.

    audit accessibility
  • perfsweep

    Performance: Lighthouse, load time, jank, bundle size, and low-power or energy use.

    run a Lighthouse pass
  • casewright

    Turns flows and verified findings into reusable automated tests in the repo's own framework: e2e, integration, regression.

    write e2e tests for the login flow
  • scriptify

    Freezes a discovered flow into a committed, repo-native shell script so it re-runs without an agent.

    make a capture script
  • snap

    Screenshots of every screen saved as image files. Capture only, no analysis.

    capture all screens
  • repro

    Records a video that reproduces a flow or a bug, and saves the clip.

    record a repro video

Ask in plain language.

Open your coding agent in the repo you want to test and say what you want. The agent matches your request to a skill and follows it.

Want toSay something like
Check it can even be tested locallypreflight this repo
Full QA with screenshots of every screenrun a full QA pass on the web app
Security check on your own appsecurity-check my API
Accessibility and UXaudit accessibility
Performancerun a Lighthouse pass
Generate test caseswrite e2e tests for the login flow
Freeze it into a re-runnable scriptmake a capture script
Just get screenshots of every screencapture all screens
Record a video of a bug or flowrecord a repro video

In Claude Code, /beagle starts a full run: preflight, then bugsweep. Add one word to jump straight to a skill.

/beagle security/beagle a11y/beagle perf/beagle tests/beagle snap/beagle repro/beagle script

Install

Pick your runtime. Every method installs the same skills, and re-running is safe.

Works with the richest web driver present, and names it in the report: your repo's Playwright/Cypress → agent-browser → chrome-devtools / claude-in-chrome MCP → headless Chrome.

Claude Code

plugin, recommended
/plugin marketplace add TestBeagle/TestBeagle
/plugin install TestBeagle@TestBeagle

Codex CLI

plugin
codex plugin marketplace add TestBeagle/TestBeagle
codex plugin add TestBeagle@TestBeagle

Any runtime

clone and symlink into ~/.claude, ~/.codex, ~/.agents
git clone https://github.com/TestBeagle/TestBeagle.git
cd TestBeagle
./install.sh

npx skills

cross-runtime, ~/.agents
npx skills add TestBeagle/TestBeagle --all

The --all flag carries the whole suite, including the shared beagle-shared references. A single-skill -s preflight install pulls only that folder and will be missing the references it points to, so use --all, the plugin, or install.sh for the full suite.

  • All targets git and bash.
  • Web Google Chrome. For real interaction plus console and network capture, it uses your repo's Playwright/Cypress, agent-browser, or a browser MCP; with none, it falls back to capture-only headless Chrome and reports the gap.
  • iOS Xcode with the simulator, on macOS.
  • Android Android SDK platform-tools (adb).