360 Secure SkillHub
360 安全技能中心

tmux-terminal

核心功能包括创建/管理tmux会话、发送命令/特殊按键、捕获终端输出。适用于测试交互式CLI/TUI应用、运维长运行进程(如服务器)、捕获输出用于QA报告。需提前安装tmux,通过tmux命令执行操作,支持后台会话运行、TUI按键导航、指定行数输出捕获,操作后建议清理会话避免进程泄漏。

imbeasting
imbeasting
热度 84.23
最近更新 2026-05-11 17:29:14
分类:开发依赖:代码执行应用场景:DevOps / 自动化脚本 / 调试排错

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add imbeasting-tmux-terminal
Metadata
name
tmux-terminal
description
Interactive terminal control via tmux for TUI apps, prompts, and long-running CLI workflows.
hats
["developer","qa_tester"]
version
1.0.0

tmux-terminal

Overview

Use tmux to drive interactive terminal sessions, including TUI workflows like ralph-tui. tmux lets you send keystrokes, capture screen output, and keep processes running between steps.

When to Use

  • Testing ralph-tui or any interactive CLI prompts
  • Managing long-running processes (web server, loops, watch mode)
  • Capturing live terminal output for QA reports
  • Interacting with applications that redraw the screen

Prerequisites

  • tmux installed (pre-installed on macOS)

Verify:

tmux -V

Core Commands

Create a detached session:

tmux new-session -d -s <name>

Send commands (append Enter to execute):

tmux send-keys -t <name> "<command>" Enter

Capture screen output:

tmux capture-pane -t <name> -p

Kill session when done:

tmux kill-session -t <name>

Special Keys

Use send-keys with key names:

  • Enter
  • C-c (Ctrl-C)
  • C-d (Ctrl-D)
  • Tab
  • Escape
  • Up, Down, Left, Right

Examples:

tmux send-keys -t <name> Up
tmux send-keys -t <name> C-c

TUI Interaction Patterns

Start ralph-tui

tmux new-session -d -s ralph-tui
tmux send-keys -t ralph-tui "cargo run -p ralph-tui" Enter

Navigate in TUI

tmux send-keys -t ralph-tui Down
tmux send-keys -t ralph-tui Enter

Capture and parse the screen

tmux capture-pane -t ralph-tui -p -S -200

Use -S -200 to capture the last 200 lines when the screen is noisy.

Long-Running Process Management

  • Start servers or loops in a tmux session to keep them alive.
  • Use capture-pane to confirm health (look for "listening" or "ready" text).
  • Stop cleanly with C-c then kill-session.

Example:

tmux new-session -d -s ralph-web
tmux send-keys -t ralph-web "cargo run -p ralph-cli -- web" Enter
tmux capture-pane -t ralph-web -p | rg -n "listening|ready"
tmux send-keys -t ralph-web C-c
tmux kill-session -t ralph-web

Notes

  • Keep session names short and unique.
  • Always clean up sessions to avoid leaking background processes.
  • If output looks empty, wait briefly and capture again.