关于 Termany
Termany 是面向同时运行多个编码 Agent 的终端,将会话、文件差异、Worktree、端口和远程主机集中在一个窗口中。它还提供 Bot 对话、Git 审查和用量查看。
主要功能
- 01在窗口中管理多个持久会话
- 02标记需要关注的会话
- 03启动多种编码 Agent 与 Bot
- 04查看文件、Git 差异和对话
- 05管理 Worktree、SSH 和端口转发
- 06查看 Agent 用量与资源活动
适用场景
- 01并行运行多个编码 Agent
- 02在多个 Worktree 间检查和恢复会话
- 03通过 SSH 在本地与远程主机工作
- 04查看 Agent 对话用量和模型统计
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Termany
一个可同时运行多个编码 Agent 的终端。
Termany 可在一个窗口中管理大量 Agent 会话,告诉你哪个会话需要你的关注,并将这些会话相关的工作放在同一处:差异、工作树、端口、远程主机和 Token 费用。
网站:termany.sh — 下载、文档和发行说明。

适合你吗
如果你符合以下情况,Termany 会特别有用:
- 同时运行五个或更多 Agent 会话
- 在同一个代码仓库中使用 Claude、Codex 和其他 Agent
- 同时打开一个项目的多个工作树,并遇到它们之间的端口冲突
- 将长时间任务转移到开发机上,让它们在笔记本电脑休眠时仍能继续运行
如果你不是这样工作,Termany 仍可作为普通终端使用,提供分屏、主题和内嵌文件查看器。
在一个窗口中管理多个会话
面板最多可嵌套三层:工作区(最左侧栏,一个上下文,例如某个客户或产品)、页面(左侧边栏,一个项目或区域)和标签页(顶部栏,每个对应一个 shell)。每个面板都可以使用 ⌘D 和 ⇧⌘D 再次分屏。每个标签页都是持久会话:即使切换到后台,也会继续运行并保留滚动内容。
Termany 会为每个面板标记为工作中、已完成或需要关注。它会读取面板的前台任务和屏幕上的变化,而不是 shell 提示符,因此即使 Agent 使用自己的界面,这些标记也同样有效。带标记的面板会显示在页面树上方的 ACTIVE 区域中,这样你无需打开二十个标签页来找到已停止的那个。
⌘P 可按名称搜索命令、页面、标签页和面板。⌘M 可在暗化的背景上最大化单个面板。在桌面端,⌥⌘N 可在相同工作区中打开第二个窗口。
从右侧栏可在任意面板中启动 Agent。内置支持 Claude、Codex、Gemini、Grok Build、OpenClaw、FastClaw、Hermes、OpenCode、Cursor、Kimi 和 OMP。Claude、Codex 和 OpenClaw 默认启用;其他 Agent 可通过一个开关启用。在 Settings → Agents 中,可指定其他二进制文件,或添加自己的 Agent。Detect 会探测你的设备并列出发现的内容。
Claude 和 Codex Bots 使用本地安装并已完成身份验证的官方 CLI。如果缺少其中任何一个,Termany 会在 Settings → Agents 中提供其官方安装程序的链接。Termany 内置了运行该程序所需的轻量 ACP bridge 和 Node 运行时,因此 Bot 对话无需单独安装系统级 node 或 npx。

协同工作的 Bot
为每个 Bot 添加描述,并从一个可搜索的选择器中选择其技能。
Termany 会发现 ~/.agents/skills、~/.claude/skills、当前生效的 Codex
技能目录以及自己的下载库。在设置 → 技能中添加或禁用搜索目录。
重复的位置和相同的软件包会合并显示;
已有绑定仍保留其原始位置。你的 CLI 中其他全局技能仍可使用。
技能详情会在专用视图中打开;返回时会保留搜索内容、滚动位置和所选项。使用选择器顶部的 GitHub 条目,粘贴仓库、tree/<ref>/<directory> 或 blob/<ref>/<directory>/SKILL.md URL。成功导入的技能会显示在当前导入列表中,并自动选中;确认选择后,即可将其应用到 Bot 表单。
本地技能会从原位置读取。公开的 GitHub 技能会下载到
~/.termany/skills;来源元数据和绑定信息存储在 SQLite 中。下载使用有大小限制的归档;对于指向超大仓库中特定位置的链接,则会使用有大小限制、仅获取目录的回退方式。重新导入相同来源时,会更新所有绑定该来源的 Bot 所使用的当前副本。没有版本选择器。迁移时会保留现有的精确快照绑定,并将旧的补充说明合并到描述中。迁移前会保存一致的数据库备份。
提示词包含已绑定技能的名称、描述和读取说明,而不包含完整的技能正文。每个绑定都包含 SKILL.md 的绝对路径;所选 Agent 会使用自己的文件工具读取该入口文件及其引用内容。Termany 不会安装技能 MCP 服务,也不会注入用于读取技能的函数。
ACP 会在首次使用、恢复或配置变更时发送完整配置快照;配置未变的轮次则会携带简短的恢复指针。无法以可移植的方式检测未报告的自动压缩。
配置适用于私聊回复、问候语、群成员回复和 Bot 间投递。群组内部路由仅使用成员摘要。 更新会在下一次请求时生效,不会清除对话历史记录。ACP 会将其作为提示词上下文接收,而不是可移植的系统提示词覆盖;普通终端窗格不会自动继承 Bot 的配置。
将 Agent 转变为可复用的 Bot,并为其设置独立的名称、头像、角色、模型和工作文件夹。
你可以直接与它对话,也可以将多个 Bot 加入群聊。带头成员会协调对话、委派工作并汇总结果;使用 @ 提及可将消息路由给特定成员。话题可将不同任务分开,避免共用一份冗长的对话记录,同时每个 Bot 在对话中都保持清晰的身份。
如果 Agent 支持恢复会话(loadSession,或适用于不重放对话记录而恢复上下文的 Agent 的 sessionCapabilities.resume),空闲的 ACP Bot 进程会在五分钟后释放。发送另一条消息会重启 Agent 并加载同一段对话;首次回复可能需要稍长时间才能开始。正在进行的回复和权限请求会继续运行。不支持会话恢复的 Agent 会将对话保留在内存中;仅为发现设置而启动、未使用的进程仍可释放。这不会停止终端会话。

在同一窗口中审阅
任何窗格都可以从 shell 切换到其他视图。⌘E 可循环切换视图:
- 文件 — 文件树。点击文件即可就地编辑(CodeMirror、语言检测,按 ⌘S 保存)或阅读。Markdown、HTML、图片、视频、音频、PDF、DOCX、XLSX 和 PPTX 均可内嵌预览。
- Git 差异 — 已暂存、未暂存和未跟踪的更改。将工作树与其他基准进行比较。也可在同一面板中切换到同一仓库的其他工作树。
- 对话 — 基于 ACP 的聊天窗格,带有自己的模型选择器。
- 浏览器 — Web 视图。当窗格开始提供端口服务时,Termany 会询问是否打开它。
Agent 在一个窗格中运行,其差异会在旁边的窗格中打开。

工作树和远程主机
- 每个窗格可单独配置 SSH。 每个窗格都可以选择自己的连接,因此一个标签页中可以同时使用本地 shell 和两个远程主机。添加连接时,可设置显示名称、可选端口,以及自动、密码或身份文件验证方式。测试连接可在实际使用前检查连接。会话断开后,按 Enter 即可重新连接。远程窗格开始提供端口服务时,点击一次即可通过回环地址打开 SSH 转发,从而在本地打开远程 URL。
- 跨工作树的会话历史记录。 按 ⇧⌘H 可查看持有当前焦点窗格的仓库中的历史 Agent 对话。会话按分支分组,并涵盖该仓库的所有工作树。目录已不存在的会话会显示在已删除的工作树下,并从主检出目录恢复。任何会话都会在新窗格中恢复,并已
cd到对应项目目录。 - 活动监视器。 按 ⇧⌘M 可查看 CPU、内存、交换空间和内存压力,以及按程序分组的进程列表。在搜索框中输入端口号即可查找占用该端口的进程,然后可在同一行中终止它。


Agent 费用
Termany 会读取 Agent 对话记录并生成使用情况视图(⇧⌘U):预估费用、输入、输出和缓存令牌数、每日图表,以及按模型和项目划分的明细。
目前,使用情况和会话历史记录仅读取 Claude 和 Codex 的对话记录。其他 Agent 会显示为不受支持。

外观与快捷键
内置 18 款主题。主题会重新设置整个窗口的样式,而不只是终端配色:侧边栏、标签栏、每个窗格之间的间距和圆角,以及窗格下方的阴影,都由主题决定——效果足够彻底,能让 Windows 98 的斜面边框和海军蓝标题栏重现。使用 ⌥⌘. 和 ⌥⌘, 切换主题,或使用 ⌥⌘T 打开选择器。
![]() Codex 浅色 · 默认 | ![]() Default Dark 深色 | ![]() Daylight 浅色 |
![]() Charcoal 深色 | ![]() Meadow 浅色 | ![]() Solarized Dark 深色 |
![]() Gruvbox Dark 深色 | ![]() Gruvbox Light 浅色 | ![]() Rosé Pine 深色 |
![]() Rosé Pine Dawn 浅色 | ![]() Aurora 深色 | ![]() Horizon 浅色 |
![]() Phosphor 深色 | ![]() Windows 98 浅色 | ![]() Windows XP 浅色 |
![]() Aqua 浅色 | ![]() Blue Screen 深色 | ![]() Spreadsheet 浅色 |
安装的任何 CodexThemes 主题包都会连同配图显示在“设置 → 外观”中,并可一键应用,与上面的 18 款主题并列。
所有约 60 个操作都可在“设置 → 键盘”中重新绑定。右侧栏可隐藏你不使用的工具。界面提供 21 种语言。
安装
从 termany.sh 下载构建版本,或从源代码运行。
从源代码运行
npm install # builds node-pty natively (needs Xcode CLT on macOS)
pnpm dev:web # dev PTY server (:5175) + web (:15173) — open http://localhost:15173
pnpm dev:desktop # the same, plus the badged Tauri Dev app
在 macOS 上,桌面脚本会验证所选 SDK 和链接器是否兼容。如果独立的 Command Line Tools 更新与其 SDK 不一致,Termany 会在本次运行中自动使用已安装的 Xcode 工具链,而不会更改系统范围的 xcode-select 设置。
桌面客户端使用 Tauri 封装 apps/web,并随附 Node PTY/API 服务(捆绑的 Node 运行时和 node-pty),因此无需单独安装即可离线运行。
构建安装程序
安装程序通过 CI(.github/workflows/)生成,每个操作系统对应一个任务:
- macOS(
build.yml)——已签名并公证的.dmg,附加到 GitHub 草稿 Release。需要APPLE_*仓库机密。 - Windows(
build-windows.yml)——NSIS.exe,作为构建工件上传。 无需机密(未签名)。
两者都依赖 scripts/bundle-server.mjs,该脚本会在 Tauri 构建前为主机平台组装 Node 服务。要在本地构建 macOS DMG,请参阅
scripts/release-mac.sh。
配置
模型提供商采用 BYOK(自带密钥)模式。在应用运行时添加提供商;其配置会存储在本地的 ~/.termany/termany.db 中。本仓库中不存储任何密钥。可选环境变量:
| 变量 | 默认值 | 用途 |
|---|---|---|
TERMANY_PORT | 5174 release / 5175 dev | PTY/API 服务端口 |
TERMANY_HOST | 127.0.0.1 | 服务绑定的接口。任何非环回地址都会在没有身份验证的情况下将 Shell 暴露到网络 |
TERMANY_ALLOWED_ORIGINS | — | 允许调用服务的额外浏览器来源,以逗号分隔(Tauri 和环回页面始终允许) |
TERMANY_PASTE_DIR | system temp | 粘贴的图片写入位置 |
VITE_PTY_URL | ws://localhost:5174 release / :5175 dev | Web 客户端 → PTY WebSocket |
VITE_API_URL | follows VITE_PTY_URL | Web 客户端 → REST API |
快捷键
以下是初始快捷键设置。所有快捷键都可在“设置” → “键盘”中重新绑定。
| 按键 | 操作 |
|---|---|
| ⌘T | 新建标签页 |
| ⌘N | 新建页面 |
| ⇧⌘N | 新建工作区 |
| ⌥⌘N | 新建窗口(桌面端) |
| ⌘W | 关闭窗格 / 标签页 |
| ⌘D / ⇧⌘D | 向右 / 向下拆分 |
| ⌘M | 最大化 / 还原窗格 |
| ⌘E / ⇧⌘E | 循环切换窗格视图 / 窗格布局 |
| ⌘P | 搜索页面、标签页和窗格 |
| ⌘F | 在滚动缓冲区中查找 |
| ⌥⌘G | Git 差异 |
| ⇧⌘H | Agent 会话历史记录 |
| ⇧⌘U | Agent 令牌用量 |
| ⇧⌘M | 活动监视器 |
| ⌥⌘ ← ↑ ↓ → | 在窗格间移动焦点 |
| ⌃⌘ ← ↑ ↓ → | 调整焦点所在窗格的大小 |
| ⌘B / ⇧⌘B | 切换侧边栏 / 右侧栏 |
| ⌘K | 清除窗格 |
桌面应用还可以通过系统范围的快捷键,在任何应用中显示或隐藏窗口。 默认情况下,此功能处于关闭状态,因为大多数实用的组合键都已被占用(Spotlight、启动器、IME、媒体键),因此请在“设置” → “键盘” → “系统范围”中自行选择快捷键。
构建方式
本地优先,为云端做好准备。如今,同一界面既可作为 Web 应用运行,也可作为桌面客户端运行;将来还可作为云服务运行,只需替换一项:后端。
┌──────────────────────────────────────────────┐
│ apps/web React + xterm.js │ ← shared UI
│ Workspace ▸ Page ▸ Tab ▸ Pane │
├──────────────────────────────────────────────┤
│ packages/core ITerminalBackend │ ← the ONE seam
│ WebSocketBackend (web / cloud) │
│ LocalPtyBackend (desktop, TODO) │
├──────────────────────────────────────────────┤
│ apps/server node-pty over WebSocket │ ← local now; container-per-session later
└──────────────────────────────────────────────┘
ITerminalBackend 以上的所有内容都由 Web、桌面和云端共享。要适配新环境,只需再编写一个后端。界面无需更改。
后续路线图
- 会话重连:页面重新加载后仍能继续使用(服务端 PTY 持久化)。
LocalPtyBackend:用于桌面端的进程内 PTY 后端。目前,桌面应用通过本地 WebSocket 与捆绑的服务端通信。- 云端:为
apps/server添加身份验证,并为每个会话提供独立的容器沙箱。
贡献
开发环境设置和 PR 指南请参阅 CONTRIBUTING.md,报告漏洞请参阅 SECURITY.md。
贡献者
感谢所有为 Termany 做出贡献的人:
许可证
AGPL-3.0 © 2026 ThinkAny, LLC。通过网络提供服务也属于分发:如果你将修改后的版本作为服务运行,就必须向用户提供其源代码。有关 AGPL 之外的商业许可事宜,请联系 [email protected]。
termany.sh 由 ShipAny 构建。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。

















