Создатель JUCE выпустил Juggler, GUI-агент для кодинга с открытым кодом

Создатель JUCE выпустил Juggler, GUI-агент для кодинга с открытым кодом

На Hacker News, в разделе Show HN, появился Juggler, новый open source GUI-инструмент для работы с ИИ-агентами кодинга. Автор поста, пользователь julesrms, который называет себя создателем JUCE, известного кросс-платформенного C++-фреймворка. Пост начинается с самоиронии («да, это ещё один агент для кодинга, индустрии определённо не хватало ещё одного»), но дальше поясняет отличие: Juggler рассчитан на тех, кто хочет не слепо доверять модели, а держать под контролем то, что она делает с кодом, и даёт для этого визуальный верстак, проверяемые вызовы инструментов, ветвящуюся структуру диалога и редактируемый контекст.

Главное отличие от большинства агентов, форма сессии. Обычно это линейная лента, которую в лучшем случае можно отмотать назад; в Juggler сессия, дерево: из любой точки диалога можно уйти в дочернюю ветку, копать вглубь, откатываться, сравнивать варианты и напрямую редактировать структуру. Технически сессия, это совместно редактируемый Yjs-документ, а не просто журнал сообщений. Интерфейс построен по принципу колонок, как в Finder на macOS (в оригинале, «Miller-колонки»): слева, корень дерева, справа раскрываются свойства и дочерние ветки выбранного элемента. Вызовы инструментов, подтверждения, структура веток и исходный контекст видны напрямую, а не спрятаны в сворачиваемых блоках чата.

Почти всё, из чего состоит приложение, плагины на JavaScript, которые можно посмотреть, форкнуть или заменить. Элементы контекста (чтение файла, замена текста, bash-команда и другие) сами решают, как обращаться к модели и как выглядеть в интерфейсе. Стратегии, то есть сценарии работы агента верхнего уровня вроде «plan» или «research» (и любые собственные), тоже плагины. Slash-команды вроде /clear и /compact устроены так же: это плагины, которые управляют документом сессии.

Juggler можно запускать локально, удалённо или сразу и так, и так. Десктоп-приложение на самом деле, лишь один из клиентов локального веб-сервера, который ведёт общую сессию: вторым клиентом может быть вкладка браузера, третьим, вкладка на другой машине. Сервер можно держать там, где лежит код, на рабочей станции, dev-машине или сервере в облаке, а подключаться откуда угодно: с ноутбука и с телефона одновременно, и оба представления будут синхронизированы. Из провайдеров моделей поддержаны Claude Code (по CLI или API), OpenAI (Codex-план или API), Gemini, Ollama, OpenRouter, Z.AI, DeepSeek и другие; недостающего провайдера можно добавить самостоятельно через pull request.

Дистрибутив состоит из двух частей: собственно Juggler, нативное десктоп-приложение, и headless-сервер juggler для командной строки, без своего окна, для долгоживущих, удалённых или сетевых сессий. Готовые сборки лежат на странице релизов репозитория и на сайте juggler.studio: под macOS это .dmg (при первом запуске Gatekeeper может заблокировать программу, нужно один раз явно разрешить запуск), под Windows, единый инсталлятор, который ставит десктоп-приложение и консольный juggler.exe вместе, под Linux, бинарник сервера, который запускают из терминала и открывают через браузер или десктоп-клиент. Запуск headless-сервера сразу печатает в терминал ссылку и QR-код для подключения. Собрать проект из исходников тоже можно, git clone --recurse-submodules и make build, при этом сборка под Windows кросс-компилируется с любой ОС, а десктоп-версию под Linux нужно собирать именно на Linux.

Разработчик отдельно и честно предупреждает о безопасности. По умолчанию сервер слушает только localhost, и снаружи машины к нему не подключиться. Чтобы пустить в сессию другие устройства локальной сети, нужно нажать «p» в терминале сервера или запустить его с флагом --public, но доступ по локальной сети идёт без пароля: управлять агентом сможет любой, кто достучится до нужного адреса в этой сети, поэтому включать эту опцию советуют только в доверенных сетях. Доступа через интернет (WAN) в открытом репозитории нет вовсе, эту возможность добавляют только официальные закрытые сборки с сайта juggler.studio.

Технически Juggler, простое нативное приложение без лишнего: бэкенд на Go с оконной библиотекой Wails, без Electron; интерфейс на HTML и JavaScript, который отдаёт тот же Go-сервер; документы сессии хранятся и синхронизируются через Yjs; расширения, тоже JavaScript. Фронтенд написан на обычном JavaScript с типами в JSDoc, а не на TypeScript: строгую типизацию проверяет статический линтер прямо в CI, а отдельного шага сборки между исходным кодом и тем, что реально исполняется, нет.

Лицензия разделена на две части. Ядро приложения распространяется под GNU AGPLv3 (версии 3.0 или более поздней): его можно свободно использовать, изменять и распространять, но если изменённую версию распространяют или разворачивают как сервис для других, исходный код изменений тоже обязан быть открытым. SDK для расширений и штатные плагины идут под Apache-2.0: поверх них можно писать собственные расширения, включая закрытые, без каких-либо обязательств copyleft. Тем, кому нужен закрытый коммерческий вариант самого ядра, автор предлагает писать ему напрямую и обсуждать отдельную лицензию.

На момент публикации пересказа пост на Hacker News набрал 203 балла и 86 комментариев меньше чем за двое с половиной суток, заметный отклик для дебютного релиза в уже переполненной нише агентов для кодинга.

Ключевые факты

  • Juggler, open source GUI-приложение (ядро под AGPLv3) для работы с ИИ-агентами кодинга; выпущено создателем кросс-платформенного C++-фреймворка JUCE, сборки есть под macOS, Windows и Linux.
  • Сессия работы агента, не лента чата, а редактируемое дерево: из любой точки можно уйти в дочернюю ветку, откатиться, сравнить варианты; интерфейс построен колонками, как в Finder (Miller-колонки).
  • Почти всё в приложении, JavaScript-плагины: типы контекста (чтение файла, bash-команда и другие), сценарии работы агента (стратегии вроде plan и research) и slash-команды можно смотреть, форкать и заменять.
  • Поддержаны Claude Code, OpenAI (включая Codex-план), Gemini, Ollama, OpenRouter, Z.AI и DeepSeek; несколько клиентов, десктоп-приложение и вкладки браузера на разных машинах, могут одновременно работать с одной сессией.
  • Открытый репозиторий даёт только локальный доступ и доступ по локальной сети без пароля (риск при флаге --public); доступ через интернет доступен в официальных закрытых сборках с juggler.studio, а лицензия ядра AGPLv3 обязывает открывать код при доработке под закрытый сервис.

Почему это важно

Рынок ИИ-агентов для кодинга уже переполнен, и автор поста сам иронично это признаёт. Но Juggler предлагает другую модель работы: вместо линейной ленты чата, редактируемое дерево сессии, вместо «чёрного ящика», видимые вызовы инструментов и весь исходный контекст, вместо готового продукта, платформа на JavaScript-плагинах, где расширяемы не только внешний вид, но и сама логика работы агента (стратегии, команды, типы контекста). Проект открыт целиком (ядро, под AGPLv3) и сделан не типичным ИИ-стартапом, а разработчиком, известным по совсем другой нише, кросс-платформенному C++-фреймворку JUCE. Меньше чем за двое с половиной суток пост собрал 203 балла и 86 комментариев на Hacker News, заметный отклик для дебютного релиза.

Кому это важно

В первую очередь, разработчикам, которые уже используют агентные инструменты кодинга (Claude Code, Codex, Gemini и подобные), но хотят не слепо доверять модели, а видеть и контролировать каждый её шаг: какие вызовы инструментов она делает, что попадает в контекст, куда можно откатиться. Инструмент пригодится и тем, кто держит длинные агентные сессии на удалённом сервере или dev-машине и хочет подключаться то с ноутбука, то с телефона, сессия одна, клиентов может быть несколько одновременно. Отдельная аудитория, те, кто использует сразу несколько LLM-провайдеров (Claude Code, OpenAI, Gemini, Ollama, OpenRouter, Z.AI, DeepSeek) и не хочет держать под каждый из них свой интерфейс. И наконец, разработчики расширений: вся оркестрация в Juggler собрана из JS-плагинов, поэтому свои сценарии работы агента можно писать поверх готовой платформы, а не с нуля.

Как это применить

Готовые сборки лежат на странице релизов репозитория и на сайте juggler.studio: под macOS.dmg (при первом запуске нужно один раз разрешить открытие через Gatekeeper), под Windows, единый инсталлятор, который ставит десктоп-приложение и консольный juggler.exe вместе, под Linux, бинарник сервера. Запуск headless-сервера командой juggler сразу печатает в терминал ссылку и QR-код для подключения браузером; тот же сеанс можно открыть и в десктоп-приложении. Дальше нужно подключить провайдера модели, Claude Code (по CLI или API), OpenAI (Codex-план или API), Gemini, Ollama, OpenRouter, Z.AI, DeepSeek, или добавить недостающего самостоятельно через pull request. Собрать проект из исходников можно командой git clone --recurse-submodules и make build (сборка под Windows кросс-компилируется с любой ОС, а десктоп-версию под Linux нужно собирать именно на Linux). По лицензии: ядро под AGPLv3 можно свободно ставить себе и дорабатывать, но если изменённую версию распространяют или разворачивают как сервис для других, исходный код доработок тоже обязан быть открытым; SDK для расширений и штатные плагины, под Apache-2.0, поэтому свои плагины (включая закрытые) можно писать без ограничений copyleft. Тем, кому нужен закрытый коммерческий вариант самого ядра, автор предлагает писать ему напрямую и обсуждать отдельную лицензию.

Можно ли доверять

Формально это Show HN, стандартный раздел Hacker News для собственных запусков, где разработчики годами публикуют новые проекты. У Juggler настоящий репозиторий на GitHub с обычным для серьёзных open source-проектов набором документов (CONTRIBUTING.md, SECURITY.md, LICENSING.md), а ядро распространяется под AGPLv3, то есть код открыт и его можно проверить построчно. Автор не скрывает слабые места: прямо в описании честно предупреждает, что доступ по локальной сети идёт без пароля, это скорее говорит в пользу доверия, чем против него. Технические детали (бэкенд на Go с Wails, синхронизация сессии через Yjs, без Electron, типы в JSDoc вместо TypeScript), конкретные и проверяемые, а не общие маркетинговые фразы. Меньше чем за двое с половиной суток пост собрал 203 балла и 86 комментариев, сообщество Hacker News успело его придирчиво обсудить. Слабое место, личность самого автора: то, что он «создатель JUCE», заявлено им самим в тексте поста и никак независимо не подтверждается; для читателя это факт со слов автора, а не проверенная биография.

Риски и подводные камни

Главный явный риск, безопасность локальной сети: как только включаешь доступ с других устройств (флаг --public или клавиша «p» в терминале), пароля на это нет, и управлять агентом сможет любой, кто окажется в той же сети. Доступа через интернет (WAN) в открытом репозитории вообще нет, эта возможность есть только в закрытых официальных сборках с juggler.studio, так что открыть свой сервер наружу самостоятельно можно будет лишь в обход штатной функциональности проекта и на свой страх и риск. Лицензия AGPLv3, ограничение для бизнеса: если компания захочет превратить доработанное ядро в закрытый облачный сервис, по лицензии придётся открыть исходный код своих изменений; обойти это можно только отдельной коммерческой лицензией от автора. И наконец, это дебютный релиз в уже переполненной нише агентов для кодинга, долгой истории эксплуатации и проверенной стабильности пока нет, а любой агент с доступом к bash и файловой системе в принципе может внести в код нежелательные правки, особенно если сессию одновременно ведут несколько подключённых клиентов.

«Да, это ещё один ИИ-агент для кодинга. Индустрии определённо не хватало ещё одного.»

— julesrms, автор Juggler, в посте на Hacker News