Overview
Command-line interface for QA Sphere — install, authenticate, upload results, and access the public API
The QA Sphere CLI (qasphere, published as the qas-cli npm package) is the official command-line interface for QA Sphere. It exposes the full public API and supports four primary workflows:
- Ad-hoc terminal use — run
qasphere api <resource> <action>commands to inspect or change QA Sphere state. Every command prints JSON to stdout for easy piping into tools likejq. See Public API. - Scripts and CI/CD automation — orchestrate projects, folders, test cases, milestones, runs, and results from shell scripts and pipelines. See CI/CD Integrations.
- Test result uploads — push JUnit XML, Playwright JSON, and Allure result directories at the end of an automated run. See Result Upload.
- AI coding agents — a bundled skill lets Claude Code, Cursor, and similar agents drive QA Sphere through the CLI in natural language. See Agent Skill.
Open source
qas-cli is open source: github.com/Hypersequent/qas-cli. Track development, report issues, and contribute on GitHub.
Installation
Requirements
Node.js 22.0.0 or higher. No other runtime is needed — the CLI works alongside Python, Go, Java, or any other test stack.
Installing Node.js
If you don't already have Node.js, install it via your system package manager:
- macOS:
brew install node - Ubuntu/Debian:
sudo apt install nodejs npm - Windows / other: download from nodejs.org
Via npm (global)
npm install -g qas-cliVerify:
qasphere --versionUpdate later with:
npm update -g qas-cliVia npx
npx qas-cli <command>On first use you'll be prompted to download the package. npx qas-cli works in every context the qasphere command does.
Verify:
npx qas-cli --versionnpx caching
npx caches packages. To force the latest version, run npx clear-npx-cache
(or pin a specific version, e.g. npx qas-cli@0.5.0).
Shell completion
The CLI ships with tab completion for commands and options. Append the completion script to your shell profile:
Zsh:
qasphere completion >> ~/.zshrcBash:
qasphere completion >> ~/.bashrcRestart your shell (or source the profile) and pressing Tab will autocomplete commands and flags.
Rate limits
The QA Sphere API allows 20 requests per second per user, shared across all of that user's
API keys and OAuth authorizations. Exceeding it returns 429 Too Many Requests. See
API Rate Limiting for the full set of limits.
The CLI handles this for you. On a 429 it waits and retries automatically, honoring the
Retry-After header the API sends and otherwise backing off exponentially — up to 5 retries
over roughly 30 seconds. Result uploads are also deliberately paced: attachments upload at most
3 batches at a time, and results are posted in sequential batches rather than all at once. A
normal upload, even one with thousands of results, stays well under the limit.
Upgrade if you are on an older version
Automatic retry on 429 was added in v0.8.0. On v0.7.0 and earlier the CLI fails
immediately when rate limited, which typically shows up as a failed upload step in CI. Check
your version with qasphere --version and upgrade with npm update -g qas-cli.
If you still hit rate limits on a current version, the usual cause is several CI jobs running concurrently under the same QA Sphere user. Because the limit is per user rather than per API key, adding more API keys will not help — give the parallel jobs separate user accounts instead.
Where to next
- Auth — log in via OAuth or configure an API key.
- Public API — call the full QA Sphere REST API from the terminal.
- Result Upload — upload JUnit XML, Playwright JSON, or Allure results into a run. Framework guides and CI/CD examples live in the Integrations section.
- Agent Skill — register the CLI with Claude Code, Cursor, and other coding agents.
- CI/CD Integrations — wire the CLI into GitHub Actions, GitLab CI/CD, or Bitbucket Pipelines.