Skip to content

Repository files navigation

herdr-mg

Herdr 的跨 session 管理器:lazygit 风格的终端 UI,用来浏览、attach、停止、删除 session,并查看每个 session 里的 workspace / tab 及其目录。

依赖本机已安装并可执行的 herdr CLI。

功能

  • 列出所有 herdr sessions(按最近使用排序)
  • / 按 session 名或目录路径过滤
  • f 只看 running
  • e 重命名当前 workspace / tab(running 走 herdr API,stopped 改 session.json
  • 预览 workspace / tab 及其目录(离线读 session.json,不会误启 server)
  • Attach 进选定 session(退出 herdr 后自动回到本界面)
  • Stop / Delete session

要求

  • Node.js ≥ 16
  • 已安装 herdrherdrPATH 中)

安装 / 运行

npm install
npm run build
node dist/cli.js

本地全局链接:

npm link
herdr-mg

界面

┌─ Sessions (3/14) ─────┬─ <session> ─────────────────────────┐
│ ❯ tables    running   │ w1 cloud-tables-agent  ~/goProject… │
│   byoc      stopped   │   t1 coding            ~/goProject… │
│   …                   │   t2 …                              │
└───────────────────────┴─────────────────────────────────────┘
  • 左:session 列表(* = default;默认按最近使用排序)
  • 右:当前选中 session 的 workspace → tab → 目录
  • 最近使用 = 上次 attach 时间与 session.json mtime 的较大值(attach 记录在 ~/.config/herdr-mg/state.json

快捷键

作用
j / k · / 当前面板上下移动
tab / enter / l / 聚焦右侧 detail
esc / h / 回到左侧 sessions
/ 按名字或目录搜索(enter 确认,esc 清空退出)
f 切换「只看 running」
e 在 detail 面板重命名当前 workspace / tab
a Attach 到选中 session(从 herdr 退出后回到本界面)
s Stop(关闭)选中 session
d 然后 y 删除选中 session(running 会先 stop;不能删 default)
r 刷新 session 列表
q 退出

开发

npm run build   # tsc → dist/
npm run dev     # tsc --watch
npm test        # 编译 + 解析/搜索自检

主要源码:

文件 职责
source/cli.tsx 入口;attach 时让位 tty,退出后再渲染
source/app.tsx Ink TUI
source/herdr.ts 调用 herdr session …、解析 session.json、最近使用状态

说明

  • Tab 本身没有 cwd;目录来自 pane 的 cwd(持久化在 ~/.config/herdr/.../session.json)。
  • Attach 会暂时退出本 TUI,把终端交给 herdr session attach <name>,再接回来。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages