Terminal · Pairwise testing · PICT

pairwise-tui
Generate pairwise test cases
with PICT

Build PICT models, add constraints, generate pairwise and combinatorial test cases, and export results from a fast keyboard-driven terminal UI for Linux and Windows.

  • PICT-powered
  • Linux + Windows binaries
  • TXT, JSON, CSV, XLSX export

Built for fast pairwise test design

Move from test idea to high-coverage cases faster, with less manual modeling and less repetitive setup.

Shrink huge test spaces fast

Powered by Microsoft PICT. Turn thousands of possible combinations into a compact, high-coverage test set so you can test more intelligently in less time.

Start from a plain-English scenario

Describe the workflow you want to test and let Claude draft parameters, values, and constraints. You review the model, then generate with PICT.

Stay in flow with the keyboard

Build models, switch tabs, generate cases, and save results without leaving the keyboard. The entire workflow is optimized for fast iteration.

Ship results where your team works

Export finished test cases as TXT, JSON, CSV, or XLSX so they are ready for spreadsheets, test management tools, and automation workflows.

Download and run in seconds

Use a single self-contained binary on Linux or Windows. No runtime, installer, or package manager required.

Keep your setup between sessions

Themes, output format, and model storage settings persist automatically, so you can reopen the app and continue working without reconfiguration.

See it in action

Four views of the app — click the tabs to explore each screen.

pairwise-tui — Model
 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

Getting Started

Go from download to your first shareable pairwise test suite with only a few quick steps.

  1. Download the binary

    Head to the Releases page and grab the executable for your OS. No installer needed, no extra runtime, and no setup wizard.

  2. Make it executable Linux only

    On Linux, grant execute permission once:

    chmod +x pairwise-tui
  3. Launch pairwise-tui

    ./pairwise-tui

    Windows: double-click pairwise-tui.exe or run it from PowerShell.

  4. Define the test dimensions

    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 dimension you want covered in the final test suite.

  5. Generate the test suite

    Press g from any tab. PICT runs immediately and the Results tab shows a compact, high-coverage pairwise test suite you can review or export.

  6. Export results

    Choose your format in Options (2 → Format field → Enter to cycle), then press s to save. Done.

Keyboard Shortcuts

Every action is one keypress away. Click a group to expand.

Global — available in all tabs
gGenerate test cases (run PICT)
sSave results to output file
wSave current model to storage
oOpen a saved model (file picker)
1 / 2 / 3Switch to Model / Options / Results tab
[ / ]Previous / next tab (cycle)
tCycle through color themes
mOpen message log overlay
iOpen AI prompt (or AI setup if no key configured)
F2Open AI setup overlay
?Open built-in PICT documentation
q / Ctrl+CQuit application
Model tab — Parameters panel
aAdd new parameter
dDelete selected parameter
eEdit values for selected parameter
cJump to constraints editor
xClear entire model (with confirmation)
/ Navigate parameter list
TabSwitch to values / constraints panel
EscCancel / return to parameters panel
Options tab
TabFocus next field
EnterToggle or cycle current field (format, randomize, AI model…)
EscUnfocus current field
Results tab
/ Scroll through test cases
sSave results to file
Overlays — Message log, AI, Documentation, File picker
/ 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 / mClose overlay

AI-Powered Parameter Generation

Draft test parameters faster, then review and generate with PICT.

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.

Setup (one-time)

  1. Get an API key from console.anthropic.com
  2. Press F2 in pairwise-tui to open AI Setup
  3. Paste your key and press Enter
  4. Key is saved to ~/.config/pairwise-tui/credentials.json

You can also set the ANTHROPIC_API_KEY environment variable — it takes precedence over the stored key.

Available Models

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

PICT Model Format

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.

model_2025-04-01.txt
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";