qai cxp with no subcommand launches the interactive TUI.
Commands
| Command | Description |
|---|---|
| (no subcommand) | Launch the interactive TUI |
formats | List supported assistant formats |
generate | Generate a poisoned test repository |
validate | Validate captured output against detection rules |
record | Record a test result into the evidence store |
campaigns | List campaigns and results |
report | Generate comparison matrices and PoC packages |
Interactive TUI
- Format Selection — Choose the target assistant format
- Rule Selection — Browse the catalog, toggle rules, or add freestyle rules
- Preview — See the assembled context file with inserted rules highlighted
- Generate — Build the test repo, view prompt reference suggestions
- Record — Store test results with validation
formats
List supported assistant formats.generate
Generate a poisoned test repository.Options
| Option | Type | Default | Description |
|---|---|---|---|
--format | TEXT | cursorrules | Target format ID |
--rule | TEXT | — | Rule ID(s) to insert (repeatable) |
--output-dir | PATH | ./repos | Output directory |
--repo-name | TEXT | webapp-demo-01 | Repo directory name |
Examples
validate
Validate captured output against detection rules.Options
| Option | Type | Default | Description |
|---|---|---|---|
--result | TEXT | — | Stored result ID to validate |
--technique | TEXT | — | Technique ID (for file validation) |
--file | PATH | — | Path to file(s) to validate |
--db | PATH | ~/.qai/cxp.db | Database path |
Examples
record
Record a test result into the evidence store.Options
| Option | Type | Required | Default | Description |
|---|---|---|---|---|
--technique | TEXT | Yes | — | Technique ID (or format_id for v0.2.0 builds) |
--assistant | TEXT | Yes | — | Assistant under test |
--trigger-prompt | TEXT | Yes | — | Prompt used to trigger |
--file | PATH | No | — | Path to assistant-generated code file(s) |
--output-file | PATH | No | — | Path to saved chat output file |
--campaign | TEXT | No | — | Existing campaign ID |
--model | TEXT | No | — | Underlying model name |
--notes | TEXT | No | — | Researcher observations |
--db | PATH | No | ~/.qai/cxp.db | Database path |
Examples
campaigns
List campaigns and results.Arguments
| Argument | Description |
|---|---|
CAMPAIGN_ID | Optional — show results for a specific campaign |
Options
| Option | Type | Default | Description |
|---|---|---|---|
--db | PATH | ~/.qai/cxp.db | Database path |
Examples
report
Generate comparison matrices and PoC packages.report matrix
Generate an assistant comparison matrix showing which rules succeeded or failed across assistants.| Option | Type | Default | Description |
|---|---|---|---|
--campaign | TEXT | — | Filter to specific campaign |
--format | TEXT | markdown | Output format |
--output | PATH | — | Write to file instead of stdout |
--db | PATH | ~/.qai/cxp.db | Database path |
report poc
Export a bounty-ready PoC package containing the poisoned file, trigger prompt, captured output, and validation results.| Option | Type | Required | Default | Description |
|---|---|---|---|---|
--result | TEXT | Yes | — | Test result ID to package |
--output | PATH | No | ./poc-{technique}.zip | Output zip path |
--db | PATH | No | ~/.qai/cxp.db | Database path |