返回顶部
t

tmux远程控制tmux

Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
22,698
下载量
免费
免费
38
收藏
概述
安装方式
版本历史

tmux

tmux 技能 (Clawdbot)

仅在需要交互式 TTY 时使用 tmux。对于长时间运行的非交互式任务,优先使用 bash 后台模式。

快速开始(隔离套接字,bash 工具)

bash
SOCKETDIR=${CLAWDBOTTMUXSOCKETDIR:-${TMPDIR:-/tmp}/clawdbot-tmux-sockets}
mkdir -p $SOCKET_DIR
SOCKET=$SOCKET_DIR/clawdbot.sock
SESSION=clawdbot-python

tmux -S $SOCKET new -d -s $SESSION -n shell
tmux -S $SOCKET send-keys -t $SESSION:0.0 -- PYTHONBASICREPL=1 python3 -q Enter
tmux -S $SOCKET capture-pane -p -J -t $SESSION:0.0 -S -200

启动会话后,始终打印监控命令:

监控方式:
tmux -S $SOCKET attach -t $SESSION
tmux -S $SOCKET capture-pane -p -J -t $SESSION:0.0 -S -200

套接字约定

  • - 使用 CLAWDBOTTMUXSOCKETDIR(默认为 ${TMPDIR:-/tmp}/clawdbot-tmux-sockets)。
  • 默认套接字路径:$CLAWDBOTTMUXSOCKETDIR/clawdbot.sock。

定位窗格和命名

  • - 目标格式:session:window.pane(默认为 :0.0)。
  • 保持名称简短;避免空格。
  • 检查:tmux -S $SOCKET list-sessions,tmux -S $SOCKET list-panes -a。

查找会话

  • - 列出套接字上的会话:{baseDir}/scripts/find-sessions.sh -S $SOCKET。
  • 扫描所有套接字:{baseDir}/scripts/find-sessions.sh --all(使用 CLAWDBOTTMUXSOCKET_DIR)。

安全发送输入

  • - 优先使用字面发送:tmux -S $SOCKET send-keys -t target -l -- $cmd。
  • 控制键:tmux -S $SOCKET send-keys -t target C-c。

查看输出

  • - 捕获最近历史:tmux -S $SOCKET capture-pane -p -J -t target -S -200。
  • 等待提示符:{baseDir}/scripts/wait-for-text.sh -t session:0.0 -p pattern。
  • 可以附加;使用 Ctrl+b d 分离。

生成进程

  • - 对于 Python REPL,设置 PYTHONBASICREPL=1(非基础 REPL 会破坏 send-keys 流程)。

Windows / WSL

  • - tmux 在 macOS/Linux 上受支持。在 Windows 上,使用 WSL 并在 WSL 内安装 tmux。
  • 此技能限定于 darwin/linux 平台,且需要 PATH 中存在 tmux。

编排编码代理(Codex, Claude Code)

tmux 擅长并行运行多个编码代理:

bash
SOCKET=${TMPDIR:-/tmp}/codex-army.sock

创建多个会话

for i in 1 2 3 4 5; do tmux -S $SOCKET new-session -d -s agent-$i done

在不同工作目录启动代理

tmux -S $SOCKET send-keys -t agent-1 cd /tmp/project1 && codex --yolo 修复错误 X Enter tmux -S $SOCKET send-keys -t agent-2 cd /tmp/project2 && codex --yolo 修复错误 Y Enter

轮询完成状态(检查提示符是否返回)

for sess in agent-1 agent-2; do if tmux -S $SOCKET capture-pane -p -t $sess -S -3 | grep -q ❯; then echo $sess: 完成 else echo $sess: 运行中... fi done

获取已完成会话的完整输出

tmux -S $SOCKET capture-pane -p -t agent-1 -S -500

提示:

  • - 对并行修复使用单独的 git worktree(避免分支冲突)
  • 在全新克隆中运行 codex 前先执行 pnpm install
  • 检查 shell 提示符(❯ 或 $)以检测完成状态
  • Codex 需要 --yolo 或 --full-auto 进行非交互式修复

清理

  • - 终止会话: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。

辅助工具:wait-for-text.sh

{baseDir}/scripts/wait-for-text.sh 轮询窗格以匹配正则表达式(或固定字符串),并带有超时。

bash
{baseDir}/scripts/wait-for-text.sh -t session:0.0 -p pattern [-F] [-T 20] [-i 0.5] [-l 2000]

  • - -t/--target 窗格目标(必需)
  • -p/--pattern 要匹配的正则表达式(必需);添加 -F 表示固定字符串
  • -T 超时秒数(整数,默认 15)
  • -i 轮询间隔秒数(默认 0.5)
  • -l 搜索的历史行数(整数,默认 1000)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 tmux-1776396906 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 tmux-1776396906 技能

通过命令行安装

skillhub install tmux-1776396906

下载

⬇ 下载 tmux v1.0.0(免费)

文件大小: 4.68 KB | 发布时间: 2026-4-17 15:42

v1.0.0 最新 2026-4-17 15:42

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部