首页
看点啥
插画图片
首页 科技看点 tmux:远程 CLI 控制与智能体编排 - Openclaw Skills

tmux:远程 CLI 控制与智能体编排 - Openclaw Skills

2026-08-15 0

什么是 tmux?

tmux 技能为 Openclaw Skills 提供了一个强大的接口,通过持久、隔离的会话与基于终端的环境进行交互。与标准 shell 执行不同,此技能允许进行交互式 TTY 管理,使智能体能够发送特定按键、处理复杂的 REPL,并监控长时间运行过程的实时输出。

通过利用专用的 Unix 套接字,它确保自动化过程与用户的主终端环境保持隔离。这使其成为开发者构建复杂 Openclaw Skills 的必备工具,特别是那些需要多步终端交互或自主编码智能体并行执行的任务。

下载入口:https://github.com/openclaw/skills/tree/main/skills/steipete/tmux

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install tmux

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 tmux。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

tmux 应用场景

tmux 工作原理
  1. 初始化隔离的套接字目录,以防止与其他 Openclaw Skills 发生会话冲突。
  2. 使用特定的套接字和会话名称创建一个新的后台 tmux 会话。
  3. 向目标窗格发送原始按键或字面命令,以驱动交互式应用程序。
  4. 抓取窗格历史记录或使用轮询脚本等待特定的文本模式或提示符。
  5. 同时监控多个会话,以跟踪并行智能体的进度。
  6. 自动化任务完成后,终止会话或清理整个套接字服务器。

tmux 配置指南

确保您的主机(macOS 或 Linux)上已安装 tmux。对于 Windows 用户,必须在 WSL 环境中安装 tmux。按如下方式设置套接字目录:

SOCKET_DIR="${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/clawdbot-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/clawdbot.sock"
SESSION=my-session-name

# 在后台启动新会话
tmux -S "$SOCKET" new -d -s "$SESSION"

tmux 数据架构与分类体系

该技能通过 tmux 套接字和内部缓冲区历史记录管理数据。以下是该技能使用的组织结构:

组件 类型 描述
套接字路径 文件 用于会话隔离和通信的 Unix 域套接字
会话 标识符 逻辑任务的命名分组(例如 agent-1, repl-test)
目标窗格 标识符 格式为 session:window.pane 的精确坐标(默认 :0.0)
历史缓冲区 文本 通过 capture-pane 捕获的回滚内容,用于分析
脚本助手 可执行文件 实用脚本,如 wait-for-text.sh,用于基于正则的监控
name: tmux
description: Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
metadata: {"clawdbot":{"emoji":"??","os":["darwin","linux"],"requires":{"bins":["tmux"]}}}

tmux Skill (Clawdbot)

Use tmux only when you need an interactive TTY. Prefer bash background mode for long-running, non-interactive tasks.

Quickstart (isolated socket, bash tool)

SOCKET_DIR="${CLAWDBOT_TMUX_SOCKET_DIR:-${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 -- 'PYTHON_BASIC_REPL=1 python3 -q' Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200

After starting a session, always print monitor commands:

To monitor:
  tmux -S "$SOCKET" attach -t "$SESSION"
  tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200

Socket convention

Targeting panes and naming

Finding sessions

Sending input safely

Watching output

Spawning processes

Windows / WSL

Orchestrating Coding Agents (Codex, Claude Code)

tmux excels at running multiple coding agents in parallel:

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

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

# Launch agents in different workdirs
tmux -S "$SOCKET" send-keys -t agent-1 "cd /tmp/project1 && codex --yolo 'Fix bug X'" Enter
tmux -S "$SOCKET" send-keys -t agent-2 "cd /tmp/project2 && codex --yolo 'Fix bug Y'" Enter

# Poll for completion (check if prompt returned)
for sess in agent-1 agent-2; do
  if tmux -S "$SOCKET" capture-pane -p -t "$sess" -S -3 | grep -q "?"; then
    echo "$sess: DONE"
  else
    echo "$sess: Running..."
  fi
done

# Get full output from completed session
tmux -S "$SOCKET" capture-pane -p -t agent-1 -S -500

Tips:

Cleanup

Helper: wait-for-text.sh

{baseDir}/scripts/wait-for-text.sh polls a pane for a regex (or fixed string) with a timeout.

{baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]
喜欢(0)

上一篇

《Star Wars》系列有像《艾尔登法环 黑夜君临》那样的作品吗 粉丝们仍在争论《星球大战绝地 陨落的武士团》。

《Star Wars》系列有像《艾尔登法环 黑夜君临》那样的作品吗 粉丝们仍在争论《星球大战绝地 陨落的武士团》。

下一篇

魔兽世界12.0新同盟种族哈籁尼尔介绍

魔兽世界12.0新同盟种族哈籁尼尔介绍
猜你喜欢