ZCode — открытый AI-workbench для программирования от Z.ai, который можно запустить тремя способами: как десктопное приложение на Electron, как веб-интерфейс в браузере или как агента прямо в терминале. Репозиторий содержит всё сразу: клиенты, бэкенд, общие UI-компоненты, CLI агента и его рантайм. Подойдёт разработчикам, которым нужен кодинг-агент, работающий локально и под своим контролем, с возможностью допилить его под себя.
Логика простая: один и тот же агент обслуживает все три входа. Десктоп поднимается командой pnpm dev:desktop, веб-версия — pnpm dev:web (фронт на 5173-м порту, бэкенд на 3030-м), а CLI живёт в apps/zcode-cli и заодно служит рантаймом для остальных оболочек. В собранном дистрибутиве всё объединяется под одной командой zcode: без аргументов откроется терминальный интерфейс, с флагом --web — браузерная версия, остальные аргументы уйдут в агента. Electron для этих двух режимов не нужен, всё работает на машине локально.
Веб-режим по умолчанию слушает 127.0.0.1, берёт текущую папку за рабочую директорию, сам выбирает свободный порт и открывает браузер. Токен доступа при локальном запуске не включается, но стоит выставить --host 0.0.0.0 для доступа из локальной сети — токен сгенерируется автоматически, а в терминале появится ссылка с ним. Можно задать свой через --token или отключить авторизацию флагом --no-token. Рабочий проект и порт указываются параметрами --workspace и --port.
Отдельно продумана работа с удалёнными машинами через SSH и WSL: ресурсы собираются локально и уходят на удалённый хост по SFTP, без обращения к CDN. Данные приложения пишутся в каталог .zcode, а базовую директорию можно переопределить переменной ZCODE_DATA_BASE_DIR — удобно, когда нужен изолированный профиль для разработки. Конфигурация провайдеров, адреса сервисов и параметры сборки задаются через .env с локальными переопределениями в .env.local.
Для запуска и сборки понадобится подготовленное окружение — Git, Node.js и pnpm версий, зафиксированных в mise.toml. Дальше:
pnpm bootstrap— поставит зависимости воркспейса и подготовит ресурсы для локальной десктопной разработки;pnpm bootstrap:with-remote— то же плюс удалённые ресурсы, если планируешь SSH/WSL;pnpm bundle:desktop— соберёт десктопное приложение, по умолчанию под macOS arm64, с флагами--osи--archпод Windows и Linux;pnpm build:zcode— соберёт CLI, TUI, бэкенд и веб в единый дистрибутив с архивом, sha256-суммой,latest.jsonи скриптом установки.
Перед сборкой дистрибутива нужно указать корневой адрес загрузки — ZCODE_DIST_BASE_URL или флаг --base-url. Готовую папку можно выложить на свой хостинг, а скрипт установки заберёт пакет оттуда, распакует в ~/.zcode/runtime и создаст команду zcode в ~/.local/bin. Для проверки без публикации архив достаточно распаковать и запустить bin/zcode.mjs напрямую. Учти: локальная сборка десктопа не подписана, и macOS при первом открытии может её заблокировать — снимается атрибутом карантина через xattr. Проект распространяется под лицензией Apache-2.0; ограничения по функциям, правила поддержки и предупреждения о рисках вынесены в NOTICE.md.