Juggler: GUI-агент для кода от создателя JUCE
Juggler — открытый GUI-агент для написания кода, созданный Джулианом Стором (автором JUCE). Как он работает и чем отличается от Claude Code и Codex CLI.
Juggler: GUI-агент для кода от создателя JUCE
Представьте: вы открываете AI-агент для написания кода — и вместо терминала с бесконечным скроллом видите удобный графический интерфейс. Дерево задач, ветки, инспекция каждого вызова инструмента, редактируемый контекст. Именно так выглядит Juggler — новый open-source инструмент, который уже наделал шуму на Hacker News.
За проектом стоит не случайный человек. Его автор — опытный C++ разработчик с 30-летним стажем, создавший такие инструменты, как JUCE, DAW Tracktion и язык DSP Cmajor. Теперь Джулиан Стор взялся за переосмысление того, каким должен быть AI coding agent.
Кто такой Джулиан Стор и почему его имя важно
Джулиан «Джулс» Стор — создатель C++ фреймворка JUCE и языка программирования Cmajor для аудио. Он создал JUCE в конце 90-х, и со временем тот стал самым популярным фреймворком для разработки аудиоплагинов в мире.
JUCE — это кроссплатформенный C++ фреймворк с открытым исходным кодом для создания десктопных и мобильных приложений, включая аудиоплагины форматов VST, VST3, AU, AUv3, AAX и LV2. Фреймворк стал отраслевым стандартом для кроссплатформенной разработки аудиоприложений.
По словам самого Стора, Juggler — его попытка создать AI code agent после того, как он провёл слишком много часов, восхищаясь возможностями моделей, но ненавидя CLI-интерфейс, и имея собственные идеи о том, каким должен быть лучший UX для этого.
Иными словами, Juggler появился по той же причине, что и JUCE — из искреннего раздражения существующими инструментами и желания сделать лучше.
Что такое Juggler и в чём его главная идея
Если у Juggler есть своя «фишка» — он создан для людей, которые хотят более плотно контролировать то, что LLM делает с их кодовой базой. Инструмент даёт вам визуальную рабочую среду: инспектируемые вызовы инструментов, ветвящиеся треды, редактируемый контекст.
«Сессия — это дерево, а не бесконечная лента. Это Yjs-документ, а не транскрипт.» — Джулиан Стор, GitHub README
Главное отличие от Claude Code, Codex CLI и других агентов — принципиальный отказ от терминального интерфейса:
Это настоящий GUI. Не консольное приложение. Всё построено на графической навигации, инспекции и управлении.
Вызовы инструментов, свойства элементов и вложенные субтреды отображаются в виде колонок в стиле Finder (Miller columns).
Ключевые возможности и архитектура
Ветвящиеся треды вместо линейного чата
Большинство агентов дают вам единый линейный транскрипт, и если повезёт — возможность перемотать назад. Juggler даёт вам дерево. Из любой точки можно создать субтред. Субтреды могут ветвиться снова. Вы можете навигировать по структуре, инспектировать и редактировать её напрямую.
Вы можете навигировать, углубляться, возвращаться назад, дублировать, удалять, отменять/повторять действия, переоткрывать или разветвлять треды.
Miller columns: интерфейс как в Finder
UI использует Miller columns: корень слева, выбранные элементы разворачиваются в свойства и дочерние элементы справа. Если вы использовали column view в Finder — вы уже понимаете основную механику.
Вызовы инструментов, одобрения, структура тредов, свойства элементов, сырой контекст — всё это отображается в Miller columns, а не спрятано в сворачиваемый чат.
Плагины на всех уровнях
Это плагины на всех уровнях: контекстные элементы, slash-команды, стратегии LLM-цикла и их интерфейсы — JavaScript-расширения, которые можно инспектировать, форкнуть или заменить.
Почти все объекты, составляющие документ, определены JavaScript-расширениями: контекстные элементы (read-file, replace-text, bash…), стратегии — высокоуровневые LLM-циклы (plan, research или ваши собственные изобретения) — тоже плагины. Slash-команды вроде /clear и /compact — всё это просто плагины, манипулирующие документом сессии.
Широкая поддержка LLM-провайдеров
Juggler подключается к стандартным провайдерам: Claude Code (через CLI или API), OpenAI (Codex plan или API), Gemini, Ollama, OpenRouter, Z.AI, Deepseek и другим.
Локально, удалённо или одновременно
Инструмент работает локально, удалённо или одновременно в обоих режимах. Сессия поддерживает несколько клиентов. Десктопное приложение и браузерные представления синхронизированы.
Независимо от размера экрана — одна и та же живая сессия доступна как через десктопное приложение, так и через браузер на смартфоне.
Техническая основа
Juggler — простое нативное приложение без лишнего багажа. Бэкенд написан на Go с использованием Wails для оконного интерфейса. UI — это HTML/JS, который обслуживает Go-бэкенд. Документы сессий хранятся и синхронизируются через Yjs.
Это единый Go-бинарник — без Node и без Electron.
Такое решение даёт несколько преимуществ:
- Быстрый запуск без установки зависимостей
- Лёгкая кроссплатформенность
- Yjs обеспечивает синхронизацию состояния в реальном времени между несколькими клиентами
graph TD
A[Пользователь] --> B[Juggler Desktop App]
A --> C[Браузер / Смартфон]
B --> D[Go-сервер + Wails]
C --> D
D --> E[Yjs-документ сессии]
E --> F[LLM Провайдер]
F --> |Claude / OpenAI / Gemini / Ollama| G[Ответ агента]
G --> E
D --> H[JavaScript-плагины]
H --> |read-file / bash / replace-text| I[Кодовая база]
Установка и начало работы
macOS
На macOS нужно скачать .dmg, открыть его и перетащить Juggler в Applications, затем запустить. Приложение и его сервер идут в одном пакете, поэтому сервер запускается автоматически.
При первом открытии macOS Gatekeeper может заблокировать загрузку: нажмите правой кнопкой (или Control+клик) на приложение → Открыть → Открыть, или перейдите в Системные настройки → Конфиденциальность и безопасность → Открыть в любом случае.
Windows
На Windows скачайте Juggler-setup.exe и запустите его. Он устанавливает десктопное приложение и соответствующий juggler.exe сервер командной строки в одну директорию (и может добавить juggler в PATH), чтобы они всегда оставались в синхронизации.
Linux
На Linux скачайте серверный бинарник juggler и запустите его из терминала, затем подключитесь через браузер или десктопное приложение.
Запуск
# Клонирование с подмодулями
git clone --recurse-submodules https://github.com/juggler-ai/juggler.git
cd juggler && make build
# Если уже клонировали без подмодулей:
git submodule update --init --recursive
По умолчанию сервер открывает веб-интерфейс и выводит его URL вместе с QR-кодом для удобного подключения. Сервер доступен только на localhost по умолчанию — ничто за пределами вашей машины не может его достичь.
p в терминале или флаг --public), помните: LAN-доступ не защищён паролём. Любой, кто может достучаться до адреса, сможет управлять агентом. Включайте только в доверенных сетях.Лицензирование и бизнес-модель
Extensions API и основное расширение juggler core лицензированы под Apache-2.0. Само главное приложение — под AGPLv3.
Никакой регистрации не нужно — это просто приложение, что позволяет сделать вход в мир агентов максимально безболезненным.
Бизнес-план проекта — «выпустить и посмотреть, что будет». Если интерес окажется достаточным, автор может добавить «pro»-версию с дополнительными функциями для финансирования проекта.
На данный момент это альфа/бета-версия. Разработка заняла около 6 месяцев интенсивной работы, и приложению ещё предстоит «повзрослеть» в реальных условиях.
Juggler vs. конкуренты: сравнительная таблица
| Возможность | Juggler | Claude Code | Codex CLI | Cursor |
|---|---|---|---|---|
| Тип интерфейса | GUI (десктоп + браузер) | CLI | CLI | IDE-плагин |
| Open source | ✅ AGPLv3 | ❌ | ❌ | ❌ |
| Ветвящиеся треды | ✅ Дерево | ❌ Линейный | ❌ Линейный | ⚠️ Ограничено |
| Инспекция tool calls | ✅ Полная | ⚠️ Частичная | ❌ | ⚠️ Частичная |
| Поддержка LLM | Multi (Claude, OpenAI, Gemini, Ollama…) | Claude only | OpenAI only | Multi |
| Плагины/расширения | ✅ JS-плагины | ❌ | ❌ | ✅ (платные) |
| Локальный запуск | ✅ | ✅ | ✅ | ✅ |
| Синхронизация клиентов | ✅ (Yjs) | ❌ | ❌ | ❌ |
| Регистрация | Не нужна | Нужна | Нужна | Нужна |
Почему это важно для экосистемы AI-инструментов
Рынок coding agents переполнен CLI-решениями. Системы вроде Claude Code или Codex способны ощущаться значительно мощнее, чем те же модели в обычном чат-интерфейсе — но их UX по-прежнему строится на парадигме терминала 1970-х годов.
Работа с code agent включает редактирование больших кусков многострочного текста и переработку потока информации, которую нужно сканировать, навигировать и понимать. Терминальный UX ужасен для всех этих задач, и Juggler принципиально является GUI-приложением.
Подход Стора — не просто добавить окно поверх CLI, а переосмыслить саму модель взаимодействия: сессия как документ, а не как лог-файл; дерево вместо ленты; плагины вместо жёстко прошитой логики.
Отдельного внимания заслуживает техническое решение: единый Go-бинарник без Node и без Electron — это осознанный выбор в пользу простоты и низкого потребления ресурсов.
Заключение
Juggler — не просто ещё один coding agent. Это осмысленный ответ на реальную проблему: отсутствие нормального графического интерфейса для контроля над тем, что LLM делает с вашим кодом.
Проект создан человеком с доказанным опытом: Джулиан Стор — создатель C++ фреймворка JUCE и языка Cmajor, а JUCE вырос до самого популярного фреймворка для разработки аудиоплагинов в мире. Он не новичок в создании инструментов, которыми пользуются тысячи разработчиков.
Juggler находится в альфа-стадии, и впереди ещё много работы. Но концепция — визуальная рабочая среда с ветвящимися тредами, инспектируемыми tool calls и плагинной архитектурой — уже сегодня выглядит убедительно.
Если вы устали от бесконечного терминального скролла и хотите реального контроля над AI-агентом в своём коде — Juggler заслуживает вашего внимания.
Ресурсы:
- 🐙 GitHub: github.com/juggler-ai/juggler
- 🌐 Официальный сайт: juggler.studio
- 💬 Обсуждение на HN: news.ycombinator.com/item?id=48883305