Agent Session Manager 桌面版

在一个窗口里并行运行多个 AI 编码代理,每个独占终端标签,关掉窗口也不中断。

Star 数
★ 29
最近更新
1 天前
License
MIT
主语言
Go

30 秒速览

运行形态
桌面应用
可在哪里用
兼容但需适配Codex · Claude CodeClaude.ai · OpenAI API(部分支持)
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
tmux(Linux/macOS)psmux(Windows)Wails v2Sveltexterm.jsNode.jsnpmGo 1.24+Ubuntu 24.04+/Fedora 40+ 上的 WebKitGTK(Linux)Shell / 命令行网络访问本地文件系统MCP Server
典型场景
同时跑三四个 Claude Code 或 Codex 会话的开发者,希望在一个窗口里看到谁在等待输入,而不是反复切换终端窗口。
不适合
  • 需要在 SSH 或纯终端环境里使用的用户
  • 不想额外安装 tmux 或 psmux 的用户
  • 希望开箱即用、不愿装 Go/Node/Wails 构建链的人

这个 Agent 能做什么,适合哪些场景?

这是一个用 Wails(Go)+ Svelte + xterm.js 构建的桌面应用,把 Claude、Codex、Gemini、Aider、Amazon Q、OpenCode 或自定义命令放进同一个窗口的多个标签页里管理。核心执行模型是把每个会话托管在终端复用器中:Linux/macOS 用 tmux,Windows 用 psmux,因此代理进程不依赖 App 生命周期,关闭窗口、重启程序甚至换机器后都能重新 attach 继续。终端输入输出走本地带令牌认证的 WebSocket(xterm.js ⇄ Go ⇄ 复用器),后台标签的输出由后端缓存并在返回该标签时回放。应用侧还提供项目看板、按文件和 hunk 的 Git diff 审阅、文件浏览器与编辑器、提交历史、任务与截止日期、跨会话历史搜索、桌面与 ntfy 手机推送。它自带自更新、回收站与自动快照,所有数据默认留在本机(~/.config/agent-session-manager-desktop),仅在检查更新、配置推送或使用 Task Master AI 动作时联网。

启动时为每个会话创建一个复用器窗口,并在其中运行所选代理的可执行命令(Claude、Gemini、Aider、Codex、Amazon Q、OpenCode、自定义命令或纯 shell),可带独立工作目录。通过 xterm.js 与 Go 后端之间的本地令牌认证 WebSocket 完成输入输出转发;非前台标签的输出在后端暂存,返回时回放。读取 pane 输出判断 busy / waiting / idle 状态,用 ⏳ 收件箱聚合等待输入的标签并支持 yes/no/Enter/Esc 直接应答,可发出系统通知或 ntfy 推送。支持会话内多标签、Resume & Fork、Claude --bg 后台代理面板、会话模板、带参数的保存命令({{name:default}})、Ctrl+K 命令面板与 Ctrl+J 快速跳转表。提供项目看板(Git 分支/脏状态/ahead-behind/最后提交、Claude 与 Codex 用量窗口)、逐文件与逐 hunk 的 diff 审阅与回滚、CodeMirror 6 文件编辑器(保留行尾、BOM、末尾换行)、Ctrl+Shift+Y 提交历史、Ctrl+Shift+F 跨会话历史搜索、任务列表与 Task Master(可选,通过 task-master-ai MCP 包)。状态写入 sessions.json、commands.json、activity-stats.json、backups/ 与 asmgr-desktop.log,任务写入各工作目录的 .taskmaster/tasks.json。

  1. 同时跑三四个 Claude Code 或 Codex 会话的开发者,希望在一个窗口里看到谁在等待输入,而不是反复切换终端窗口。
  2. 需要在长时间重构任务中关闭笔记本或重启应用的人:会话存放在 tmux/psmux 中,重新打开后一键 attach 继续。
  3. 想让手机上收到代理等待确认提醒的人:在 Settings → Notifications 里填入 ntfy 主题 URL,配合手机 ntfy 应用接收推送。
  4. 需要在提交前逐文件、逐 hunk 检查代理改动并只回滚其中一处的人,用 diff 视图和 Ctrl+F7 在变更之间跳转。
  5. 在 Windows 上不想用 WSL 或 MSYS2 的开发者:应用可使用原生 psmux 并通过 winget 安装。
  6. 习惯键盘操作的用户:用 Ctrl+K 命令面板、Ctrl+P 保存命令库、Ctrl+J 数字跳转表和可重绑定的快捷键驱动全部操作。

如何安装或部署这个 Agent?

安装前必须准备终端复用器:Linux 用 tmux,macOS 执行 brew install tmux,Windows 需 psmux(应用可用 winget install psmux 代为安装,无需 WSL 或 MSYS2)。

Linux:

sudo dpkg -i asmgr-desktop_*_linux_x86_64.deb   # Debian/Ubuntu
sudo rpm -i asmgr-desktop_*_linux_x86_64.rpm    # Fedora/RHEL

安装到 /usr/bin/asmgr-desktop 并创建菜单项,依赖 libwebkit2gtk-4.1-0/webkit2gtk4.1 与 tmux 会被自动拉入。

macOS(Apple Silicon;Intel 走 Rosetta 2):

tar -xzf asmgr-desktop_*_darwin_arm64.tar.gz

将 asmgr-desktop.app 移入 /Applications,然后 brew install tmux

Windows(x64):运行 asmgr-desktop_*_windows_amd64_setup.exe,按用户安装,无需管理员权限;也可使用 .tar.gz 免安装包。

从源码构建需要 Go 1.24+、Node.js + npm、Wails CLI 和 WebKitGTK:
wails build -tags webkit2_41 # Ubuntu 24.04+/Fedora 40+ 等仅提供 webkit2gtk-4.1 的系统
wails build # 其他/较旧的 WebKitGTK
产物在 build/bin/。开发模式用 wails dev -tags webkit2_41,前端也会在 http://localhost:34115 提供。

如何使用这个 Agent?

  1. 按 Ctrl+Shift+N 新建会话,选择代理、工作目录和名称;会话在独立的复用器窗口中启动并出现在侧边栏,按 Enter attach 进入实时终端。
  2. 按 Ctrl+T 打开完整的新标签对话框(代理、参数、目录),Ctrl+Shift+T 只建一个终端标签并只询问名称;Ctrl+PageUp / Ctrl+PageDown 切换标签。
  3. 用 Ctrl+Shift+G 把会话分组为项目,Ctrl+Shift+8 加星、Ctrl+Shift+1…7 跳到加星会话;Alt+J 把当前标签加入跳转表,Ctrl+J 加数字直接跳转。
  4. 头部 ⏳ 数字表示正在等待输入的代理,点击跳转或在下拉里直接回答 yes/no/Enter/Esc;在 Settings → Notifications 中开启桌面通知、声音和类似 https://ntfy.sh/my-topic 的 ntfy 主题以接收手机推送。
  5. 在视图栏切换终端、Git diff、文件、笔记和任务;diff 中可回滚单个文件或单个 hunk,Ctrl+F7 / Ctrl+Shift+F7 逐处跳转,Ctrl+Shift+Y 查看提交历史,Ctrl+Shift+F 跨所有会话历史搜索,Ctrl+Shift+L 搜索当前终端的回滚缓冲。
  6. 在 Settings → Shortcuts 中重绑定快捷键;Ctrl+Shift+H 打开由同一份列表生成的帮助。数据位于 ~/.config/agent-session-manager-desktop(sessions.json、commands.json、backups/、activity-stats.json、asmgr-desktop.log),任务文件位于各工作目录的 .taskmaster/tasks.json。

这个 Agent 有哪些优点和局限?

优点
  • 会话托管在 tmux/psmux 而非 App 进程中,关闭窗口、重启应用甚至重装后仍可重新 attach,代理不会中断。
  • 跨平台覆盖面完整:Linux 的 .deb/.rpm、macOS 的 .app(Intel 走 Rosetta 2)、Windows 的按用户安装包,并支持三平台原地自更新。
  • 审阅能力落在会话产物上:逐文件与逐 hunk 的 diff 回滚、CodeMirror 6 编辑器保留行尾/BOM/末尾换行使未改动文件字节一致、Ctrl+Shift+Y 提交历史与 Ctrl+Shift+F 跨会话历史搜索。
  • 注意力管理具体可操作:⏳ 收件箱可在不切换标签的情况下回答 yes/no/Enter/Esc,并支持系统通知与 ntfy 手机推送(默认全部关闭)。
  • 代理无关且可扩展:Claude、Gemini、Aider、Codex、Amazon Q、OpenCode、纯 shell 或自定义命令,另可导入 Konsole/kitty/Alacritty/WezTerm/Ghostty/iTerm2 配色方案并重绑定所有快捷键。
  • 本机优先并带恢复机制:无遥测,删除的会话与标签进入回收站,设置与会话列表按分钟/小时/天/周自动快照,任务文件单独备份。
局限
  • 硬性运行时依赖终端复用器:缺少 tmux(Linux/macOS)或 psmux(Windows)时无法创建会话,只能在启动提示里接受自动安装命令。
  • 仅限桌面图形环境:官方明确说明不能用于 SSH 或 headless 服务器,这类场景只能用同作者的 TUI 版本。
  • 架构栈较重:Go 1.24+、Node.js + npm、Wails CLI 以及 Linux 上的 WebKitGTK 都是构建前提,Ubuntu 24.04+/Fedora 40+ 还需要 -tags webkit2_41。
  • 跨标签的输出重放与渲染共用 WebKit 主线程,README 自身也指出繁忙的后台代理不能被允许饿死正在输入的前台标签,终端卡顿时需在 canvas/DOM/WebGL 渲染器之间切换排查。
  • 任务数据放在各工作目录的 .taskmaster/tasks.json 而不是统一配置目录,意味着任务随代码库走、需要单独纳入版本控制或备份策略。
  • 部分便利功能依赖外部服务或包:ntfy 需要自备主题与手机 App,Task Master AI 动作需要 npx 拉取 task-master-ai MCP 包。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Agent Session Manager 桌面版 当前 67 · 存在缺口 桌面应用免费 ★ 29 1 天前 Go Codex · Claude Code
vibepanel 多代理开发控制台 85 · 表现良好 自托管服务免费 + 模型费 ★ 56 9 天前 Go Codex · Claude Code
dev-3.0 76 · 表现良好 桌面应用 ★ 327 1 天前 TypeScript Codex · Claude Code
OpenCodeReview 53 · 缺口较多 命令行工具免费 + 模型费 ★ 49k 1 天前 Go Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
67/ 100 五分制 3.4 / 5
本评测基于 2026年9月18日 的源码;此后该项目发布了 23 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 16/29
可靠稳定 9/14
适用触发 14/18
规范维护 14/18
有效结果 10/13
证据核验 4/8
查看各维度的扣分理由
信任安全16 / 29 · 2.8/5

README 明确说明数据本地化、无遥测、外部通信仅限 GitHub 更新检查、用户配置的 ntfy 推送与首次 Task Master 的 npx 调用,透明度较好;但 go.mod 引入 robotgo/gohook/uinput/portaudio 等全局输入与音频采集能力,属于远超“会话管理”所需的权限面,且未见权限最小化说明或运行时授权边界,故 least_privilege 仅 1。删除会话有回收站、自动快照与手动快照,回滚能力证据充分给 3。敏感数据处理方面,语音转写可走 Google Speech API,但 README 未说明音频/凭据如何存储与传输,扣分至 1。依赖安全有 CI 中 npm audit --audit-level=moderate 与固定 commit 的 action 版本,但 Go 侧无漏洞扫描,给 2。外部效果(自更新、winget 安装 psmux、npx 拉取包)有描述但缺少确认与失败回退细节,给 1。来源归属仅指向同作者 TUI 仓库,无第三方代码/数据来源标注,给 1。

可靠稳定9 / 14 · 3.2/5

README 对 tmux/psmux 缺失、崩溃后会话存活、活动检测误判等场景给出解释,失败信息与恢复路径描述一致,给 2;但全部为文档断言,仓库内未见对应错误处理代码或测试证据,无法给更高。依赖可用性方面 go.mod 与 CI 明确列出原生依赖(WebKitGTK、PortAudio、MSYS2 工具链)及安装方式,可复现性尚可,给 2。自一致性上 README 与 CI/release 工作流对构建标签、产物命名的描述基本吻合,给 2。

适用触发14 / 18 · 3.9/5

受众与场景描述非常具体(多 agent 并行、等待提醒、移动推送、SSH/无头不适用),给 3。能力边界有“不适用于 SSH/无头”“自定义 agent 命令”等说明,但未系统列出不支持项,给 2。触发精度方面快捷键、命令面板、等待检测模式可更新等描述清晰,但活动检测依赖 pane 输出模式,存在误判且仅靠文档说明,给 2。环境适配覆盖 Linux/macOS/Windows 三平台与 WebKitGTK 版本差异,但 macOS 仅 Apple Silicon、Intel 需 Rosetta,属部分覆盖,给 2。

规范维护14 / 18 · 3.9/5

信息架构优秀:功能分组、快捷键表、目录布局、FAQ 齐备,给 3。安装说明含 deb/rpm/tar/安装器与运行时依赖,给 3。命名稳定性方面二进制名 asmgr-desktop 与产品名 Agent Session Manager 并存,macOS 包名被重命名,存在一定不一致,给 2。示例与 FAQ 丰富,给 3。已知限制有零散说明(无头不可用、检测误判、渲染器性能)但未集中成节,给 2。LICENSE 为完整 MIT 文本,给 3。版本与变更方面 release 工作流引用 CHANGELOG.md 并做 SemVer 校验,但仓库未提供 CHANGELOG 内容,给 2。维护责任方面发布者身份未经验证,无 SECURITY/CONTRIBUTING/维护者承诺,给 1。

有效结果10 / 13 · 3.8/5

输出可用性高:桌面 GUI、终端复用、diff/文件编辑、任务列表等直接产出可用结果,给 3。边际价值在于把多 agent 会话集中管理并提供等待提醒,相对纯终端有增量,但核心仍依赖 tmux/psmux 与既有 agent CLI,增量属中等,给 2。成本收益方面需安装原生依赖、WebKitGTK、PortAudio 等,构建与运行成本不低,收益对重度多 agent 用户明显、对轻度用户有限,给 2。

证据核验4 / 8 · 2.5/5

claim_traceability 弱:README 大量功能断言(20 种语言、字节级保存、自更新)在给定文件中无对应实现或测试证据,给 1。交叉印证方面 CI 工作流与 README 在构建标签、平台支持、绑定校验上互相印证,浏览器测试 fixture 也佐证了部分 UI 行为,给 2。事实与推断分离不足:README 将设计意图与已验证行为混述,未标注哪些经过测试,给 1。

风险与缓解建议
  • go.mod 引入 robotgo/gohook/uinput/portaudio 等全局输入注入与音频采集依赖,权限面远超会话管理所需,静态审查无法确认其运行时边界。
  • 语音转写可调用 Google Speech API,但音频与凭据的存储、传输与保留策略未在文档中说明。
  • 自更新、winget 安装 psmux、npx 拉取 Task Master 等外部动作缺少确认与失败回退细节。
  • 发布者身份未经验证,无 SECURITY/CONTRIBUTING 或维护者承诺,长期维护责任不明确。
  • README 中大量功能与质量断言在给定文件中无实现或测试证据支撑,属未验证声明。
  • macOS 产物仅支持 Apple Silicon,Intel 需 Rosetta,平台覆盖不完整。
证据充分度:低 评估于 2026年9月18日 审查版本 8338350a2df2 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.1.26
    发布说明摘录
    Added - A password picker. Ctrl+Shift+E or the key button types a saved password into the tab in front of you. Passwords can come from the app's own list, kept in the system keyring, from a KeePassXC database, from Bitwarden, or from any other tool that has a command line. The interface only ever holds names, Enter is pressed only if you ask for it, and a tab running an agent warns first, since an agent passes on what it reads to its model provider. Opened vaults lock themselves after 15 minutes without use. …
    在 GitHub 查看 ↗
  2. v1.1.25
    发布说明摘录
    Changed - The macOS build needs macOS 15 (Sequoia) or later, up from macOS 14. GitHub is retiring the macOS 14 machines it was built on, and the audio library it bundles comes built for the system it is built on. Fixed - **A session started out of view no longer fills its scrollback at 80 columns.** Sessions reopened at launch, and sessions and tabs started in the background, began at the terminal's default 80x24 until a terminal opened on them — and Claude Code, reprinting the conversation as it …
    在 GitHub 查看 ↗
  3. v1.1.24
    发布说明摘录
    Added - Reorder the view bar — terminal, notes, tasks, diff, files — in Settings for every tab, or from a tab's menu for that tab alone, which can go back to the global order at any time. The views can also be dragged in the bar; the drag asks whether the new order is for every tab or this one, and the answer can be remembered (Settings → "Dragging in the view bar"). - Delete a file in the Files view, with a confirmation and ten seconds to undo — from the toolbar, or with Delete on a row of the tree. The …
    在 GitHub 查看 ↗

常见问题

使用它需要付费或注册账号吗?
不需要。应用本身是 MIT 许可的本地桌面程序,没有遥测,也没有登录流程。费用与账号只可能来自你选用的代理自身(如 Claude、Codex 的订阅与限流窗口),或你为 ntfy 指定的服务端。
它会把我的代码或会话记录上传到哪吗?
按文档,除非你主动触发,否则不会有任何数据离开本机:应用只在检查自身更新时访问 GitHub,在你配置了 ntfy 主题时推送到该服务器,以及首次使用 Task Master AI 动作时调用 npx。会话、输出和文件都留在本地。
关掉窗口或者应用崩溃,正在跑的代理会怎样?
不会受影响。代理进程运行在 tmux/psmux 会话中而不是应用进程里,关闭窗口、应用崩溃或重启机器后会话仍在,重新打开应用即可重新 attach 到原处。
我可以同时开两个窗口吗?
可以,但会被保护机制拦一下:第二个窗口会给出警告,并对该项目保持只读,以免两个实例互相覆盖对方的终端。
我用的代理不在内置列表里怎么办?
在新建标签时选择 Custom 并填入要执行的命令即可,它会像其他代理一样获得标签页和状态行。状态判断依赖 pane 输出的模式匹配,若被非常规提示符误导,可在 Settings 中手动更新检测模式,而不必等待应用发版。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents