원클릭으로
tmux
Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Checks API documentation coverage and sync status against source header files. Use when adding new APIs, modifying header files, or auditing documentation completeness for openvela modules (kernel, bluetooth, media, telephony, etc).
NuttX/Vela 驱动代码质量审查(59 Pattern + 双轮交叉验证 + 量化评分)。 Use when: driver review, driver code review, 驱动审查, 驱动代码审查, review driver, 审查驱动代码, NuttX driver review, 驱动质量检查, review nuttx/drivers, review arch/ driver, 驱动提交前检查. 即使用户只说"帮我审查下这个驱动"也应触发。 驱动开发/实现(use nuttx-driver-development).
Create, update, review, or audit NuttX RTOS C device drivers. Covers sensor (uORB), char device, network (ethernet, MAC, PHY, DMA, netdev, SPI-Ethernet, CAN, SocketCAN, CAN FD, CAN bus, LIN, LIN bus, LIN master, LIN slave), framebuffer (fb, LCDC, display controller), LCD (SPI LCD, I2C LCD, ST7789, SSD1306, ILI9341, lcd_dev, lcd_framebuffer), USB (Host Controller Driver and device Controller Driver), audio (I2S smart PA, power amplifier, audio_comp), power/battery (charger, monitor, gauge), MCAL (AUTOSAR MCAL adaptation, EB Tresos, MCAL upper-half bridging), I2C/SPI bus, Kconfig/build integration, and board registration. Use for driver implementation, code audit, sensor/timer/LED/ethernet/CAN/LIN/fb/LCD/audio/PA/battery subsystems, or board bringup.
openvela 固件编译、配置和模拟器运行。Use when: 编译 openvela、build、make、构建、menuconfig、运行模拟器、emulator、编译报错修复。
向 openvela 社区提交 Pull Request。通过 Fork 模式提交(先 fork 上游仓库,push 到 fork,再从 fork 向上游提 PR)。支持单仓库或多仓库批量提交、指定文件/分支、自动检测 GitHub/Gitee 平台、分支模糊匹配、MCP 配置引导。Trigger: 提交 PR、提交代码到社区、push 到 openvela、创建 pull request、批量提交、多仓库提交。
openvela 技术书籍稿件审校 Agent。以资深技术书籍编辑和 NuttX 架构专家的视角,对飞书云文档中的书稿内容进行逐字逐句审查。 涵盖出版社写作规范(22 条)、技术准确性、编辑审校三个维度。 使用方式:提供飞书文档 URL 或 doc_id,Agent 将读取文档内容并输出审校报告和修改建议。 当用户提到以下关键词时触发:审校、审稿、书稿审查、稿件评审、review 书稿、检查文档规范、技术书审校、出版规范检查、书籍审校、manuscript review。
| name | tmux |
| description | Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output. |
| license | Vibecoded |
Use tmux as a programmable terminal multiplexer for interactive work. Works on Linux and macOS with stock tmux; avoid custom config by using a private socket.
SESSION=python-debug # descriptive names; avoid spaces
tmux new -d -s "$SESSION"
tmux send-keys -t "$SESSION".1 -- 'python3 -q' Enter
tmux capture-pane -p -J -t "$SESSION".1 -S -200 # watch output
tmux kill-session -t "$SESSION" # clean up
If not running inside tmux (no $TMUX env var), use an isolated socket:
SOCKET_DIR=${TMPDIR:-/tmp}/claude-tmux-sockets
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/claude.sock"
SESSION=python-debug
tmux -S "$SOCKET" new -d -s "$SESSION"
tmux -S "$SOCKET" send-keys -t "$SESSION".1 -- 'python3 -q' Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION".1 -S -200
tmux -S "$SOCKET" kill-session -t "$SESSION"
After starting a session ALWAYS tell the user how to monitor the session by giving them a command to copy paste:
To monitor this session yourself:
tmux attach -t python-debug
Or to capture the output once:
tmux capture-pane -p -J -t python-debug.1 -S -200
If using an isolated socket (not in tmux), include -S "$SOCKET":
To monitor this session yourself:
tmux -S "$SOCKET" attach -t python-debug
Or to capture the output once:
tmux -S "$SOCKET" capture-pane -p -J -t python-debug.1 -S -200
This must ALWAYS be printed right after a session was started and once again at the end of the tool loop. But the earlier you send it, the happier the user will be.
$TMUX env var), use the current tmux server without -S flag.CLAUDE_TMUX_SOCKET_DIR (defaults to ${TMPDIR:-/tmp}/claude-tmux-sockets) and use tmux -S "$SOCKET" so we can enumerate/clean them. Create the dir first: mkdir -p "$CLAUDE_TMUX_SOCKET_DIR".SOCKET="$CLAUDE_TMUX_SOCKET_DIR/claude.sock".{session}.{pane}, defaults to {session}.1 if omitted. Use descriptive names (e.g., python-debug, gdb-session, build-test).python-debug - Python REPL for debugging/calculationsgdb-session - GDB debugger for C/C++/embedded debuggingbuild-test - Build process or test runnershell-work - General shell session for file operationstmux split-window -h -t "$SESSION" creates a new pane (pane 2). Always target the specific pane when sending commands: tmux send-keys -t "$SESSION".2 -- 'command' Enter-S "$SOCKET" consistently to stay on the private socket path. If you need user config, drop -f /dev/null; otherwise -f /dev/null gives a clean config.tmux -S "$SOCKET" list-sessions, tmux -S "$SOCKET" list-panes -a../scripts/find-sessions.sh -S "$SOCKET"; add -q partial-name to filter../scripts/find-sessions.sh --all (uses CLAUDE_TMUX_SOCKET_DIR or ${TMPDIR:-/tmp}/claude-tmux-sockets).tmux ... send-keys -t target -- 'your command' Enter
-- separates command from keys, and Enter sends a newline (not literal text)tmux ... send-keys -t target -l -- 'literal text'
-l flag to send text exactly as-is, useful for special characterstmux ... send-keys -t target -l -- $'text\nwith\nnewlines'
-l for embedded newlinestmux ... send-keys -t target C-c, C-d, C-z, Escape, etc.tmux -L "$SOCKET" capture-pane -p -J -t target -S -200.tmux wait-for (which does not watch pane output).tmux -L "$SOCKET" attach -t "$SESSION"; detach with Ctrl+b d.Some special rules for processes:
PYTHON_BASIC_REPL=1 environment variable. This is very important as the non-basic console interferes with your send-keys../scripts/wait-for-text.sh -t "$SESSION" -p '^>>>' -T 15 -l 4000
"Type quit to exit", "Program exited", etc.) before proceeding.tmux ... send-keys -t "$SESSION".1 -- 'python3 -q' Enter; wait for ^>>>; send code with -t "$SESSION".1 -- 'code' Enter; interrupt with C-c. Always with PYTHON_BASIC_REPL.tmux ... send-keys -t "$SESSION".1 -- 'gdb --quiet ./a.out' Enter; disable paging tmux ... send-keys -t "$SESSION".1 -- 'set pagination off' Enter; break with C-c; issue bt, info locals, etc.; exit via quit then confirm y.-t "$SESSION".1 -- 'command' Enter.tmux -S "$SOCKET" kill-session -t "$SESSION".tmux -S "$SOCKET" list-sessions -F '#{session_name}' | xargs -r -n1 tmux -S "$SOCKET" kill-session -t.tmux -S "$SOCKET" kill-server../scripts/wait-for-text.sh polls a pane for a regex (or fixed string) with a timeout. Works on Linux/macOS with bash + tmux + grep.
./scripts/wait-for-text.sh -t session -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]
-t/--target pane target (required, format: {session}.{pane})-p/--pattern regex to match (required); add -F for fixed string-T timeout seconds (integer, default 15)-i poll interval seconds (default 0.5)-l history lines to search from the pane (integer, default 1000)