Show HN: Juggler – 一个开源GUI代码智能体,由JUCE的创建者开发
摘要
Juggler是一个开源GUI代码智能体,提供了一个可视化工作台,用于与LLM交互以编辑代码,具有可检查的工具调用、分支线程和可编辑上下文。它可以在本地或远程运行,并支持多种模型。
查看缓存全文
缓存时间: 2026/07/14 16:17
juggler-ai/juggler 源代码:https://github.com/juggler-ai/juggler
Juggler
没错,又一个人工智能编码代理。行业绝对需要再多一个。如果说 Juggler 有什么独特之处,那就是它面向那些希望对 LLM 在代码库上做的事情有更多动手控制权的人。它为你提供了一个可视化工作台:可检查的工具调用、分支线程、可编辑的上下文。更多介绍请访问网站:https://juggler.studio
以下是 TL;DR:
- 这是一个真正的 GUI。 这不是控制台应用。它完全关乎图形化的视觉导航、检查和操控。
- 会话是一棵树,而不是无尽滚动。 它是 Yjs 文档,不是记录文本。可以创建子线程、深入探索、回溯、比较和编辑。
- 所有重要内容都可见。 工具调用、审批、线程结构、项目属性、原始上下文 —— 都布局在 Finder 风格的米勒列中,而不是藏在可折叠的聊天里。
- 从下到上全是插件。 上下文项、斜杠命令、LLM 循环策略及其 UI 都是 JavaScript 扩展,你可以检查、分支或替换它们。
- 可在本地、远程或同时运行。 在原生桌面应用和/或浏览器中使用相同的会话和相同的 UI。多个客户端可以连接到同一个会话。
- 与常见的模型动物园对话。 支持 Claude Code(通过 CLI 或 API)、OpenAI(codex plan 或 API)、Gemini、Ollama、OpenRouter、Z.AI、Deepseek 等。
快速开始
从 Releases 页面(https://github.com/juggler-ai/juggler/releases)或 juggler.studio(https://juggler.studio)下载构建版本。每次下载都包含两个相同的主要部分:
- Juggler 应用 —— 原生桌面应用。按你期望的方式工作。
juggler—— 无头命令行服务器。在终端中运行它,用于长期运行、远程或可网络访问的会话。它没有自己的窗口,但可以在其终端中键入w打开桌面应用,或使用它打印的浏览器 URL。
桌面应用、浏览器标签页(本地或远程机器上)都可以是查看同一服务器会话的客户端。
安装
- macOS —— 下载
.dmg,打开它,将 Juggler 拖到 Applications 文件夹,然后启动。应用和其服务器捆绑在一起,因此服务器会自动启动。首次打开时,macOS Gatekeeper 可能会阻止下载:右键(或 Control+单击)应用 → 打开 → 打开,或前往 系统设置 → 隐私与安全性 → 仍要打开。首次启动后即可正常打开。 - Windows —— 下载
Juggler--setup.exe并运行。它会在同一目录下安装桌面应用和匹配的juggler.exe命令行服务器(并可选择将juggler添加到 PATH),使两者永不分隔。 - Linux —— 下载
juggler服务器二进制文件并在终端中运行,然后通过浏览器或桌面应用连接。
桌面应用和服务器始终作为一个单元一起发布和安装——参见 docs/distribution.md。
直接运行服务器
对于无头会话,只需运行:
juggler
# 打印从浏览器连接所需的一切信息
默认情况下,服务器会打开一个 Web UI 并打印其 URL 以及用于便捷连接的二维码。服务器默认仅本地主机——你的机器之外的设备无法访问。要让局域网上的其他设备连接,请在终端中按 p(或使用 --public 启动)。局域网访问没有密码:任何能访问该地址的人都可以驱动代理,因此只在你信任的网络中启用。超出局域网访问的功能不包含在此仓库中:从本源码构建的版本仅限本地 + 局域网。来自 juggler.studio 的官方 Juggler 二进制文件(https://juggler.studio)额外包含 WAN 访问模式,用于跨互联网连接你的服务器(请参阅 LICENSING.md 了解不在本仓库中的组件)。
它有什么不同?
你的对话是一棵可编辑的树,而不是聊天历史
大多数代理提供一个单一的线性记录,运气好的话可以回退。Juggler 为你提供一棵树。任何点都可以分支成子线程。子线程可以再次分支。你可以直接导航、检查和编辑结构。UI 使用米勒列:左边是根,选中的项目向右展开属性和子项。(如果你用过 Finder 的列视图,你已经理解了基本操作。)
一切都是扩展
核心应用管理文档和编排。组成文档的几乎所有对象都由 JavaScript 扩展定义:
- 上下文项 —— 对话中的每种项目类型(
read-file、replace-text、bash等)既控制它如何与 LLM 通信,也控制它在 UI 中的显示方式。 - 策略 —— 高级 LLM 循环,如
plan、research,或你自己的奇思妙想,也都是插件。 - 命令 —— 像
/clear和/compact这样的斜杠命令都只是操作用户会话文档的插件。
并非每个 LLM 工作流都希望以无头 Python 脚本的形式躲在终端里。如果一个编排想法需要自己的 UI、控件或可视化,Juggler 是一个实现它的平台。
具有多客户端架构的桌面应用
Juggler 看起来像一个原生桌面应用,但底层是一个提供实时协作会话的本地 Web 服务器。该应用只是一个客户端。浏览器标签页可以是另一个客户端。另一台机器也可以是另一个客户端。这意味着你可以在代码所在的地方运行服务器——本地工作站、开发机、服务器群——并从任何方便的地方附加视图。
模型支持
Juggler 连接到常见的模型:Claude Code(通过 CLI 或 API)、OpenAI(codex plan 或 API)、Gemini、Ollama、OpenRouter、Z.AI、Deepseek 等。添加更多提供商很容易,因此如果你缺少某个提供商,请让你友好的邻居 LLM 以 PR 的形式添加。
从源码构建
扩展系统的理念是大多数人不需要实际构建应用。如果你需要,请参阅 CONTRIBUTING.md 了解完整设置。简要版本:
git clone --recurse-submodules https://github.com/juggler-ai/juggler.git
cd juggler && make build
如果你已经克隆但没有 --recurse-submodules,可以通过以下命令获取子模块:
git submodule update --init --recursive
Windows 二进制文件可以从任何主机交叉编译,使用 make build-windows;Linux 桌面应用必须本地构建。
技术栈
Juggler 是一个简单的原生应用,没有多余负担。后端是 Go,使用 Wails 进行窗口管理。UI 是由 Go 后端提供的 HTML/JS。会话文档使用 Yjs 存储和同步。扩展是 JavaScript。它不使用 Electron。前端使用类型检查的 JavaScript 而非 TypeScript:类型存在于 JSDoc 中,并在 CI 中通过严格的静态 linting 强制执行。源代码和发布版本之间没有构建步骤。
贡献
请参阅 CONTRIBUTING.md 了解设置、测试命令和项目约定。对于安全问题,请使用 SECURITY.md 中描述的私有渠道,而不是公共问题跟踪器。
许可证
Juggler 的应用代码根据 GNU Affero General Public License v3.0 或更高版本 许可。扩展 SDK(web/sdk/)和捆绑的扩展(web/extensions/)根据 Apache-2.0 许可,因此你可以构建扩展——包括闭源的——无需承担 copyleft 义务。请参阅 LICENSING.md 了解完整映射。对于 AGPL 部分,你可以自由使用、修改和重新分发——但你分发或作为服务托管的任何修改版本也必须以 AGPLv3 发布。如果你想用它做闭源的事情,请联系我讨论商业许可。
相似文章
@CryptoTied: 兄弟们!一个强调可视化控制的 AI 编码 Agent 来了 Juggler 是一个专注于“可控、可视化”的 AI 编码 Agent,核心目标是让开发者能真正掌控 LLM 与代码库的交互过程,而不是黑箱操作。 它提供了原生桌面应用 + Mi…
Juggler 是一个强调可视化和可控性的 AI 编码 Agent,提供原生桌面应用、会话树结构、插件化架构,并支持 Claude、OpenAI、Gemini 等多种模型,让开发者能清晰查看和编辑 LLM 的每一步操作。
1jehuang/jcode
jcode 是一个开源编码代理工具,专为多会话工作流设计,资源占用低,提供CLI安装方式,并在性能上优于Claude Code和Cursor Agent等现有代理。
Koder:基于浏览器界面的编码和计算机使用工具
发布Koder,一个本地/离线的AI编码和计算机使用工具,具有浏览器界面,支持llama.cpp、MCP、视觉模型和多任务规划。
Show HN: Y – 一个基于Electron的可塑编码代理桌面应用
Y是一个可塑的、以聊天为先的桌面应用,能够并行运行像Claude Code和Codex这样的本地编码代理,并具备自我修改的UI功能。
Show HN: Jacquard —— 一种专为AI编写、人工审核代码设计的编程语言
Jacquard是一种专为AI编写、人工审核代码而设计的编程语言,内置效果跟踪、概率模拟和规范标识,帮助人类信任AI生成的程序。