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. Фреймворк стал отраслевым стандартом для кроссплатформенной разработки аудиоприложений.

ℹ Контекст
JUCE используют такие компании, как Korg, Pioneer, Arturia, Akai Professional и M-Audio. Фреймворк был приобретён сначала ROLI, затем PACE Anti-Piracy, однако Джулиан Стор продолжал работу в индустрии, создавая новые инструменты.

По словам самого Стора, Juggler — его попытка создать AI code agent после того, как он провёл слишком много часов, восхищаясь возможностями моделей, но ненавидя CLI-интерфейс, и имея собственные идеи о том, каким должен быть лучший UX для этого.

Иными словами, Juggler появился по той же причине, что и JUCE — из искреннего раздражения существующими инструментами и желания сделать лучше.


Что такое Juggler и в чём его главная идея

Если у Juggler есть своя «фишка» — он создан для людей, которые хотят более плотно контролировать то, что LLM делает с их кодовой базой. Инструмент даёт вам визуальную рабочую среду: инспектируемые вызовы инструментов, ветвящиеся треды, редактируемый контекст.

«Сессия — это дерево, а не бесконечная лента. Это Yjs-документ, а не транскрипт.» — Джулиан Стор, GitHub README

Главное отличие от Claude Code, Codex CLI и других агентов — принципиальный отказ от терминального интерфейса:

Это настоящий GUI. Не консольное приложение. Всё построено на графической навигации, инспекции и управлении.

Вызовы инструментов, свойства элементов и вложенные субтреды отображаются в виде колонок в стиле Finder (Miller columns).

💡 Для кого это
Juggler ориентирован на разработчиков, которым важно понимать каждый шаг агента: что он читает, что пишет, какой инструмент вызывает. Если вы хотите «доверить и забыть» — это не ваш инструмент. Если хотите контроля — Juggler для вас.

Ключевые возможности и архитектура

Ветвящиеся треды вместо линейного чата

Большинство агентов дают вам единый линейный транскрипт, и если повезёт — возможность перемотать назад. 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 по умолчанию — ничто за пределами вашей машины не может его достичь.

⚠ Безопасность
Если вы открываете доступ по LAN (клавиша p в терминале или флаг --public), помните: LAN-доступ не защищён паролём. Любой, кто может достучаться до адреса, сможет управлять агентом. Включайте только в доверенных сетях.

Лицензирование и бизнес-модель

Extensions API и основное расширение juggler core лицензированы под Apache-2.0. Само главное приложение — под AGPLv3.

Никакой регистрации не нужно — это просто приложение, что позволяет сделать вход в мир агентов максимально безболезненным.

Бизнес-план проекта — «выпустить и посмотреть, что будет». Если интерес окажется достаточным, автор может добавить «pro»-версию с дополнительными функциями для финансирования проекта.

На данный момент это альфа/бета-версия. Разработка заняла около 6 месяцев интенсивной работы, и приложению ещё предстоит «повзрослеть» в реальных условиях.


Juggler vs. конкуренты: сравнительная таблица

ВозможностьJugglerClaude CodeCodex CLICursor
Тип интерфейсаGUI (десктоп + браузер)CLICLIIDE-плагин
Open source✅ AGPLv3
Ветвящиеся треды✅ Дерево❌ Линейный❌ Линейный⚠️ Ограничено
Инспекция tool calls✅ Полная⚠️ Частичная⚠️ Частичная
Поддержка LLMMulti (Claude, OpenAI, Gemini, Ollama…)Claude onlyOpenAI onlyMulti
Плагины/расширения✅ JS-плагины✅ (платные)
Локальный запуск
Синхронизация клиентов✅ (Yjs)
РегистрацияНе нужнаНужнаНужнаНужна
📝 Практический сценарий
Вы работаете над рефакторингом большого модуля. Запускаете Juggler, создаёте задачу. Агент читает файлы и предлагает изменения — каждый вызов инструмента вы видите в Miller columns. Вам не нравится направление? Вы возвращаетесь к нужной точке в дереве и создаёте новую ветку с другим промптом. Ни один другой CLI-агент так не умеет.

Почему это важно для экосистемы 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 заслуживает вашего внимания.

Ресурсы: