Herdr 的跨 session 管理器:lazygit 风格的终端 UI,用来浏览、attach、停止、删除 session,并查看每个 session 里的 workspace / tab 及其目录。
依赖本机已安装并可执行的 herdr CLI。
- 列出所有 herdr sessions(按最近使用排序)
/按 session 名或目录路径过滤f只看 runninge重命名当前 workspace / tab(running 走 herdr API,stopped 改session.json)- 预览 workspace / tab 及其目录(离线读
session.json,不会误启 server) - Attach 进选定 session(退出 herdr 后自动回到本界面)
- Stop / Delete session
- Node.js ≥ 16
- 已安装 herdr(
herdr在PATH中)
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.jsonmtime 的较大值(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>,再接回来。