Docs
Casely is a free, open-source QA skill for Claude. No command to type, no setup step, one conversation. It scores 85/100 on a public benchmark spec with five planted defects.
Last updated: October 2026
Install
claude.ai, Cowork, and the desktop app
Casely is listed in Anthropic's plugin directory. Open it there and install it in one click. Claude keeps it updated, and the plugin syncs to Claude Code on the same account.
Open Casely in the plugin directoryClaude Code
Paste this prompt and Claude runs the install for you.
Install the Casely plugin from https://github.com/JohnWayneeee/casely-qa-skillOr install it as a plugin yourself. Run both commands once, and claude plugin update casely@casely picks up new versions later.
claude plugin marketplace add JohnWayneeee/casely-qa-skillclaude plugin install casely@caselyOr add just the skill to one project, from its root.
npx skills@latest add JohnWayneeee/casely-qa-skillbunx skills add JohnWayneeee/casely-qa-skillCodex
Codex installs the same plugin.
codex plugin marketplace add JohnWayneeee/casely-qa-skillcodex plugin add casely@caselyJira, Confluence, and browser runs
The plugin ships Atlassian's official connector. Name a Jira issue or paste a Confluence link, sign in once on Atlassian's page, and Casely reads it like an attached spec. No API token goes into a file or the chat. Name an epic or a sprint and Casely lists its stories first and asks which to cover.
Casely only reads. It never creates, edits, or comments on anything in Jira or Confluence. Grant read access only, so a mistake can't reach your tracker: an Atlassian admin can limit the connector to read and search, and in Claude Code a permissions.deny block removes the write tools.
Bug reports: in Claude Code, /casely:bug 4f2a9c1e reads the event through your monitoring connector (GlitchTip, Sentry, or your own), or from logs you paste, and writes it in your team's bug format with personal data masked. A failed case from /casely:run works too. You file the bug; Casely never does.
In Claude Code, /casely:run https://staging.example.com walks the exported UI cases in a browser and writes a pass, fail, or blocked report. Connect Playwright once:
claude mcp add playwright -- npx @playwright/mcp@latestUpload the zip by hand
Only if the plugin directory is not available to you.
- 1.Download the release zip below.
- 2.Open Claude Desktop and look at the left side panel.
- 3.Click Customize, then select Skills or Plugins.
- 4.Click the + symbol at the top of the panel and choose Upload Skill.
- 5.Select the zip you downloaded and click Sync to finish.
- 6.Start a new conversation, attach the spec, and ask for test cases.
Use the release zip, not the green Code button
GitHub's own "Code > Download ZIP" button nests everything inside a repo-name folder. SKILL.md needs to sit at the archive root, so use the release zip linked above instead.
Custom skills need a paid plan
Uploading a custom skill on claude.ai requires a Pro, Max, Team, or Enterprise plan, and it does not sync to Claude Code. A plugin directory install does sync there.
Install video
How it works
Five phases, one conversation, no command to type. The test plan phase is the one point where Casely stops and waits for your approval before it writes anything.
Intake and scope
Claude reads the attachments itself, PDF, DOCX, XLSX, TXT, MD, or pasted text, with no parser and no OCR setup. Name a Jira issue, an epic, or a Confluence page instead, and Casely reads it through a read-only Atlassian connector. Add one file of test cases your team already wrote, and Casely copies its columns, their order, the tone, and the ID scheme.
Style guide
Casely matches the format of the example file you attached rather than imposing one of its own, so the team keeps the columns, order, and ID scheme it already uses. Say yes once and it saves that style, so the next run needs no example file.
Test plan
Casely proposes coverage per module, estimates how many cases that is, and names what the spec gets wrong before writing anything. If the requirements describe an API, it says here how many cases are API-level and that those will also come back as a Postman collection. Then it stops and waits for your approval, the one pause in the whole run.
Generate
Casely writes the cases using equivalence partitioning, boundary value analysis, decision tables, state transitions, and error guessing.
Export
Casely exports every case into a single all_test_cases.xlsx, or a UTF-8 CSV if your tracker wants one, plus one markdown file per case. TestRail, Qase, Zephyr, and Xray each import that file in one pass. API cases also come back as a Postman collection with an environment file and run instructions. In Claude Code, /casely:run then walks the UI cases in a browser.
What you attach, what you get
You attach
PDF, DOCX, XLSX, TXT, MD, pasted text, a Jira issue, a Confluence page. Add one file of test cases your team already wrote and Casely copies its columns, their order, the tone, and the ID scheme. Casely can save that style, so you attach it only once.
You get back
One all_test_cases.xlsx holding every case, or a UTF-8 CSV, plus a markdown file per case. Import into TestRail, Qase, Zephyr, Xray in a single pass. API cases also come back as a Postman collection you can run, and /casely:run walks the UI cases in a browser.
API tests
When the requirements name endpoints — a path and a method, an OpenAPI file, curl examples, status codes, an auth section — Casely says so in the test plan, and after your approval it exports the API-level cases as a Postman collection alongside the Excel file.
casely_api_collection.postman_collection.json
The API cases as requests, grouped by module, schema v2.1.
casely_api_environment.postman_environment.json
Every variable the run needs, empty, secrets typed as secrets.
casely_api_collection_README.md
Import, fill in, run, read the results, plus a Newman command for CI.
Everything is a variable
Base URL, tokens, and entity ids come out as {{baseUrl}}, {{authToken}}, and named ids. Fill them in once and the same file runs against dev, staging, or CI. The value a case is actually testing, like amount 50001, stays literal, because that is the point of the case.
No credentials in the file
The build fails on anything shaped like a JWT or a secret key, so the collection is safe to commit next to the test cases. Secrets stay in the environment file, or come from your CI secret store.
Assertions from the expected result
Status code, response fields, error codes: one assertion per thing the requirement promises, generated rather than hand-typed. Requests are named after the cases, so a red run maps to a row in the Excel file without a lookup.
No endpoints, no collection
If the spec names screens and flows but no paths, Casely asks for the API docs instead of guessing an endpoint that 404s on the first run.
Run it in the Postman Collection Runner, or in CI:
newman run exports/casely_api_collection.postman_collection.json \
-e exports/casely_api_environment.postman_environment.json \
--env-var "authToken=$API_TOKEN"Model choice
Pick Opus. The plan phase decides what gets tested at all, and smaller models miss the holes in the spec that Opus catches before a single case gets written.