D
DraconDev/terhub
A terminal command center: every session, pane, and agent (tmux, zellij, screen, SSH hosts) in one TUI
无 SECURITY.md
在 GitHub 查看 ↗链接已于 2026-11-12 核查 · HTTP 200 · 打开的是厂商自己的官网
- ★ 数取值
- 1 ★ · DraconDev/terhub · 取自 GitHub 搜索 API · (2026-11-13 20:00:50 核对)
- 来源明细
- 从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
- 收录与活跃
- 收录于 2026-10-21 · 最近见到 2026-11-14 · 共见到 28 次 · 被 1 个来源列出
- 评分构成
- 综合分 103 · 1 ★ · 1 个来源 · repo
常见问题(答案都来自我们的记录)
它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库
DraconDev/terhub;我们收录于 2026-10-21;最近见到 2026-11-14。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。# terhub — your terminal command center
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
> terhub is a fullscreen TUI (plus a plain CLI) that gathers every
> session, every pane, and every agent from every place you work
> (local tmux/zellij/screen, SSH hosts, agent processes) into one
> screen, names which ones need you, and lets you jump to them, mark
> them, and drive them. It's the overview that the terminal never had.
If you've ever lost a pane in a stack of tmux ls outputs, missed an
agent waiting for input because you were in the wrong window, or wanted
to see at a glance which of fifteen sessions actually need you —
terhub is the screen that fixes that. It works on top of tmux, zellij,
and screen locally, and reaches across SSH to other hosts.
## Backend parity
Every backend is the same TUI; what differs is which CLI verbs terhub has
implemented for it. A - in the table means the verb is not wired yet,
so a row in that backend will be visible but its p/x/r keys won't
do anything (you can still attach and read).
| Capability | tmux | zellij | screen | SSH fleet | native tabs |
| List sessions | ✓ | ✓ | ✓ | ✓ | ✓ |
| Attach | ✓ | ✓ | ✓ | ✓ | ✓ |
| List panes | ✓ | – | – | ✓ | – |
| Capture last lines | ✓ | – | – | ✓ | – |
| Kill / swap / focus | ✓ | – | – | ✓ | – |
| Agent hook events | ✓ | – | – | – | – |
| Activity sparkline | ✓ | – | – | ✓ | – |
| Freezing / thawing | ✓ | – | – | ✓ | – |
Native tabs are Konsole, kitty, and WezTerm — the TUI lists them so you
can Enter into them; it does not drive their panes. SSH fleet goes
through the terhub binary on the remote, so anything the remote's
backend supports is supported there too.
## Install
Requires tmux 3.x on PATH and Rust 1.89+.
sh
cargo install --path .
terhub init # config + agent hooks + daemon, one shot
terhub # opens the TUI
First run creates ~/.config/terhub/config.toml with defaults.
Full manual: GUIDE.md.
Project status: AUDIT.md (the 2026-10-19 audit — 36 findings) and
TASKS.md (the prioritised improvement backlog).
## The TUI
One-line session bar on top, one huge pane table, one status bar — no modes
except small popups:
Session bar. All plus one segment per session, with attached marker
(●/○), pane counts, and a worst-state dot (red = something needs you).
←/→ filters the table immediately, Enter attaches, Alt+1..8 jumps
to tabs.
Pane table. Every pane: attention mark (! needs you, + marked,
focused, ✓ already seen), pane id, session, window, command, repo
dir, agent, state, source (hook = agent-reported fact, proc = binary
found, scr = screen guess), time in state, last turn, idle age
(every row shows it, working included — it separates "streaming"
from "frozen on the same frame"; only a truly idle row tints), and
a summary carrying the prompt or error line that decided the state.
States that matter are red. Waiting, error, stuck, and quota-limited
rows shout; working/idle/paused are quiet. The filter chip (◼) names every
filter hiding rows so one is never silently active.
Preview on demand. Right-click or p: fullscreen scrollable reader
over the pane's last 500 lines with its own ANSI colors, live CPU, and —
in git repos — branch plus diff shortstat.
Filters. f searches (or just start typing); ! excludes. The
standing exclusion from [ui] filter is always on. A query that is
> session, every pane, and every agent from every place you work
> (local tmux/zellij/screen, SSH hosts, agent processes) into one
> screen, names which ones need you, and lets you jump to them, mark
> them, and drive them. It's the overview that the terminal never had.
If you've ever lost a pane in a stack of tmux ls outputs, missed an
agent waiting for input because you were in the wrong window, or wanted
to see at a glance which of fifteen sessions actually need you —
terhub is the screen that fixes that. It works on top of tmux, zellij,
and screen locally, and reaches across SSH to other hosts.
## Backend parity
Every backend is the same TUI; what differs is which CLI verbs terhub has
implemented for it. A - in the table means the verb is not wired yet,
so a row in that backend will be visible but its p/x/r keys won't
do anything (you can still attach and read).
| Capability | tmux | zellij | screen | SSH fleet | native tabs |
| List sessions | ✓ | ✓ | ✓ | ✓ | ✓ |
| Attach | ✓ | ✓ | ✓ | ✓ | ✓ |
| List panes | ✓ | – | – | ✓ | – |
| Capture last lines | ✓ | – | – | ✓ | – |
| Kill / swap / focus | ✓ | – | – | ✓ | – |
| Agent hook events | ✓ | – | – | – | – |
| Activity sparkline | ✓ | – | – | ✓ | – |
| Freezing / thawing | ✓ | – | – | ✓ | – |
Native tabs are Konsole, kitty, and WezTerm — the TUI lists them so you
can Enter into them; it does not drive their panes. SSH fleet goes
through the terhub binary on the remote, so anything the remote's
backend supports is supported there too.
## Install
Requires tmux 3.x on PATH and Rust 1.89+.
sh
cargo install --path .
terhub init # config + agent hooks + daemon, one shot
terhub # opens the TUI
First run creates ~/.config/terhub/config.toml with defaults.
Full manual: GUIDE.md.
Project status: AUDIT.md (the 2026-10-19 audit — 36 findings) and
TASKS.md (the prioritised improvement backlog).
## The TUI
One-line session bar on top, one huge pane table, one status bar — no modes
except small popups:
Session bar. All plus one segment per session, with attached marker
(●/○), pane counts, and a worst-state dot (red = something needs you).
←/→ filters the table immediately, Enter attaches, Alt+1..8 jumps
to tabs.
Pane table. Every pane: attention mark (! needs you, + marked,
focused, ✓ already seen), pane id, session, window, command, repo
dir, agent, state, source (hook = agent-reported fact, proc = binary
found, scr = screen guess), time in state, last turn, idle age
(every row shows it, working included — it separates "streaming"
from "frozen on the same frame"; only a truly idle row tints), and
a summary carrying the prompt or error line that decided the state.
States that matter are red. Waiting, error, stuck, and quota-limited
rows shout; working/idle/paused are quiet. The filter chip (◼) names every
filter hiding rows so one is never silently active.
Preview on demand. Right-click or p: fullscreen scrollable reader
over the pane's last 500 lines with its own ANSI colors, live CPU, and —
in git repos — branch plus diff shortstat.
Filters. f searches (or just start typing); ! excludes. The
standing exclusion from [ui] filter is always on. A query that is
收录徽章(可选)
想把收录标记放进 README 就复制这行,可选,不影响收录。
[](https://anclum.com/zh/s/dracondev-terhub/)
- 来源
- github · https://github.com/DraconDev/terhub
- 按领域浏览
- 开源项目
- Traction
- 1 ★
- 收录于
- 今天
- 安全策略
- 我们没在该仓库根目录找到
SECURITY.md(这不代表不安全)
同类推荐
所属领域与标签
每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。