Skip to content

xeraYou write the ticket. Xera writes the test.

Yesterday that was your job β€” now it's one prompt. Hand a Jira or GitHub ticket to Claude, Cursor, or Codex; Xera writes the spec, runs it, classifies the failure, and posts the verdict back. A live knowledge graph catches breaking changes and surfaces coverage gaps before they ship.

xera knowledge graph
GitHub starsLicense: Apache 2.0@xera-ai/cli on npmCI statusGood first issues

See it in one line ​

bash
> /xera-run SAMPLE-001
# Reads the acceptance criteria β†’ writes Gherkin + Playwright β†’ runs the test
# β†’ classifies the failure β†’ posts the diagnosis back to Jira or GitHub.

That's the whole loop. Swap SAMPLE-001 for JIRA-123 or GH-42 and Xera works against your real tracker. See it run on FlowBoard β†’

Quickstart ​

bash
npm install -g @xera-ai/cli         # install once globally; or use npx

mkdir my-tests && cd my-tests
xera init                       # interactive: shape + tracker + ~5 prompts
# or fully non-interactive (GitHub Issues, no token required):
xera init -y --shape web --tracker github \
  --gr xera-ai/xera --su https://staging.example.com

cp .env.example .env            # fill in credentials
npm install
# Web shape only:
npx playwright install chromium
npx xera-internal auth-setup         # pre-authenticate roles

Then in your AI coding agent (Claude Code, Cursor, or Codex CLI):

> /xera-run SAMPLE-001          # web sample
> /xera-run SAMPLE-HTTP-001     # api sample
> /xera-run JIRA-123            # your first real ticket
> /xera-run GH-42               # …or a GitHub issue

Try it on a real app ​

Open in full screen β†—xera knowledge graph viewer β€” three FlowBoard tickets, their POMs, passing and failing scenarios, and failure classes around the peripheryTap to open the live knowledge graph β†—

There's a complete demo loop you can poke at without writing a single line of code or hosting an app:

RepoRole
xera-ai/xera-sample-appFlowBoard β€” the SUT. Full-stack project-management app (Fastify + React + SQLite, JWT auth, Swagger REST API, intentional security surfaces).
xera-ai/xera-sample-app-testsReference tests β€” a working xera consumer project pointed at FlowBoard. Look here for a real xera.config.ts, .xera/<TICKET>/ artifacts, shared POMs, and openapi.json.
xera-ai.github.io/xera-sample-app-testsLive knowledge graph β€” the actual .xera/graph.html viewer produced from the reference tests above. Click around: tickets ↔ scenarios ↔ POMs ↔ areas, Coverage tab (Map / List / Trend), failure classes.

Spin FlowBoard + the tests up locally:

bash
# 1. Bring FlowBoard up
git clone https://github.com/xera-ai/xera-sample-app
cd xera-sample-app && npm install && npm run dev:backend & npm run dev:frontend
# UI on http://localhost:5173, API on http://localhost:3000

# 2. Clone the reference tests in a sibling directory and run a ticket
cd .. && git clone https://github.com/xera-ai/xera-sample-app-tests
cd xera-sample-app-tests
cp .env.example .env && npm install && npx playwright install chromium
npx xera-internal fetch XFB-6 && npx xera-internal exec XFB-6

Or start from scratch with your own xera project pointed at the same FlowBoard:

bash
mkdir flowboard-tests && cd flowboard-tests
xera init -y --shape mixed --tracker github \
  --gr xera-ai/xera-sample-app \
  --su http://localhost:5173 \
  --au http://localhost:3000

Pair /xera-run with /xera-explore

FlowBoard's intentional surfaces (stored XSS, JWT edge cases, file upload risks, SQL injection points) are exactly the territory the experimental /xera-explore skill brainstorms:

> /xera-run <TICKET>      # AC-driven happy path β†’ test.feature
> /xera-explore <TICKET>  # negative / boundary / race / a11y / security-smell β†’ explore.feature

/xera-explore writes to a separate explore.feature (tagged @adversarial) so PO review of test.feature stays undisturbed.

What you get out of the box ​

SkillWhat it does
/xera-run <TICKET>Full pipeline end-to-end (auto-checks impact after fetch)
/xera-fetch <TICKET>Pull story from Jira or GitHub Issues; extract modified SUT areas
/xera-feature <TICKET>Generate Gherkin (or --from-spec to generate from an OpenAPI doc with no ticket)
/xera-script <TICKET>Generate Playwright spec + page objects
/xera-exec <TICKET>Run the test (supports --grep per-scenario)
/xera-report <TICKET>9-class classifier + post diagnosis to the tracker
/xera-impact <TICKET>Pre-flight: which existing scenarios may break?
/xera-coverageArea + AC-level coverage with risk weighting
/xera-fill-gap <area>AI-drafted Gherkin for UNCOVERED areas or unsatisfied ACs
/xera-explore <TICKET>Brainstorm negative / boundary / race / a11y scenarios
/xera-promote <TICKET> <POM>Move a POM to shared/

Roadmap ​

VersionStatusHighlights
v0.1 – v0.5βœ… shippedCore platform, Web adapter, eval harness (/xera-eval), prompt-injection defense, self-healing selectors
v0.6βœ… shippedProject knowledge graph, TEST_OUTDATED classifier, /xera-impact, HTML viewer + CI artifact
v0.7βœ… shippedHTTP API adapter (@xera-ai/http), pre-auth pattern, CONTRACT_DRIFT / RATE_LIMITED / AUTH_EXPIRED classifiers
v0.8βœ… shippedCoverage gap & AC matrix (/xera-coverage, /xera-fill-gap), release infra overhaul (changesets fixed group, auto-changeset from PR titles, xera-automation GitHub App)
v0.9βœ… shippedAdversarial exploration (/xera-explore, experimental, opt-in)
v0.10–v0.15βœ… shippedMulti-editor support (Claude / Cursor / Codex), cognitive AC extraction from Jira description, xera init --update --shape upgrade path, .d.ts declarations for all packages
v0.16βœ… shippedGitHub Issues tracker (xera init --tracker github, no token required), samples remove subcommand
v0.18βœ… shippedFeature-from-OpenAPI (/xera-feature --from-spec, no ticket needed), xera init scaffolds a root AGENTS.md
v0.19βœ… shippedWeb CONTRACT_DRIFT detection (opt-in xeraNetwork recorder) + self-heal that rewrites a spec.ts assertion to the OpenAPI contract
v1.0🚧 plannedStability commitment (semver from 1.0, frozen TestAdapter interface), public documentation site, cross-adapter graph linkage (endpoint as first-class graph node)
v1.xπŸ”­ planned/xera-sprint multi-ticket orchestration, production trace β†’ test backfill, hosted live dashboard (graph + coverage + disputes), messaging adapters (Kafka, AMQP, WebSocket), GraphQL, gRPC
v2.0πŸ”­ plannedOptional SaaS backend (only if multi-org demand)
FutureπŸ’‘ designed-forMobile, performance, and security adapters β€” the TestAdapter interface is built to accept them; no timeline or owner yet

Released under the Apache 2.0 License.

Released under the Apache 2.0 License.