# ZCode

> ZCode от Z.ai в карточках NeuroSquad — как установить, что работает и чего пока нет.

Source: https://docs.neurosquad.ai/ru/agents/zcode

**ZCode** — агент для программирования от Z.ai, построенный вокруг моделей GLM. Z.ai опубликовала
его исходный код под Apache-2.0; команда `zcode` запускает в терминале ту же среду выполнения
агента, что и десктопное приложение ZCode. В NeuroSquad каждый агент ZCode — карточка, внутри
которой работает настоящий `zcode`.

Измерено на среде выполнения ZCode 0.16.9 (`zcode-app-cli` 3.14.4-32).

## Установка

**1. Установите команду zcode**

Готовой загрузки для терминала Z.ai не выпускает, поэтому команда `zcode` берётся из npm:

```bash
npm install -g zcode-app-cli@latest
```

`zcode-app-cli` — неофициальный клиент, который поставляет среду выполнения Z.ai без изменений.
**Settings → Setup** в NeuroSquad может поставить его за вас. `zcode`, собранный из
собственного репозитория Z.ai, тоже подойдёт.

**2. Настройте провайдера**

Настройте провайдеров и модель по умолчанию в ZCode так, как вы делаете это обычно, — карточки
начинают с ваших провайдеров. Карточку можно запустить и на [OpenRouter](https://docs.neurosquad.ai/ru/providers/openrouter)
или на [вашем сервере](https://docs.neurosquad.ai/ru/providers/your-servers).

**3. Добавьте карточку ZCode**

Добавьте карточку агента и выберите **ZCode**. NeuroSquad проверяет, что найденный `zcode` —
действительно ZCode: посторонние программы с тем же именем не используются.

## Что работает

- **Точный статус.** Собственные хуки ZCode сообщают карточке, когда агент работает, закончил или
ждёт вас — с вызовом, который он хочет сделать (`ZCode needs your permission: Bash rm -rf dist`),
или с его вопросом. См. [Закончил / ждёт вашего ответа](https://docs.neurosquad.ai/ru/agents/notifications).
- **Стрелки.** MCP-сервер NeuroSquad прописан в настройках карточки, и его собственные инструменты
не спрашивают разрешения. ZCode читает инструменты сервера один раз, поэтому карточка сразу
получает все инструменты NeuroSquad, а стрелки решают в момент вызова. Навыку или установленному
MCP-серверу нужен следующий запуск карточки.
- **Режим карточек.** Bash, его фоновые оболочки и веб-инструменты убраны из того, что видит модель,
даже в опасном режиме. См. [Режим карточек](https://docs.neurosquad.ai/ru/squads/canvas-mode).
- **Сессии.** После перезапуска карточка продолжает тот же разговор (`zcode --resume`). Удалённая
сессия заменяется новой.
- **Долгие сессии.** Счётчик контекста, **Compact** (команда ZCode `/compact`), очередь промптов,
журнал и передача.
- **Расход.** Каждый запрос читается из собственного журнала расхода ZCode — с заголовками, сжатием
и субагентами, субагенты помечены — в [Расходе и стоимости](https://docs.neurosquad.ai/ru/usage), [Run Stats](https://docs.neurosquad.ai/ru/cards/run-stats)
и [Agent Pulse](https://docs.neurosquad.ai/ru/cards/agent-pulse).
- **Модели и провайдеры.** Модель выбирается для каждой карточки; ведущий агент может сменить её
через `agent_set_model`. OpenRouter и ваши серверы работают, а ключ не попадает ни в один файл.
- **Смена CLI.** Перенесите разговор в Claude Code и обратно.
- **Плагины.** [Память](https://docs.neurosquad.ai/ru/plugins/mem0-memory), [Context7](https://docs.neurosquad.ai/ru/plugins/context7-docs),
[Caveman](https://docs.neurosquad.ai/ru/plugins/caveman) и [Graphify](https://docs.neurosquad.ai/ru/plugins/graphify) доходят до ходов ZCode;
[экономия токенов](https://docs.neurosquad.ai/ru/plugins/rtk-ai-token-saver) работает в опасном режиме.
- **С телефона.** В [удалённом доступе](https://docs.neurosquad.ai/ru/remote) карточка работает как любая другая.

## Опасный режим

Карточка ZCode запускается в опасном режиме с `--mode yolo`. Включение и выключение перезапускают
карточку с тем же разговором; после выключения она продолжает в вашем обычном режиме. См.
[Опасный режим](https://docs.neurosquad.ai/ru/agents/dangerous-mode).

## Полезно знать

- **Ваш `~/.zcode` только читается.** У каждой карточки своя копия ваших настроек плюс настройки
NeuroSquad, своя база сессий и, когда нужно, свой файл провайдеров. Ключи и токены никогда не
пишутся на диск.
- **Останавливайте ход клавишей Esc.** Ctrl+C в простаивающем ZCode закрывает его, поэтому
NeuroSquad его никогда не отправляет — бюджет-тормоз и ряд клавиш на телефоне используют Escape.
- **Память проекта ZCode в карточке выключена**, если её не включает ваш собственный
`setting.json`. Её фоновые вызовы нигде не записываются, так что расход не смог бы их учесть;
если вы её включите, этих вызовов в расходе не будет.
- **Разговоры хранятся в базе карточки.** `zcode --resume` в вашем терминале найдёт их, только если
`ZCODE_SESSION_DB_PATH` указывает на этот файл. Удаление карточки базу не удаляет.
- После Escape терминальный интерфейс ZCode проглатывает следующее нажатие.

> Карточки ZCode работают только на этом компьютере — пока не в воркспейсах WSL или SSH.
