Newshot

Show HN:AI Juggler – 编排你的桌面版 Claude 和 Codex 应用

Translation(model translation, not the source's own text)

AI Juggler

查看你的 Mac 上打开了哪些 AI 编程会话、它们在哪里,一步跳转到任意一个,并了解每个账户还剩多少额度。

免费开源(MIT),本地优先,适用于 macOS。AI Juggler 与你已经在用的编程工具配合工作。它从不代理它们的流量,从不替你登录,也从不存储你的凭据。

最新版本
最新版本

下载 · 快速开始 · 用户指南 · 隐私 · 讨论

为什么

如果你付费订阅了不止一个 AI 编程服务,比如两个 Claude 账户加 Codex,你最终只能手工应付:多个 Claude 应用配置、配置文件夹、shell 别名、终端标签页,还要猜哪个窗口里是哪个会话、哪个账户还有额度。AI Juggler 把这一切放进一个窗口:

  • 什么开着、在哪里,一步就到。列表显示当前在 Claude 应用、你的终端、Codex 应用和 Cursor 中打开的会话,按各自运行的应用分组(“Claude app · Work”、“Claude Code · Personal”),需要你处理的排在最上面。Go to it 会把对应的应用带到前台。已结束和非活跃的会话一键可达,绝不碍事。
  • 应用与账户彼此分开。一个应用是某个配置下的一个应用:一个 Claude 应用配置,或者某个配置文件夹上的 Claude Code 或 Codex。一个账户是它登录的订阅。多个应用共用一个账户很正常,它们共享该账户的限额。
  • 可信的用量与限额。只有实测过的数字才会显示。其他情况一律显示“Not measured yet”,绝不编造一个 100%。
  • 一览你的 Mac。你的 AI 工具用了多少内存和 CPU,哪个窗口占用高,以及可以清理的残留进程。
  • 应用由它为你管理。每套配置可以就地使用,也可以作为独立副本使用,并在你选定的应用中启动会话。新应用可以带着你常用的 MCP 服务器和权限启动。
  • 当一个应用或工具额度用完时,把对话带到另一个应用或工具,之后再切回来。
  • 找到你说过的任何内容。历史记录按会话主题以及其中说过的话,搜索每一个已结束的会话。
  • 你的规则和 MCP 服务器,处处一致。查看 CLAUDE.md 与 AGENTS.md 哪里不同,并在你选择时让它们保持一致。

下载

应用渠道获取方式
AI Juggler稳定版或 Beta 版(在设置中选择)最新版本 — AI-Juggler-<version>-universal.dmg
AI Juggler NightlyNightly(独立应用,有独立数据)Releases — AI-Juggler-Nightly-<version>-universal.dmg

要求:macOS 14 Sonoma 或更高版本,Apple 芯片或 Intel(一个通用应用)。至少安装并登录 Claude Code 或 Codex 其中之一。

每个构建都由 Apple 签名并公证。首次打开时,macOS 会询问你是否确定;选择 Open。

AI Juggler 在启动时检查更新并提示,绝不在未经你同意的情况下安装。设置 › 通用 › 关于与更新 会显示你的版本,让你在稳定版和 Beta 版之间切换,也可以回退到更早的版本。

快速开始

  • 打开 AI Juggler,选择 Find my accounts。它会查找你的 Claude Code 和 Codex 配置(例如 ~/.claude 和 ~/.codex)。每一套都是一个配置。
  • 对每套配置,选择 Use it where it is(不复制任何内容)或 Make a separate copy(AI Juggler 保留自己的副本,你的原始配置绝不会被动到)。
  • 如果某个工具需要你登录,它会打开该工具自己的登录界面。AI Juggler 永远看不到你的密码。
  • 左侧列表显示当前打开的内容,按位置分组:每个会话运行的应用和配置,例如“Claude app · Work”。在某个会话上按 Enter(Go to it)即可把它的应用带到前台。已结束和非活跃的会话位于列表下方“Also:”这一行之后。
  • 用 New session 启动新会话,并选择它运行的配置。
  • 当账户额度不足时,打开该会话并选择 Switch account…,把对话带到另一个账户或工具。

用户指南会逐步讲得更细,从“What's open”开始,并讲到如何使用它。

目前可用的功能

状态
现在 Claude 应用、终端、Codex 应用和 Cursor 中打开了什么,按应用和配置文件分组,并提供“Go to it”Beta:0.1.x 新增
将账户作为订阅,以及每个订阅登录了哪些配置文件Beta:0.1.x 新增
每个会话和项目,包括在 AI Juggler 之外启动的可用
已完成会话的历史记录,可按其中说过的内容搜索(对于在 AI Juggler 之外启动的会话,请在 Settings › Privacy 中开启)可用
一个会话正在运行多少个子代理,以及每个子代理被要求做什么可用
终端:查找、可点击的链接和路径、文字大小、Maximize、独立窗口可用
在任一工具中从保存的上下文包启动会话可用
按会话、账户和项目统计的使用量和成本,来自这些工具自身的记录可用
Codex 限额,读取自 Codex 自身的记录可用
每个窗口大约还剩多少次你常用的会话,以及一张燃尽图可用
账户或项目组的月度上限:达到 80 % 和 100 % 时警告,但绝不停止可用
Claude 限额对在 AI Juggler 中启动的会话可用;对其他会话,需按配置文件开启(见 Privacy )
这台 Mac:你的 AI 工具(包括 Claude 应用)的内存和 CPU可用
清理残留进程(除非你开启,否则自动清理是关闭的)可用
重命名、删除和选择默认配置文件可用
从 Claude Squad 或 Vibe Kanban 迁移:它们的工作树保留在你的项目中,其配置文件使用的配置文件夹会作为配置文件提供可用
新配置文件以你常用的 MCP servers、权限和状态行开始可用
跨工具比较规则文件和 MCP servers,并在应用时使其保持一致可用
重启崩溃的会话、在它们工作时保持 Mac 唤醒、崩溃后重新打开可用(每一项都是一个设置)
登录时打开 AI JugglerBeta:0.1 新增,尚未在已安装版本上验证
会话需要你时发送 macOS 通知(每种通知在你选择前都是关闭的)Beta:0.1 新增,尚未在已安装版本上验证
备份,以及回退到较早版本可用
将对话切换到另一个账户或工具Beta:已在 Claude Code 账户之间、Codex 账户之间,以及 Claude Code 与 Codex 之间双向实测;每一对仍显示“Not proven yet”
在账户额度不足时预先准备切换,以便限额到来时就绪Beta:0.1 新增
崩溃报告,在你的 Mac 上脱敏处理(除非你选择,否则关闭)保留在你的 Mac 上;此版本还无法将它们发送到任何地方
Fleet:在一个窗口中管理你的其他 Mac:它们的会话、在其中一台启动会话、按机器统计使用量Beta:已用同一台 Mac 上的两个副本验证,尚未跨两台 Mac 验证( guide )
OpenCode、Kimi Code 和 Grok BuildBeta:根据其源码和文档构建,尚未实测
更多工具(ZCode、Kiro 等)计划中
Windows 和 Linux计划中:Windows 首个版本会在 1.0 之前推出;Linux 的时间尚未确定

支持的工具

工具支持
Claude Code(claude 命令)会话、用量、限制、启动会话、切换(beta)
Codex(codex 命令)会话、用量、限制、启动会话、切换(beta)
OpenCode(opencode 命令,1.x 和 2.x)Beta,尚未实际验证:会话、用量(token,以及它自己的成本估算)、启动会话、规则和 MCP 服务器
Grok Build(grok 命令)Beta,尚未实际验证:会话、启动会话(你的 Claude 和 Cursor 配置不会牵扯其中)、规则和 MCP 服务器;其用量尚未读取
Kimi Code(kimi 命令,2.x)Beta,尚未实际验证:会话、启动会话(在 Kimi 套餐上绝不会自行启动,该套餐仅供交互使用)、规则、技能和 MCP 服务器;其用量尚未读取
Claude 应用(桌面端)其打开的会话会显示在它的每个配置档下,并带有“前往”;This Mac 会测量其内存和 CPU
Codex 应用(桌面端)其打开的线程会显示出来,并带有“前往”
通过另一项服务:在 Claude Code 和 Codex 上使用 OpenCode Go 和 KimiBeta,尚未实际验证:一个只需粘贴一次密钥的账户(密钥保存在 macOS Keychain 中),并让 Claude Code 或 Codex 配置档指向该服务公布的地址。其用量是估算值(OpenCode Go)或未知(Kimi),并且切换到它从来不是经过验证的一键切换

AI Juggler 会像你的终端一样,通过 shell 的 PATH 找到每个工具,即使你从 Finder 打开应用也是如此。

AI Juggler 读取、写入和发送的内容

仅在你的 Mac 上读取:

  • 你的工具配置:Claude Code 的 ~/.claude(以及你使用的其他 Claude 文件夹)和 Codex 的 ~/.codex,用于列出对话并根据其对话记录统计用量;OpenCode 的 ~/.local/share/opencode 数据库(读取但不修改),以及其在 ~/.config/opencode 中的设置;Kimi Code 的 ~/.kimi-code 会话列表和设置;Grok Build 的 ~/.grok 会话和设置。
  • 这些配置中的账户名称和电子邮件,让你能区分账户,并看出哪些配置档共用同一个账户。
  • 每个应用打开了哪些会话(来自应用自己的会话文件),以及每个正在运行的进程属于哪个应用(来自其父进程)。绝不读取进程的环境、密钥文件或令牌缓存。
  • 当你打开某个会话的页面时,会从这台 Mac 上的该会话记录中读取最后几条消息(Last messages,默认开启;可在设置 › 桌面应用中关闭)。它们不会保存在任何地方。
  • 正在运行的进程列表,用于显示实时会话和
  • 在你自己的设置和项目中,只做你选择的内容,且每一项都会在实施前显示:测量在其他地方启动的会话的 Claude 限额(默认关闭,按配置档)。它会在实施前显示对该配置档 settings.json 的确切一行更改,保持你自己的状态行正常工作,关闭后会将该文件精确恢复。将对话切换到一个配置档,会把该对话的文件添加到该配置档中,与它自己的文件并列,绝不会覆盖它们。你在切换界面勾选的 MCP 服务器、技能等也会在那里设置好。将设置复制到配置档:你勾选的 MCP 服务器、权限和状态行。绝不包括登录信息、历史记录或缓存。将规则文件对齐会只写入你项目中的那一个文件,并保留旧文件以便撤销。将 MCP 服务器复制到另一个配置档。机密绝不会被复制:需要机密的服务器改为从命名变量中读取它,或者根本不会被复制。每项设置操作、设置复制和规则更改都会列在 设置 › 切换 › 上下文包与机密 中,并带有一个撤销,只移除已添加的内容,且仅在它未被更改时可用。被切换的对话的文件会留在另一个配置档中,你可以从那里切换回来。

在你自己的设置和项目中,只做你选择的内容,且每一项都会在实施前显示:

  • 测量在其他地方启动的会话的 Claude 限额(默认关闭,按配置档)。它会在实施前显示对该配置档 settings.json 的确切一行更改,保持你自己的状态行正常工作,关闭后会将该文件精确恢复。
  • 将对话切换到一个配置档,会把该对话的文件添加到该配置档中,与它自己的文件并列,绝不会覆盖它们。你在切换界面勾选的 MCP 服务器、技能等也会在那里设置好。
  • 将设置复制到配置档:你勾选的 MCP 服务器、权限和状态行。绝不包括登录信息、历史记录或缓存。
  • 将规则文件对齐会只写入你项目中的那一个文件,并保留旧文件以便撤销。
  • 将 MCP 服务器复制到另一个配置档。

机密绝不会被复制:需要机密的服务器改为从命名变量中读取它,或者根本不会被复制。每项设置操作、设置复制和规则更改都会列在 设置 › 切换 › 上下文包与机密 中,并带有一个撤销,只移除已添加的内容,且仅在它未被更改时可用。被切换的对话的文件会留在另一个配置档中,你可以从那里切换回来。

  • 启动时向 GitHub 检查更新。
  • 每天一次,向你拥有账号的每个工具,在 npm 的公共 registry 查询最新版本(可在任意工具页面关闭)。它从不更新工具。
  • 除非你开启,否则没有其他内容:使用统计(默认关闭,见 docs/usage-stats.md)、Fleet(你自己的 Mac 在你的
权限用途未开启时
辅助功能将某个会话的确切窗口带到前台正确的应用和配置文件会浮到前面,但不是确切的窗口
自动化选中某个会话的终端标签页终端会浮到前面,但不是那个标签页
屏幕录制在本 Mac 上实时预览某个会话的窗口(仅在某个工具能提供预览时才会出现)没有实时预览
通知当你处于其他应用时,提醒你某个会话需要你你回到 AI Juggler 时才会看到
本地网络Fleet,发现你的其他 MacFleet 保持关闭

在 Settings › Desktop apps › Going to a session 中开启辅助功能和自动化。前往某个会话本身从不主动请求权限。

遵守你的工具的条款

  • 只用你自己的账户。AI Juggler 从不共享或合并账户。
  • 不会自动轮换以绕过限制。切换由你选择,一次一个对话。
  • 使用真实的、未经修改的工具,以你自己运行它们的方式运行。

The proposal 说明了理由。

常见问题

我需要 API 密钥吗?不需要。AI Juggler 使用你已经登录的工具。

应用和账户有什么区别?一个应用是某个应用在其某个配置文件中的实例:“Claude Code · Work”(该工具在一个配置文件夹上)或“Claude app · b-work”(桌面应用在其某个配置文件中)。一个账户是该应用登录的订阅。会话在应用中运行;限制和费用归属于账户。同一个账户登录两个应用是正常的,两者共享其限制。参见 Accounts and apps。

为什么我关闭的会话不在列表里?列表显示当前打开的内容。已结束、不活跃和后台会话位于其下方的“Also:”行之后,或 View (⇧V) › Show 中,每个已结束的会话都在 History 中。不会删除任何内容。

Go to it 把应用带到了前台,但不是该会话的窗口。将确切的窗口带到前台需要辅助功能权限,而正确的终端标签页需要自动化。在 Settings › Desktop apps 中开启它们。对于 Claude 应用,AI Juggler 会把正确的配置文件带到前台,并提示你在其侧边栏中选择该会话。

有没有从任何应用打开 AI Juggler 的快捷键?你可以在 Settings › Desktop apps › Open AI Juggler from anywhere 中选择一个。在你选择之前没有快捷键。⌥Space 不被接受,因为 ChatGPT 使用了它。

为什么某个限制显示“尚未测量”?该工具尚未向 AI Juggler 报告该限制。AI Juggler 仅在测量到时才显示百分比,从不猜测。

它会更改我的 ~/.claude 或 ~/.codex 吗?仅当你选择上面列出的某一项更改时。每项都会先向你展示它将更改什么,并且这些设置和副本可以撤销。

我可以同时运行 Stable 和 Nightly 吗?可以。AI Juggler Nightly 是一个独立的应用,拥有自己的数据。

切换是无损的吗?不是,AI Juggler 也从不声称如此。在同一工具的两个账户之间,对话的文件会移动并继续。在 Claude Code 和 Codex 之间,另一个工具会被告知到目前为止的经过。切换屏幕会在你确认之前准确显示哪些内容会被带过去,并且你可以切换回来。参见 Continue in another app。

我是从 Claude Squad、Vibe Kanban、Crystal 或 cc-switch 过来的。大部分内容会自动迁移过来,因为 AI Juggler 读取工具自己的文件。Coming from another tool 说明了哪些内容会迁移,以及对其余内容该怎么办。

它能阻止我花费过多吗?它只发出警告,从不阻止任何事情。为某个账户或一组项目设置每月上限(Usage › Set a monthly cap),Needs you 会在 80 % 和 100 % 时通知你。参见 Monthly caps。

Windows 或 Linux?尚未支持。Windows 优先:1.0 等待其首个版本。Linux 随后;其时间尚未确定。核心代码的编写方式使两个移植都成为可能。

故障排除

文章标题:Show HN: AI Juggler – 编排你的桌面 Claude 和 Codex 应用

正文:

  • 从 Finder 打开 AI Juggler 时找不到某个工具。AI Juggler 会读取你登录 shell 的 PATH。请先在新终端窗口中确认 claude 或 codex 能运行,然后重新打开 AI Juggler。
  • “Another AI Juggler is open.”(另一个 AI Juggler 已打开。)AI Juggler 会等待几秒钟,让较早的副本完成退出。如果出现此提示,请选择 Try again,或退出另一个副本。
  • 更新失败,或你想使用之前的版本。Settings › General › About & updates › Go back to an earlier version。
  • 其他问题?请在 Discussions 中提问,或通过 Settings › Advanced › Diagnostics › Report a problem 报告 bug。那里的 Export diagnostics… 会逐文件向你展示它将要保存的内容(已清除姓名、路径和密钥),然后再由你附加。

Uninstall

  • 在 AI Juggler 中,打开 Settings › Advanced › Before you uninstall 并选择 Prepare to uninstall。它会还原 AI Juggler 可能添加到某个 Claude 配置文件里的设置(为在其他地方启动的会话测量限额),并列出剩余需要你移除的内容。你通过 AI Juggler 设置的任何其他内容都会保留,除非你撤销它;卸载指南中列出了具体步骤。
  • 退出 AI Juggler,并将它移到 Trash。
  • 删除 ~/Library/Application Support/AI Juggler(以及 AI Juggler Nightly),以移除其数据、副本和备份。

你自己的 ~/.claude 和 ~/.codex 文件夹除此之外保持原样。

Roadmap

  • 0.4:信任与完成的基础功能:一次安全审查、一个真正的命令面板、每个已完成任务的成本与浪费的开支、贴合你需求的通知和快捷键设置,以及每个核心功能都在真实工具上验证过。此外,账户和应用各自有独立页面,每个页面都能通向所有相关内容;围绕人们如何同时运行多个 agent 重新设计了 pools;更简单的 New session;以及 Floor,一个实时展示你所有 agent 工作情况的画面——所有这些都在发布前以真实用例走查过。
  • 0.5:更多工具(ZCode、Kiro、Hermes、Muse、Cursor、Antigravity),跨你多台 Mac 的 pools,以及把工作交给同事。第一个 Stable 版本是 0.5.x。
  • 0.6 和 0.7:AI Juggler 的 Windows 版,然后是 Linux 版。
  • 1.0:在 Windows 版发布成功之后。

完整计划,包括每个版本包含什么以及为什么,见 docs/plan/ROADMAP.md。

欢迎在 Discussions 中提出想法和投票。

Build from source

你需要 Rust(版本由 rust-toolchain.toml 固定)、Node 22 或更高版本以及 pnpm 10、just、Tauri CLI(cargo install tauri-cli --version "^2" --locked)和 Xcode Command Line Tools。


        git clone https://github.com/figurehead-ai/AI-juggler.git
cd AI-juggler
pnpm --dir ui install
just dev        # runs "AI Juggler Dev", with its own data, and reloads the UI as you edit
just verify     # every check CI runs
      

CONTRIBUTING.md 是开发者指南。技术规范和架构决策文档解释了它是如何构建的。

Community

  • Contributing
  • Code of Conduct
  • Security policy:私下报告漏洞

License and trademarks

AI Juggler 由 Figurehead 制作,该公司为开发者打造 AI 工具。

代码采用 MIT 许可 © Faruk Brbovic 和 AI Juggler contributors。

AI Juggler 和 Figurehead 这两个名称、徽标和应用图标是 Vuxtra LLC 的商标,不在 MIT License 的涵盖范围内。你可以将代码用于任何用途,并以项目名称指代本项目;你分发的修改版构建需要有自己的名称和图标。见 TRADEMARKS.md。

The translation is machine-generated and individual terms may be off. Nothing is rewritten or cut; the original is authoritative.

Published by HN AI
This site only summarises and aggregates; copyright stays with the original author. Headlines and summaries follow the source — where they differ, the original wins.
Read the original ↗