tmux/SKILL.md
Run background processes in tmux panes — dev servers, builds, logs, watchers. Use when you need something running while you keep working.
npx skillsauth add snqb/my-skills tmuxInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Spawn and manage background processes in tmux panes. Rule: ALL long-running scripts/commands go to tmux. Never block the main thread.
Use a single session pi with named windows per task:
# Ensure session exists
tmux has-session -t pi 2>/dev/null || tmux new-session -d -s pi
# Start a background process
tmux new-window -d -t pi -n NAME 'COMMAND'
# Read output
tmux capture-pane -t pi:NAME -p -S -50
# Send keys / kill
tmux send-keys -t pi:NAME C-c
tmux kill-window -t pi:NAME
# List what's running
tmux list-windows -t pi -F '#{window_name} #{pane_current_command} #{window_active}'
When the user asks to "show", "open pane", "покажи" — open a new iTerm tab with tmux attached. Note: iTerm splits don't work from pi's context; tabs do.
osascript -e '
tell application "iTerm2"
tell current window
set newTab to (create tab with default profile)
tell current session of newTab
write text "tmux attach -t pi:NAME"
end tell
end tell
end tell'
Default is background-only (silent tmux). Visual tab only when explicitly requested.
# 1. Start
tmux has-session -t pi 2>/dev/null || tmux new-session -d -s pi
tmux new-window -d -t pi -n mytest 'cd /path && python test.py'
# 2. Check (poll output without switching)
sleep 2
tmux capture-pane -t pi:mytest -p -S -30
# 3. Report result to user from captured output
# 4. Cleanup when done
tmux kill-window -t pi:mytest 2>/dev/null
After task completes: Always kill-window when the process is done and output captured.
Session hygiene check (run periodically or at session start):
# Show all pi windows
tmux list-windows -t pi -F '#{window_name} #{pane_dead} #{pane_current_command}' 2>/dev/null
# Kill dead panes (process exited)
for w in $(tmux list-windows -t pi -F '#{window_index}:#{pane_dead}' 2>/dev/null | grep ':1$' | cut -d: -f1); do
tmux kill-window -t "pi:$w"
done
# Nuclear: kill entire pi session
tmux kill-session -t pi 2>/dev/null
pi, name windows (-n NAME)-d to stay in current pane (don't switch focus)capture-pane before assuming successkill-window after capturing resultsdocumentation
Enrich Markdown articles with inline Wikipedia links. First mention of each notable entity gets a hyperlink. Use when asked to add wiki links, enrich, or add references to .md files.
development
Structured visual QA: screenshot → batch issues → fix all → verify. Replaces the 300-cycle screenshot→edit death spiral. Optional bishkek review as exit gate. Use when building/polishing UI with browser testing, or when user asks for N iterations/reviews.
development
Find complex code, analyze intent, recommend battle-tested library replacements. Uses radon/eslint for detection, GitHub quality search for alternatives.
research
Research real-world UI patterns from curated galleries (Collect UI, Component Gallery, Mobbin). Use when exploring what exists: dropdowns, accordions, inputs, navigation, cards, modals, etc.