网淘吧来吧,欢迎您!

Zellij Terminal Workspace技能使用说明

2026-04-01 新闻来源:网淘吧 围观:9
电脑广告
手机广告

zellij 技能 (Moltbot)

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

快速入门(数据目录,执行工具)

DATA_DIR="${CLAWDBOT_ZELLIJ_DATA_DIR:-${TMPDIR:-/tmp}/moltbot-zellij-data}"
mkdir -p "$DATA_DIR"
SESSION=moltbot-python

zellij --data-dir "$DATA_DIR" new-session --session "$SESSION" --layout "default" --detach
zellij --data-dir "$DATA_DIR" run --session "$SESSION" --name repl -- python3 -q
zellij --data-dir "$DATA_DIR" pipe --session "$SESSION" --pane-id 0

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

Zellij Terminal Workspace

To monitor:
  zellij --data-dir "$DATA_DIR" attach --session "$SESSION"
  zellij --data-dir "$DATA_DIR" pipe --session "$SESSION" --pane-id 0

数据目录约定

  • 使用CLAWDBOT_ZELLIJ_DATA_DIR(默认为${TMPDIR:-/tmp}/moltbot-zellij-data)。
  • Zellij 在此目录中存储状态(会话、插件等)。

定位窗格和命名

  • Zellij 使用窗格ID(数字)来定位特定的窗格。
  • 查找窗格ID:zellij --data-dir "$DATA_DIR" list-sessions --long或使用list-panes.sh
  • 保持会话名称简短;避免使用空格。

查找会话

  • 列出你的数据目录中的会话:zellij --data-dir "$DATA_DIR" list-sessions
  • 列出所有数据目录中的会话:{baseDir}/scripts/find-sessions.sh --all(使用CLAWDBOT_ZELLIJ_DATA_DIR)。

安全发送输入

  • 使用zellij action来发送按键:zellij --data-dir "$DATA_DIR" action --session "$SESSION" write-chars --chars "$cmd"
  • 控制键:zellij --data-dir "$DATA_DIR" action --session "$SESSION" write 2(Ctrl+C)。

监视输出

  • 捕获窗格输出:zellij --data-dir "$DATA_DIR" pipe --session "$SESSION" --pane-id 0
  • 等待提示:{baseDir}/scripts/wait-for-text.sh -s "$SESSION" -p 0 -p 'pattern'.
  • 附加操作正常;分离使用Ctrl+p d(zellij默认分离快捷键)。

生成进程

  • 对于Python REPL环境,zellij与标准命令python3 -q配合良好。
  • 无需像tmux那样使用特殊标志PYTHON_BASIC_REPL=1

Windows / WSL系统

  • zellij支持macOS/Linux系统。在Windows上,请使用WSL并在WSL环境内安装zellij。
  • 此功能仅限于darwin/linux系统,且要求zellij位于PATH环境变量中。

编排编程智能体(Codex、Claude Code)

zellij擅长并行运行多个编程智能体:

DATA_DIR="${TMPDIR:-/tmp}/codex-army-data"

# Create multiple sessions
for i in 1 2 3 4 5; do
  zellij --data-dir "$DATA_DIR" new-session --session "agent-$i" --layout "compact" --detach
done

# Launch agents in different workdirs
zellij --data-dir "$DATA_DIR" action --session "agent-1" write-chars --chars "cd /tmp/project1 && codex --yolo 'Fix bug X'\n"
zellij --data-dir "$DATA_DIR" action --session "agent-2" write-chars --chars "cd /tmp/project2 && codex --yolo 'Fix bug Y'\n"

# Poll for completion (check if prompt returned)
for sess in agent-1 agent-2; do
  pane_id=$(zellij --data-dir "$DATA_DIR" list-sessions --long | grep "\"$sess\"" | jq -r '.tabs[0].panes[0].id')
  if zellij --data-dir "$DATA_DIR" pipe --session "$sess" --pane-id "$pane_id" | grep -q "❯"; then
    echo "$sess: DONE"
  else
    echo "$sess: Running..."
  fi
done

# Get full output from completed session
zellij --data-dir "$DATA_DIR" pipe --session "agent-1" --pane-id 0

提示:

  • 使用独立的 git worktree 进行并行修复(避免分支冲突)
  • pnpm install在全新克隆的仓库中运行 codex 前,请先执行此命令
  • 检查 shell 提示符($)以检测任务是否完成
  • Codex 需要--yolo--full-auto参数来执行非交互式修复

清理操作

  • 终止单个会话:zellij --data-dir "$DATA_DIR" delete-session --session "$SESSION"
  • 终止数据目录下的所有会话:使用{baseDir}/scripts/cleanup-sessions.sh "$DATA_DIR"

Zellij 与 Tmux 快速对照表

任务tmuxzellij
列出会话list-sessionslist-sessions
创建会话new-session -dnew-session --detach
附加到会话attach -tattach --session
发送按键send-keysaction write-chars
捕获窗格内容capture-pane管道
终止会话kill-sessiondelete-session
分离会话Ctrl+b dCtrl+p d

辅助脚本: wait-for-text.sh

{baseDir}/scripts/wait-for-text.sh在超时时间内轮询窗格以查找正则表达式(或固定字符串)。

{baseDir}/scripts/wait-for-text.sh -s session -p pane-id -r 'pattern' [-F] [-T 20] [-i 0.5]
  • -s/--session会话名称(必需)
  • -p/--pane-id窗格ID(必需)
  • -r/--pattern匹配的正则表达式(必需);添加-F用于固定字符串
  • -T超时秒数(整数,默认15)
  • -i轮询间隔秒数(默认0.5)

辅助工具:find-panes.sh

{baseDir}/scripts/find-panes.sh列出给定会话的窗格。

{baseDir}/scripts/find-panes.sh -s session [-d data-dir]
  • -s/--session会话名称(必需)
  • -d/--data-dirzellij 数据目录(如果未指定,则使用CLAWDBOT_ZELLIJ_DATA_DIR环境变量)

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第393623名访客 今日有1篇新文章/评论