← 开源
qawolf

cli

QA Wolf from anywhere — your terminal, your CI, your AI agent.

ApplicationsProductivitySpecialistsTypeScript
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
3.46k
Star
147
Fork
+1
本周
17
贡献者
创建于 2019-09-17 · 更新于 2026-10-16 · 今日第 7941 名
主要开发者

qawolf/cli 排名第 7,941,有 3,455 个星标。

同类别比较

qawolf/cli 排名第 7,941,此处有 8 个同类条目;entropy-research/Devon 排名第 7,947。

同类别比较
名称排名指标
superagent-ai/grok-cli7,911
语言:
TypeScript
星标数:
3,496
分叉数:
430
简介:
An open-source coding agent for the Grok API
JusticeRage/Gepetto7,918
语言:
Python
星标数:
3,487
分叉数:
331
简介:
IDA plugin which queries language models to speed up reverse-engineering
mshumer/Claude-of-Duty7,928
语言:
JavaScript
星标数:
3,469
分叉数:
524
简介:
A Call of Duty-quality FPS in Three.js, built from a single prompt.
Kedreamix/Linly-Talker7,930
语言:
Python
星标数:
3,467
分叉数:
544
简介:
Digital Avatar Conversational System - Linly-Talker. 😄✨ Linly-Talker is an intelligent AI system that combines large language models (LLMs) with visual models to create a novel human-AI interaction method. 🤝🤖 It integrates various technologies like Whisper, Linly, Microsoft Speech Services, and SadTalker talking head generation system. 🌟🔬
entropy-research/Devon7,947
语言:
Python
星标数:
3,449
分叉数:
282
简介:
Devon: An open-source pair programmer
gencay/vscode-chatgpt7,948
语言:
TypeScript
星标数:
3,448
分叉数:
702
简介:
An unofficial Visual Studio Code - OpenAI ChatGPT integration
srcbookdev/srcbook7,952
语言:
TypeScript
星标数:
3,437
分叉数:
311
简介:
TypeScript notebook
makegirlsmoe/makegirlsmoe_web7,961
语言:
JavaScript
星标数:
3,413
分叉数:
308
简介:
Create Anime Characters with MakeGirlsMoe
关键参数与规格
关键参数与规格
参数值
语言TypeScript
类别Applications
子类别Productivity,Specialists
关键词Automated testing, DevOps, Terminal
星标数3,455
分叉数147
贡献者17
创建日期2019-09-17
更新日期2026-10-16
1 天星标数0
7 天星标数1
排名7,941
上次排名8,047
排名变化106
7 天星标排名9,183
上次 7 天星标排名9,248
7 天星标排名变化65
总星标排名3,969
上次总星标排名3,962
总星标排名变化-7
README 摘录

QA Wolf CLI Run QA Wolf flows from your terminal or in CI. Flow creation, AI-powered test generation, managed cloud execution, and team collaboration are part of the full QA Wolf platform. Install Try it without installing: Supported Node versions: Node 24. The comes from the QA Wolf dashboard under **Settings → Environments**. runs your team's flows from the local cache (a per-environment copy of your flows on disk), pulling them first only if they are not already cached

locally and installing the runtime dependencies they need. To refresh the local cache, run ; to author flows locally without the platform, run first. prints the help of a command and of every command under it, as Markdown. Investigate a run attempt Start with a run ID, pick an attempt ID from its failed flows, then narrow the evidence only when the summary points to it: requires exactly one of , , , , , , , or . Use with or to return exactly that one evidence record

; the other filters are listed in . Snapshot HTML can be returned directly or written to a new file. The CLI refuses to overwrite an existing path: The trace and logs are downloaded from the signed links returns and parsed on your machine. Downloads, output text, HTML, request bodies, and log retention are bounded; , , , and artifact status fields describe evidence that could not be read in full. Agent integration This repository ships a Agent Skill that follows the open Agent Skills

specification. It works with compatible harnesses such as Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, and OpenCode. Install the CLI first, then use the cross-harness installer to install the skill globally: The installer detects supported harnesses and prompts you to select where to install the skill. To target specific harnesses non-interactively: Omit to install the skill only for the current project. The skill also ships in the npm package for consumers that manage skill files directly. The

skill is generated from its source template and the command tree ( ), and kept in sync by the test suite. Runner SDK Drive interactive runners from TypeScript instead of spawning commands. Every verb names the runner it addresses, so nothing is launched or billed implicitly. reports a request failure, including transport, auth, or local validation. A runner that refused the request comes back as with an outcome and from the published contract, so a caller can switch on it exhaustively. Most

verbs expose ; recording controls expose and a history . Control video recording on a Playwright runner after a flow has started its screen: also accepts and (or ). Keep the UUID when retrying start or stop. accepts optional and filters and returns one page, with stable platform URLs and expiring video URLs. The equivalent CLI commands are and ; see the runner reference. To report a bug or request a feature, open an issue on GitHub. Security To report a vulnerability, see SECURITY

.

常见问题

记录了多少星标和分叉?

qawolf/cli 有 3,455 个星标和 147 个分叉。

仓库排名是多少?

qawolf/cli 排名第 7,941。

记录的语言和类别是什么?

qawolf/cli 有 3,455 个星标,语言为 TypeScript,类别为 Applications。

哪个仓库排名最接近?

qawolf/cli 与 entropy-research/Devon 比较,后者排名第 7,947,有 3,449 个星标。

README

QA Wolf CLI

Run QA Wolf flows from your terminal or in CI.

The CLI runs and manages flows locally. Flow creation, AI-powered test generation, managed cloud execution, and team collaboration are part of the full QA Wolf platform. See docs.qawolf.com for the full docs, or qawolf.com to get started.

Install

npm install -g @qawolf/cli
# or: pnpm add -g @qawolf/cli
# or: yarn global add @qawolf/cli
# or: bun add -g @qawolf/cli

Try it without installing:

npx @qawolf/cli --help

Supported Node versions: Node 24.14.1+.

Standalone binaries

Precompiled binaries are attached to each GitHub Release — no Node.js required: qawolf-linux-x64, qawolf-linux-arm64, qawolf-darwin-x64, qawolf-darwin-arm64, and qawolf-windows-x64.exe.

curl -fsSL -o qawolf https://github.com/qawolf/cli/releases/latest/download/qawolf-darwin-arm64
chmod +x qawolf && ./qawolf --help

Quick start

You need a QA Wolf account — sign up at qawolf.com. The `` comes from the QA Wolf dashboard under Settings → Environments.

qawolf auth login                  # or set QAWOLF_API_KEY for CI
qawolf flows run --env 

qawolf flows run --env runs your team's flows from the local .qawolf/ cache (a per-environment copy of your flows on disk), pulling them first only if they are not already cached locally and installing the runtime dependencies they need. To refresh the local cache, run qawolf flows pull --env ; to author flows locally without the platform, run qawolf init first.

Examples

The examples/ directory contains sample flows you can run directly:

qawolf install   # one-time: install the browser runtime
qawolf flows run examples/example.flow.ts

Commands

Command What it does
qawolf auth Authenticate with QA Wolf
qawolf flows Run flows locally, pull flows
qawolf run Trigger and manage QA Wolf runs on the platform (public API)
qawolf attempt Summarize and inspect a finished run attempt's trace and logs
qawolf install Install runtime dependencies
qawolf init Set up a local-only project
qawolf doctor Diagnose problems

Run any command with --help for its flags and options. qawolf help ref prints the help of a command and of every command under it, as Markdown.

Investigate a run attempt

Start with a run ID, pick an attempt ID from its failed flows, then narrow the evidence only when the summary points to it:

qawolf run get --run-id  --flow-statuses failed
qawolf attempt investigate --attempt-id 
qawolf attempt inspect --attempt-id  --timeline --limit 20
qawolf attempt inspect --attempt-id  --request 

attempt inspect requires exactly one of --action, --timeline, --network, --request, --snapshot, --screenshot, --console, or --log. Use --evidence-id with --console or --log to return exactly that one evidence record; the other filters are listed in qawolf attempt inspect --help.

Snapshot HTML can be returned directly or written to a new file. Screenshots require a file. The CLI refuses to overwrite an existing path:

qawolf attempt inspect --attempt-id  --snapshot  --format html
qawolf attempt inspect --attempt-id  --snapshot  --format html --output-file snapshot.html
qawolf attempt inspect --attempt-id  --screenshot  --output-file screenshot.jpeg

The trace and logs are downloaded from the signed links qawolf attempt get returns and parsed on your machine. Downloads, output text, HTML, request bodies, and log retention are bounded; incomplete, truncated, malformed, and artifact status fields describe evidence that could not be read in full.

Agent integration

This repository ships a qawolf-cli Agent Skill that follows the open Agent Skills specification. It works with compatible harnesses such as Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, and OpenCode.

Install the CLI first, then use the cross-harness skills installer to install the skill globally:

npm install -g @qawolf/cli
npx skills add qawolf/cli --skill qawolf-cli --global

The installer detects supported harnesses and prompts you to select where to install the skill. To target specific harnesses non-interactively:

npx skills add qawolf/cli \
  --skill qawolf-cli \
  --global \
  --agent claude-code \
  --agent codex \
  --yes

Omit --global to install the skill only for the current project. The skill also ships in the npm package for consumers that manage skill files directly.

The skill is generated from its source template and the command tree (bun run generate), and kept in sync by the test suite.

Runner SDK

Drive interactive runners from TypeScript instead of spawning commands. Every verb names the runner it addresses, so nothing is launched or billed implicitly.

import { createRunnerSdk } from "@qawolf/cli/runner-sdk";

const runner = createRunnerSdk({ apiKey: process.env.QAWOLF_API_KEY });

await runner.launch({ id: "agent-1", runnerFamily: "default" });

const submitted = await runner.run({
  entryPointPath: "src/flows/smoke.flow.ts",
  environment: "ambient",
  runnerId: "agent-1",
  selection: "whole-flow",
});
if (submitted.ok) console.log(submitted.value.runId, submitted.value.fileSync);

ok: false reports a request failure, including transport, auth, or local validation. A runner that refused the request comes back as ok: true with an outcome and failureReason from the published contract, so a caller can switch on it exhaustively. Most verbs expose value.outcome; recording controls expose value.result.outcome and a history value.url.

Control video recording on a Playwright runner after a flow has started its screen:

const recordingId = crypto.randomUUID();
const recording = await runner.record({
  runnerId: "agent-1",
  command: { action: "start", recordingId },
});
if (recording.ok && recording.value.result.outcome === "success") {
  // Drive the browser, then stop this specific capture.
  await runner.record({
    runnerId: "agent-1",
    command: { action: "stop", recordingId },
  });
}

// History remains readable after the runner terminates.
const history = await runner.listRecordings({ runnerId: "agent-1" });
if (history.ok)
  console.log(history.value.recordings, history.value.nextPageToken);

record also accepts { action: "status" } and { action: "auto", enabled: true } (or false). Keep the UUID when retrying start or stop. listRecordings accepts optional recordingId and pageToken filters and returns one page, with stable platform URLs and expiring video URLs. The equivalent CLI commands are qawolf runner record start|stop|status|auto and qawolf runner list-recordings; see the runner reference.

Reference

Contributing

See CONTRIBUTING.md for development setup. To report a bug or request a feature, open an issue on GitHub.

Security

To report a vulnerability, see SECURITY.md.

License

Apache-2.0

排名相邻
同类项目