Agent skill

Kon Tmux Test

by 0xku in 0xku/kon

E2E testing of kon using tmux sessions; IMPORTANT: only trigger this skill when user asks for e2e testing of kon

MITAuto-check passedTesting & QA

Install Kon Tmux Test

skills CLI
$ npx skills add 0xku/kon --skill kon-tmux-test -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install 0xku/kon kon-tmux-test --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/0xku/kon.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/kon-tmux-test .claude/skills/kon-tmux-test && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
kon-tmux-test
GitHub stars
354
Token cost
~2.8k tokens
SKILL.md length
972 words
Files
3
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

E2E testing of kon using tmux sessions; IMPORTANT: only trigger this skill when user asks for e2e testing of kon

  • This skill when user asks for e2e testing of kon
  • SKILL.md covers Why Tmux?, Test Design Philosophy, Quick Start and Test Scripts, plus 8 more sections
  • Runs Shell scripts from its folder; calls bash
  • Tasks that involve End-to-end testing

What it does

Kon Tmux Test is an agent skill from 0xku/kon. E2E testing of kon using tmux sessions; IMPORTANT: only trigger this skill when user asks for e2e testing of kon

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `run-e2e-tests.sh` and `setup-test-project.sh`).

It sits in Testing & QA, covering End-to-end testing. It works with tmux. The repository describes itself as: Kon is a minimal coding agent (and also a highly opinionated one). The licence is MIT.

When your agent uses it

  • This skill when user asks for e2e testing of kon
  • Tasks that involve End-to-end testing

Example prompts

  • “/kon-tmux-test”

Requirements

  • A Bash shell

What it can do on your machine

Read from SKILL.md and the folder at commit f5862a0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Kon Tmux Test loads about 2.8k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 972 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~32
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from 0xku/kon at commit f5862a0, republished under its MIT licence (© 0xku). 972 words, ~2,773 tokens.

Download SKILL.mdSave it as .claude/skills/kon-tmux-test/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
kon-tmux-test
description
E2E testing of kon using tmux sessions; IMPORTANT: only trigger this skill when user asks for e2e testing of kon

Kon Tmux E2E Testing

End-to-end testing of kon using tmux sessions to programmatically control the TUI application.

Why Tmux?

Kon is a TUI (Textual-based) app. Running tests programmatically is hard. Tmux provides:

  • tmux new-session - isolate test environment
  • tmux send-keys - send keyboard input
  • tmux capture-pane - capture output
  • tmux has-session - check if kon is running

Test Design Philosophy

  • Deterministic: Shell scripts create reproducible test environments
  • Isolated config: Tests run with HOME=/tmp/kon-e2e-home so runtime settings do not mutate the real user config; auth JSON files are copied into the temp HOME when present so provider startup still works
  • Separation of concerns: Shell script runs steps and captures output; kon/the reviewer evaluates results
  • Output-based evaluation: Test success/failure determined by reading output files, not shell script heuristics
  • UI-focused: Test triggers (@, /, runtime pickers, keybindings) by checking UI elements appear
  • Filesystem verification: Tool execution is verified through files under /tmp/kon-test-project

Quick Start

bash
# Run all e2e tests from the repo root
bash .agents/skills/kon-tmux-test/run-e2e-tests.sh

# Optional: keep the temporary HOME for debugging
KEEP_E2E_HOME=1 bash .agents/skills/kon-tmux-test/run-e2e-tests.sh

# Optional: override launch command/provider/model
KON_CMD='uv run kon --model gpt-5.5' \
  bash .agents/skills/kon-tmux-test/run-e2e-tests.sh

After running, read /tmp/kon-test-*.txt and evaluate the captured pane/config/filesystem outputs.

Test Scripts

Setup Script: setup-test-project.sh

Creates a deterministic test project structure at /tmp/kon-test-project/.

bash
bash .agents/skills/kon-tmux-test/setup-test-project.sh
Main Test Script: run-e2e-tests.sh

Runs comprehensive e2e tests including UI triggers, runtime controls, tab completion, and tool execution.

bash
bash .agents/skills/kon-tmux-test/run-e2e-tests.sh

Test Categories

UI Trigger Tests (LLM-independent)
  • / commands: Type /, verify slash command list appears with core and newer commands
  • @ file search: Type @pyproject, verify file picker appears with pyproject.toml
  • /model command: Type /model, verify model selector appears, then dismiss
  • /new command: Type /new, verify new conversation is started
  • /resume command: Type /resume, verify session list appears, then dismiss
  • /session command: Type /session, verify session info/statistics displayed
Runtime Mode Tests (LLM-independent)
  • /permissions picker: Shows prompt and auto, with current mode checked
  • /permissions auto/prompt: Info bar updates (✓✓ auto / ⏸ prompt) and temp config persists permissions.mode
  • Shift+Tab: Cycles permission mode and persists it in temp config
  • /thinking picker: Shows none, minimal, low, medium, high, xhigh, with current level checked
  • /thinking minimal: Info bar model/thinking area updates to minimal
  • Ctrl+Shift+T: Cycles thinking level in the info bar
  • /notifications picker: Shows on and off, with current mode checked
  • /notifications on/off: Status says saved and temp config persists notifications.enabled
  • Info bar row2 regression: Permission mode remains row2-left while model/provider/thinking remains row2-right after runtime changes
Tab Path Completion Tests (LLM-independent)
  • Unique match: Type pypr + Tab, verify completes to pyproject.toml
  • Multiple alternatives: Type src/kon/ui/s + Tab, verify floating list shows selection_mode.py, session_ui.py, styles.py
  • Nested unique file: Type src/kon/ui/widg + Tab, verify completes to src/kon/ui/widgets.py
  • Select from list: Type src/kon/ui/s + Tab + Enter, verify first completion is applied to input
Tool Execution Tests (Filesystem verification)
  • Write tool: Creates /tmp/kon-test-project/test1.txt, verified by file existence
  • Edit tool: Modifies test1.txt, verified by content changing from hello to world
  • List files: Shows directory contents in captured pane
  • Calculation: Computes 3+3, verified in LLM output where practical

Configuration

Edit or override environment variables for run-e2e-tests.sh:

bash
WAIT_TIME=30                    # Time for LLM to complete all tool tasks
COMMAND_WAIT_TIME=3             # Time for UI commands to settle
SESSION_NAME="kon-test"         # Tmux session name
TEST_DIR="/tmp/kon-test-project" # Test project directory for tool execution
TEST_HOME="/tmp/kon-e2e-home"    # Isolated HOME/config/session directory
KON_DIR="$PWD"                  # Kon repo directory for tab completion tests
KON_CMD="uv run kon --model gpt-5.5"
KEEP_E2E_HOME=0                 # Set to 1 to preserve temp HOME after run

Output Files

The main script writes captured outputs to /tmp/kon-test-*.txt:

  • /tmp/kon-test-1-commands.txt - / slash command list
  • /tmp/kon-test-2-at-trigger.txt - @pyproject file picker
  • /tmp/kon-test-3-model.txt - /model selector
  • /tmp/kon-test-4-new.txt - /new result
  • /tmp/kon-test-5-permissions-picker.txt - /permissions picker
  • /tmp/kon-test-6-permissions-auto.txt and ...-config.txt - /permissions auto
  • /tmp/kon-test-7-permissions-prompt.txt and ...-config.txt - /permissions prompt
  • /tmp/kon-test-8-permissions-shift-tab.txt and ...-config.txt - Shift+Tab mode cycling
  • /tmp/kon-test-9-thinking-picker.txt - /thinking picker
  • /tmp/kon-test-10-thinking-minimal.txt - /thinking minimal
  • /tmp/kon-test-11-thinking-cycle.txt - Ctrl+Shift+T thinking cycle
  • /tmp/kon-test-12-notifications-picker.txt - /notifications picker
  • /tmp/kon-test-13-notifications-on.txt and ...-config.txt - /notifications on
  • /tmp/kon-test-14-notifications-off.txt and ...-config.txt - /notifications off
  • /tmp/kon-test-15-tab-unique.txt - Tab completion unique match
  • /tmp/kon-test-16-tab-multiple.txt - Tab completion alternatives
  • /tmp/kon-test-17-tab-nested-unique.txt - Nested unique file completion
  • /tmp/kon-test-18-tab-select.txt - Tab completion selection
  • /tmp/kon-test-19-tools.txt - Tool execution turn
  • /tmp/kon-test-20-session.txt - /session stats
  • /tmp/kon-test-21-resume.txt - /resume session list
  • /tmp/kon-test-files.txt - Test project file listing
  • /tmp/kon-test-test1-content.txt - Final test1.txt content or FILE_NOT_FOUND
  • /tmp/kon-test-session-files.txt - Session JSONL paths under temp HOME
  • /tmp/kon-test-final-config.txt - Final temp config
Show full SKILL.md (403 more words)Show less

Key Tmux Gotchas

  • Use Escape not Esc: tmux recognizes Escape. Esc sends literal characters.
  • Always clear input between tests: Use Escape to dismiss completions, then C-u to clear text.
  • Completion selectors block input: Selectors intercept Enter/Escape; dismiss them before the next test.
  • Shift+Tab: The script sends CSI Z via Escape '[' 'Z' rather than relying on a tmux key name.
  • Ctrl+Shift+T: The script sends CSI-u Escape '[84;6u' because C-S-t often collapses to Ctrl+T.

Test Evaluation (by Kon/reviewer)

After running the test script, evaluate results by reading the output files.

What to Check

UI Trigger Tests:

  • / test: Slash command list includes themes, permissions, thinking, notifications, init, compact, handoff, export, copy, login, logout
  • @ test: File picker appears and shows pyproject.toml
  • /model test: Model selector appears with model list/current markers
  • /new test: Started new conversation appears
  • /resume test: Session list appears with prior sessions
  • /session test: Session info/statistics displayed

Runtime Mode Tests:

  • /permissions picker shows prompt and auto, current item checked
  • /permissions auto shows ✓✓ auto, saved status, and config has mode = "auto"
  • /permissions prompt shows ⏸ prompt, saved status, and config has mode = "prompt"
  • Shift+Tab toggles back to auto and config has mode = "auto"
  • /thinking picker shows none, minimal, low, medium, high, xhigh
  • /thinking minimal shows Thinking level changed to minimal and info bar row2-right includes minimal
  • Ctrl+Shift+T changes info bar thinking level from minimal to the next level
  • /notifications picker shows on and off, current item checked
  • /notifications on/off status says saved and config flips enabled = true/false
  • Permission mode remains in row2-left and model/provider/thinking remains row2-right

Tab Path Completion Tests:

  • pypr + Tab shows pyproject.toml
  • src/kon/ui/s + Tab shows selection_mode.py, session_ui.py, styles.py
  • src/kon/ui/widg + Tab shows src/kon/ui/widgets.py
  • src/kon/ui/s + Tab + Enter applies a selected completion

Tool Execution Tests:

  • /tmp/kon-test-project/test1.txt exists
  • /tmp/kon-test-test1-content.txt contains world
  • /tmp/kon-test-files.txt lists test1.txt
  • /tmp/kon-test-19-tools.txt shows relevant tool blocks/results
Tabular Report

Provide a summary showing:

  • Test name
  • Status (PASS/FAIL)
  • Description/failure reason
  • Overall success rate
IMPORTANT: Always offer the view command

After presenting the report, ALWAYS give the user this shell command so they can inspect raw captured outputs:

bash
for f in /tmp/kon-test-*.txt; do printf "\n\033[1;36m▶▶▶ %s\033[0m\n" "$f"; awk 'NF{found=1} found{lines[++n]=$0} END{while(n>0 && lines[n]=="") n--; for(i=1;i<=n;i++) print lines[i]}' "$f"; done

Cleanup

bash
# Test script auto-cleans tmux session and temp HOME unless KEEP_E2E_HOME=1.
# Output files remain for evaluation (/tmp/kon-test-*.txt).
# Manual cleanup if needed:
tmux kill-session -t kon-test 2>/dev/null
rm -rf /tmp/kon-test-project /tmp/kon-e2e-home
rm -f /tmp/kon-test-*.txt

Tmux Commands Reference

bash
# Session management
tmux new-session -d -s <name> -c <dir> '<command>'
tmux kill-session -t <name>
tmux has-session -t <name>

# Input — IMPORTANT: use full key names (Escape, Enter, not Esc)
tmux send-keys -t <name> "text"
tmux send-keys -t <name> Enter
tmux send-keys -t <name> Escape
tmux send-keys -t <name> Tab
tmux send-keys -t <name> C-c
tmux send-keys -t <name> C-u

# Output
tmux capture-pane -t <name> -p
tmux capture-pane -t <name> -p > file.txt

Tips

  • Tests are deterministic: project/config structure is recreated each run.
  • Runtime mode tests are LLM-independent and should be checked first.
  • Tab completion tests run from the kon repo to use known paths.
  • Tool tests verify filesystem state; avoid relying solely on LLM prose.
  • Use KEEP_E2E_HOME=1 to inspect temp config/session files after failures.
  • Run tool execution before /resume so there is a session with messages in the list.

© 0xku, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in .agents/skills/kon-tmux-test of 0xku/kon.

  • SKILL.md
  • run-e2e-tests.sh
  • setup-test-project.sh

Open the folder on GitHubat commit f5862a0

Compare with similar skills

Kon Tmux Test next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Kon Tmux Test compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Kon Tmux Test this skill0xku/kon354—~2.8kAutomated safety check: PassMIT
CodexBar Live QAsteipete/CodexBar22k—~1.2kAutomated safety check: PassMIT
Drive MiMo CodeXiaomiMiMo/MiMo-Code14k—~3.9kAutomated safety check: PassMIT
Senpi Agent QA Harnesscode-yeongyu/senpi474—~2.7kAutomated safety check: NotesMIT
tmux Real User TestingQwenLM/qwen-code28k—~2.3kAutomated safety check: PassApache-2.0
Verify Omnigent End-to-Endomnigent-ai/omnigent11k—~1.6kAutomated safety check: PassApache-2.0

Similar skills

  • CodexBar Live QA

    steipete/CodexBar

    Runs live QA for the CodexBar app: provider usage matrix checks through its packaged CLI, config validation and menu checks, with 1Password-backed credentials handled safely.

    22k GitHub stars~1.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Drive MiMo Code

    XiaomiMiMo/MiMo-Code

    Lets one MiMoCode process drive another, headless with JSON events or interactively through tmux, to test behavior and visual regressions with parseable evidence.

    14k GitHub stars~3.9k tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Senpi Agent QA Harness

    code-yeongyu/senpi

    Checks changes to the senpi coding agent by driving the real CLI from source in an isolated sandbox, over RPC, terminal UI, mock model and CLI smoke channels.

    474 GitHub stars~2.7k tokensUpdated today
    Testing & QAAuto-check: notes
  • tmux Real User Testing

    QwenLM/qwen-code

    Drives Qwen Code in a real tmux session the way a user would and saves a readable step-by-step transcript of each screen for maintainers to review.

    28k GitHub stars~2.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Verify Omnigent End-to-End

    omnigent-ai/omnigent

    Spins up an isolated Omnigent server, runner and mock model to prove a user-facing behavior or bug fix with recorded evidence instead of reasoning from code.

    11k GitHub stars~1.6k tokensUpdated today
    Testing & QAAuto-check passed
  • Con CLI E2E

    nowledge-co/con-terminal

    Validate Con's local socket control plane against a real running app session, and write/run con-test integration tests.

    626 GitHub stars~1.2k tokensUpdated today
    Testing & QAAuto-check passed

More from 0xku/kon

  • Init

    0xku/kon

    Create or update AGENTS.md for this repository. An agent skill from 0xku/kon.

    354 GitHub stars~900 tokensUpdated 8 days ago
    Auto-check passed
  • Tag, publish to PyPI, and create GitHub release for Kon with validation and rollback-safe steps

    354 GitHub stars~899 tokensUpdated 8 days ago
    Auto-check passed
  • Review

    0xku/kon

    Review code changes and return prioritized, actionable findings

    354 GitHub stars~958 tokensUpdated 8 days ago
    Auto-check passed

Works with

Categories

Questions about Kon Tmux Test

What does Kon Tmux Test do?

E2E testing of kon using tmux sessions; IMPORTANT: only trigger this skill when user asks for e2e testing of kon. Kon Tmux Test is an agent skill from 0xku/kon.

When should I use Kon Tmux Test?

Kon Tmux Test fits situations like: this skill when user asks for e2e testing of kon; tasks that involve End-to-end testing.

How do I install Kon Tmux Test in Claude Code?

Run `npx skills add 0xku/kon --skill kon-tmux-test -a claude-code`. Or copy the skill folder (.agents/skills/kon-tmux-test in 0xku/kon) into .claude/skills/kon-tmux-test in your project. Claude Code loads it when a task matches its description.

How do I install Kon Tmux Test in Codex?

Run `npx skills add 0xku/kon --skill kon-tmux-test -a codex`. Or copy the skill folder (.agents/skills/kon-tmux-test in 0xku/kon) into .agents/skills/kon-tmux-test in your project. Codex loads it when a task matches its description.

Can I use Kon Tmux Test in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add 0xku/kon --skill kon-tmux-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kon-tmux-test, .gemini/skills/kon-tmux-test, .github/skills/kon-tmux-test and .opencode/skills/kon-tmux-test in your project.

What does Kon Tmux Test need to run?

Going by SKILL.md and its folder, Kon Tmux Test needs a shell for the scripts in its folder and the command-line tools its instructions call (bash). Our summary lists: A Bash shell.

Does Kon Tmux Test access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Kon Tmux Test safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Kon Tmux Test use?

Kon Tmux Test is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Kon Tmux Test use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Kon Tmux Test?

Skills that share tags, products or a category with Kon Tmux Test: CodexBar Live QA (steipete/CodexBar, 22k stars), Drive MiMo Code (XiaomiMiMo/MiMo-Code, 14k stars), Senpi Agent QA Harness (code-yeongyu/senpi, 474 stars) and tmux Real User Testing (QwenLM/qwen-code, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Kon Tmux Test?

0xku (a GitHub user) maintains it in 0xku/kon, which has 354 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 3, 2026.

Source: 0xku/kon on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.