# Tmux Real User Testing

Should be used when the user asks to "用 tmux 做真实测试", "保存 tmux 日志", "像真实用户一样测试 Qwen"...

- Repository: https://github.com/QwenLM/qwen-code (28858 stars)
- Category: Testing
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add QwenLM/qwen-code --skill tmux-real-user-testing -g -a claude-code -y`
Codex: `npx skills add QwenLM/qwen-code --skill tmux-real-user-testing -g -a codex -y`
Cursor: `npx skills add QwenLM/qwen-code --skill tmux-real-user-testing -g -a cursor -y`
Gemini CLI: `npx skills add QwenLM/qwen-code --skill tmux-real-user-testing -g -a gemini-cli -y`

## Description

This skill should be used when the user asks to "用 tmux 做真实测试", "保存 tmux 日志", "像真实用户一样测试 Qwen", "生成可复查的 TUI 测试报告", "测试 slash command 交互", or requests a tmux-based real user E2E run with complete readable logs. It guides real TUI usage with step-by-step capture-pane snapshots rather than ANSI raw pipe logs.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# tmux Real User Testing

Run Qwen Code in a real tmux TUI session as a user would: navigate dialogs,
trigger slash commands, exercise workflows, and save a readable log that
maintainers can review. Prefer this workflow when the goal is not just a pass/fail
assertion, but a narrative artifact showing what happened on screen.

## Core principle

Use tmux as a real-use harness. Drive the TUI with realistic keyboard actions,
then save a step-by-step readable transcript with `tmux capture-pane -p` after
each meaningful state change.

Avoid relying on `tmux pipe-pane` as the primary report. `pipe-pane` captures raw
ANSI/control streams from React Ink TUI output and often looks like garbled text
when opened as plain text. Use `pipe-pane` only as an optional forensic artifact. Make
`tmux-readable-full.log` the main deliverable.

## When to use

Use this workflow for:

- TUI behavior, rendering, dialogs, keyboard navigation, slash commands, or auth
  flows.
- Realistic workflows where a maintainer wants to read the journey afterward.
- Regression testing where final state is insufficient and intermediate screens
  matter.
- User-facing flows such as `/auth`, `/model`, `/manage-models`, MCP setup,
  permissions, onboarding, or interactive error recovery.

Use headless JSON E2E instead when only tool execution or model API behavior
needs structured assertions.

## Standard artifact layout

Create a timestamped directory under project `tmp/`:

```text
tmp/<scenario>-tmux-YYYYMMDD-HHMMSS/
├── tmux-readable-full.log   # primary report: step-by-step readable snapshots
├── tmux-final-capture.log   # final screen only
├── current-pane.txt         # latest poll/snapshot scratch file
└── report.md                # short summary with result and artifact pointers
```

Do not overwrite previous runs. Preserve complete logs unless the user explicitly
asks to sanitize or trim them.

## Recommended helper script

The rest: https://github.com/QwenLM/qwen-code/blob/HEAD/.qwen/skills/tmux-real-user-testing/SKILL.md
