automatically control and record tui application sessions from the terminal
93
94%
Does it follow best practices?
Impact
89%
4.45xAverage score across 3 eval scenarios
Risky
Do not use without reviewing
{
"context": "Tests whether the agent uses the --record and --record-path flags correctly to produce an asciicast v2 recording, uses --json flag, follows daemon lifecycle, and properly kills the session to finalize the recording.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Uses --json flag",
"description": "The `virtui run` command includes --json or -j flag",
"max_score": 8
},
{
"name": "Daemon status check",
"description": "Script checks daemon status with `virtui daemon status` before creating any session",
"max_score": 8
},
{
"name": "Daemon started if needed",
"description": "Script conditionally starts the daemon with `virtui daemon start` if not running",
"max_score": 7
},
{
"name": "--record flag used",
"description": "The `virtui run` command includes the `--record` flag to enable session recording",
"max_score": 15
},
{
"name": "--record-path set correctly",
"description": "The `--record-path` flag is used and set to `./demo/onboarding.cast` (or equivalent relative path that results in that location)",
"max_score": 15
},
{
"name": "Output directory created",
"description": "Script creates the `demo/` directory before running virtui (e.g. via `mkdir -p demo`)",
"max_score": 7
},
{
"name": "Session ID captured",
"description": "The session_id from the `run` command is captured and used in subsequent commands",
"max_score": 8
},
{
"name": "Session killed to finalize",
"description": "Script kills the session with `virtui kill <session_id>` — required to finalize/stop the recording",
"max_score": 15
},
{
"name": "Cast file exists",
"description": "The file `demo/onboarding.cast` exists after the script runs",
"max_score": 7
},
{
"name": "Daemon stopped",
"description": "Script runs `virtui daemon stop` after all work is complete",
"max_score": 5
},
{
"name": "Pipeline or type+press used",
"description": "Interaction commands use pipeline or type+press steps rather than bare exec (to ensure Enter is sent reliably)",
"max_score": 5
}
]
}