Pairwise Coverage
Powered by Microsoft PICT. Reduce thousands of combinations to a minimal high-coverage set — typically a 40–70% reduction with no loss of pairwise coverage.
A keyboard-driven terminal UI for generating PICT pairwise combinatorial test cases. Define parameters, add constraints, let the AI help — then export to CSV, JSON, or Excel in seconds.
Everything you need to generate comprehensive test coverage without the busywork.
Powered by Microsoft PICT. Reduce thousands of combinations to a minimal high-coverage set — typically a 40–70% reduction with no loss of pairwise coverage.
Describe your feature in plain English. Claude AI identifies test parameters, values, and constraints automatically — no manual model building needed.
Three-tab interface — Model, Options, Results — fully navigable by keyboard. No mouse required. Single-keypress actions for every operation.
Save results as plain TXT, JSON, CSV, or native XLSX. Press s once — the format you chose in Options is applied instantly.
Single self-contained binary for Linux and Windows. No runtime, no installer, no package manager. Download and run.
Tokyo Night Dark, Tokyo Night Storm, Catppuccin Mocha. Cycle with t. All settings — theme, output format, model storage path — persist across sessions automatically.
Four views of the app — click the tabs to explore each screen.
pairwise-tui ──────────────────────────────────────────────────────────────────── [1] Model [2] Options [3] Results ┌ Parameters ───────────────────────┐┌ Values: OS ──────────────────────────┐ │ > OS Windows,Linux,m...││ Comma-separated values: │ │ Browser Chrome,Firefox,S...││ Windows, Linux, macOS │ │ Language EN, DE, FR ││ │ │ ││ 3 values: Windows Linux macOS │ │ ││ │ └───────────────────────────────────┘└─────────────────────────────────────┘ ┌ Constraints ─────────────────────────────────────────────────────────────┐ │ IF [OS] = "Linux" THEN [Browser] <> "Safari"; │ └──────────────────────────────────────────────────────────────────────────┘ [a] Add [d] Del [e] Edit values [c] Constraints [g] Generate [?] Docs [q] Quit
pairwise-tui ──────────────────────────────────────────────────────────────────── [1] Model [2] Options [3] Results Output Configuration Output file path: ./results.csv Format: CSV [Enter] cycle: txt / json / csv / xlsx PICT Options Combination order: 2 (1–6, default: 2 = pairwise) Randomize: ○ OFF [Enter] toggle Case sensitive: ○ OFF [Enter] toggle Model Storage Storage path: ./ File template: model_{timestamp} AI Settings AI Model: claude-haiku-4-5 [Enter] cycle model ──────────────────────────────────────────────────────────────────── [Tab] Next field [Esc] Unfocus [g] Generate [w] Save model [q] Quit
pairwise-tui ──────────────────────────────────────────────────────────────────── [1] Model [2] Options [3] Results ✓ 18 test cases (3 parameters — OS × Browser × Language) OS Browser Language ────────────────────────────────────── Windows Chrome EN Linux Firefox DE macOS Safari FR Windows Firefox FR Linux Chrome FR macOS Chrome DE Windows Safari DE Linux Safari EN macOS Firefox EN Windows Chrome DE Linux Firefox EN macOS Safari EN ... ──────────────────────────────────────────────────────────────────── [↑↓] Scroll [s] Save results [m] Log [t] Theme [q] Quit
pairwise-tui ──────────────────────────────────────────────────────────────────── [1] Model [2] Options [3] Results ┌───────────────────────────────────────────────────────────┐ │ AI Parameter Generator — claude-haiku-4-5 │ │ │ │ Describe your test scenario: │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ Login form with email (valid/invalid/empty), │ │ │ │ password strength (weak/strong/empty), │ │ │ │ remember-me checkbox. Test on Chrome/Firefox/Edge. │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ Tip: paste a feature spec, user story, or brief desc. │ │ │ │ [Ctrl+G] Generate [F2] Setup [Esc] Cancel │ └───────────────────────────────────────────────────────────┘
From download to your first test cases in under two minutes.
Head to the Releases page and grab the executable for your OS. No installer needed — it's a single file.
Give the binary execute permission:
chmod +x pairwise-tui
./pairwise-tui
Windows: double-click pairwise-tui.exe
or run it from PowerShell.
Press a to add a parameter. Enter a name (e.g. Browser),
then press Tab to move to the values field and type
comma-separated values (e.g. Chrome, Firefox, Safari).
Repeat for each test dimension.
Press g from any tab. PICT runs instantly and the Results tab shows your minimal pairwise test suite.
Choose your format in Options (2 → Format field → Enter to cycle), then press s to save. Done.
Every action is one keypress away. Click a group to expand.
| g | Generate test cases (run PICT) |
| s | Save results to output file |
| w | Save current model to storage |
| o | Open a saved model (file picker) |
| 1 / 2 / 3 | Switch to Model / Options / Results tab |
| [ / ] | Previous / next tab (cycle) |
| t | Cycle through color themes |
| m | Open message log overlay |
| i | Open AI prompt (or AI setup if no key configured) |
| F2 | Open AI setup overlay |
| ? | Open built-in PICT documentation |
| q / Ctrl+C | Quit application |
| a | Add new parameter |
| d | Delete selected parameter |
| e | Edit values for selected parameter |
| c | Jump to constraints editor |
| x | Clear entire model (with confirmation) |
| ↑ / ↓ | Navigate parameter list |
| Tab | Switch to values / constraints panel |
| Esc | Cancel / return to parameters panel |
| Tab | Focus next field |
| Enter | Toggle or cycle current field (format, randomize, AI model…) |
| Esc | Unfocus current field |
| ↑ / ↓ | Scroll through test cases |
| s | Save results to file |
| ↑ / ↓ | Navigate entries / chapters |
| c (log) | Copy selected entry to clipboard |
| a (log) | Copy all log entries to clipboard |
| Ctrl+G (AI) | Generate parameters from description |
| Enter (docs/picker) | Open selected chapter / file |
| Esc / m | Close overlay |
Describe your feature. Claude builds the model.
Instead of manually listing every parameter and value, press i and describe your test scenario in plain English. The AI identifies the key test dimensions, suggests 2–6 values for each, and adds PICT constraints where logical dependencies exist.
~/.config/pairwise-tui/credentials.json
You can also set the ANTHROPIC_API_KEY environment variable — it takes precedence over the stored key.
| Model | Speed | Best for |
|---|---|---|
| claude-haiku-4-5 | Fastest ⚡ | Quick parameter sketches (default) |
| claude-sonnet-4-6 | Balanced | Most scenarios |
| claude-opus-4-6 | Thorough | Complex domain models |
Models are saved as plain text files compatible with the PICT engine.
Each line defines a parameter with a colon-separated list of values.
Constraints use IF / THEN rules
with comparison operators. Press w to save and o to reload.
OS: Windows, Linux, macOS Browser: Chrome, Firefox, Safari Language: EN, DE, FR APIVersion: v1, v2 IF [OS] = "Linux" THEN [Browser] <> "Safari"; IF [APIVersion] = "v1" THEN [Browser] <> "Chrome";