返回顶部
t

tmux-managertmux会话管理

Manage tmux sessions using the tmux-manager.py script. Use when asked to create, kill, restart, list, or inspect tmux sessions, send commands to sessions, tail session output, or validate the sessions config file.

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

tmux-manager

tmux-manager

通过YAML配置文件管理tmux会话。脚本及其默认配置位于同一目录中——脚本始终会在自身所在目录中查找tmux-sessions.yaml。

脚本: {baseDir}/scripts/tmux-manager.py
默认配置: {baseDir}/scripts/tmux-sessions.yaml
示例配置: {baseDir}/scripts/tmux-sessions.yaml.sample

部署方式:将tmux-manager.py复制到任意目录,在其旁边放置tmux-sessions.yaml,然后从任何位置使用uv run运行。



用法

uv run {baseDir}/scripts/tmux-manager.py (--all | -s SESSION [...] | --session-group GROUP [...] [--window-group GROUP [...]] | --window-group GROUP [...]) [--kill | --restart] [--dry-run] [--list] [--config FILE]
uv run {baseDir}/scripts/tmux-manager.py --send-keys -s SESSION[:WINDOW] COMMAND
uv run {baseDir}/scripts/tmux-manager.py --tail -s SESSION[:WINDOW]
uv run {baseDir}/scripts/tmux-manager.py --validate [--config FILE]
uv run {baseDir}/scripts/tmux-manager.py --list-groups [--config FILE]



标志

选择器

标志含义
--all针对配置中的每个会话
--session-group GROUP
按session_group定位会话(可重复,逗号分隔)——创建所有窗口 | | --window-group GROUP | 仅筛选匹配的窗口(可重复,逗号分隔)——可与--session-group组合使用 | | -s SESSION | 按名称定位特定会话(可重复) |

--all和-s与其他所有选项互斥。--session-group和--window-group可一起使用以限定会话和窗口范围。

操作——默认为创建

标志含义
(无操作标志)创建目标会话;跳过已在运行的会话
--kill
终止目标会话 | | --restart | 终止后重新创建目标会话 | | --list | 显示状态表(运行中/已停止)——不做任何更改 | | --dry-run | 预览将要执行的操作——不做任何更改 |

输出/检查

标志含义
--tail -s SESSION[:WINDOW]实时流式输出窗格内容(Ctrl+C停止)

发送命令

标志含义
--send-keys -s SESSION[:WINDOW] cmd向正在运行的会话或特定窗口发送shell命令

配置与验证

标志含义
--config FILE使用替代配置文件
--validate
检查配置中的错误和警告(无需选择器) | | --list-groups | 列出所有会话组和窗口组(无需选择器) |

示例

bash
uv run {baseDir}/scripts/tmux-manager.py --all # 创建所有会话
uv run {baseDir}/scripts/tmux-manager.py --all --kill # 终止配置中的所有会话
uv run {baseDir}/scripts/tmux-manager.py --all --restart # 重启所有会话
uv run {baseDir}/scripts/tmux-manager.py --all --dry-run # 预览将要创建的内容
uv run {baseDir}/scripts/tmux-manager.py --all --list # 列出所有会话的状态
uv run {baseDir}/scripts/tmux-manager.py --session-group work # 创建会话组work中的会话
uv run {baseDir}/scripts/tmux-manager.py --session-group work --restart # 重启会话组work中的会话
uv run {baseDir}/scripts/tmux-manager.py --session-group work --list # 列出会话组work中会话的状态
uv run {baseDir}/scripts/tmux-manager.py --kill --session-group work # 终止会话组work中的所有会话
uv run {baseDir}/scripts/tmux-manager.py --window-group dev # 创建会话,仅包含dev窗口
uv run {baseDir}/scripts/tmux-manager.py --window-group dev --restart # 重启,仅包含dev窗口
uv run {baseDir}/scripts/tmux-manager.py --window-group claude,gemini # 多个组,逗号分隔
uv run {baseDir}/scripts/tmux-manager.py --window-group claude --window-group gemini # 等效写法
uv run {baseDir}/scripts/tmux-manager.py --session-group TargetTracer,N8N --window-group claude,gemini # 组合使用
uv run {baseDir}/scripts/tmux-manager.py -s my-session # 仅创建my-session
uv run {baseDir}/scripts/tmux-manager.py --kill -s my-session # 仅终止my-session
uv run {baseDir}/scripts/tmux-manager.py --restart -s my-session # 仅重启my-session
uv run {baseDir}/scripts/tmux-manager.py --send-keys -s my-session cmd # 发送到活动窗口
uv run {baseDir}/scripts/tmux-manager.py --send-keys -s my-session:claude cmd # 发送到特定窗口
uv run {baseDir}/scripts/tmux-manager.py --tail -s my-session # 实时流式输出窗格内容
uv run {baseDir}/scripts/tmux-manager.py --validate # 验证配置文件
uv run {baseDir}/scripts/tmux-manager.py --list-groups # 列出所有组
uv run {baseDir}/scripts/tmux-manager.py --all --config ~/my-sessions.yaml # 使用特定配置



行为说明

  • - 幂等创建 — 已运行的会话将被跳过。使用--restart强制重新创建。
  • --kill需要选择器 — 使用--all --kill终止此配置管理的所有会话。
  • --tail / --send-keys 仅接受单个-s SESSION[:WINDOW]目标。
  • SESSION[:WINDOW] — 追加:windowname以定位特定窗口,例如my-session:claude。不加则使用活动窗口。
  • --validate 不需要选择器 — 对未知字段发出警告,捕获诸如windowgrou或sesiongroup之类的拼写错误。
  • --list-groups 不需要选择器 — 仅读取配置。
  • prehook / posthook 在主机shell中运行,而非tmux内部。
  • prehookfail: abort — 如果prehook退出码非零,则停止会话创建。默认为warn(打印警告,继续执行)。
  • --window-group — 已运行的会话将被跳过,除非使用--restart。重启时,仅创建匹配的窗口。
  • --session-group + --window-group组合使用 — 首先缩小到指定会话,然后仅在其中打开匹配的窗口。
  • 没有sessiongroup的会话 — 只能通过--all或-s访问。

原生tmux等效操作

这些操作不需要包装器——直接使用tmux:

操作原生命令
终止所有tmux会话tmux kill-server
捕获窗格输出快照
tmux capture-pane -p -t SESSION[:WINDOW] |


示例配置 (tmux-sessions.yaml.sample)

yaml
sessions:

# ── 项目会话(无环境变量)─────────────────────────────────────────
- name: Project_1
sessiongroup: Project1
workingdir: ~/Projects/Project1
# focus: claude # 创建后选择哪个窗口(可选)
windows:
- name: claude
window_group: claude # 通过:--window-group claude 定位
command: claude --dangerously-skip-permissions --continue
- name: gemini
window_group: gemini # 通过:--window-group gemini 定位
command: gemini -y --resume
- name: shell # 无window_group — 仅通过--session-group或--all打开
# 无command = 打开一个普通shell

# ──

标签

skill ai

通过对话安装

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

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 tmux-manager-1776105917 技能

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

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

通过命令行安装

skillhub install tmux-manager-1776105917

下载

⬇ 下载 tmux-manager v1.0.0(免费)

文件大小: 11.84 KB | 发布时间: 2026-4-14 13:08

v1.0.0 最新 2026-4-14 13:08
Initial release of tmux-manager.

- Provides a Python script to manage tmux sessions from a YAML config file.
- Supports creating, killing, restarting, listing, and inspecting tmux sessions.
- Allows targeting of sessions and windows using session groups and window groups.
- Includes commands to send input to sessions, tail pane output, and validate config files.
- Offers idempotent operation and a variety of selector/flag combinations for flexible control.
- Contains install instructions for required dependencies (uv, tmux).

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

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

p2p_official_large
返回顶部