Skip to content

Поддержка ACP ​

Command Code поддерживает Agent Client Protocol, что позволяет использовать Command Code во всех ACP-совместимых редакторах.

Zed и любой другой редактор, говорящий на Agent Client Protocol, могут запускать Command Code как ACP-сервер через команду cmd acp. Command Code через ACP сохраняет возможности харнесса: те же инструменты, навыки, движок разрешений и сессии, — а транспортом занимается ACP-хост.

Использование ​

Настройте ACP-редактор так, чтобы он запускал Command Code через команду cmd acp.

Базовое использование ​

bash
cmd login    # Once, in a terminal. The editor reuses this account.
cmd acp      # What the editor runs to setup cmd ACP server on stdio, you don't run it yourself.
/acp         # In any session: prints the editor setup and the connection state.

Настройка ​

Zed ​

  1. Установите cmd

    Установите cmd и убедитесь, что вы вошли в аккаунт.

  2. Добавьте Command Code в настройки Zed

    Откройте настройки Zed (zed: open settings) и добавьте это на верхний уровень, рядом с такими ключами, как theme:

    json
    {
      "agent_servers": {
        "Command Code": { "command": "cmd", "args": ["acp"] }
      }
    }
  3. Запустите тред

    Откройте панель агента, нажмите + и выберите Command Code. Каждый тред — это сессия Command Code.

Другие редакторы ​

Любой ACP-клиент работает так же: запустите cmd acp, отправьте initialize, затем session/new с каталогом проекта, затем session/prompt.

Что показывает редактор ​

Возможность редактораCommand Code
Потоковый ответТекст и рассуждения по мере их написания.
Вызовы инструментовОдна строка на вызов с файлом, которого он касается. Правки показывают свой дифф до запуска инструмента.
Запросы разрешенийРазрешить один раз, разрешить всегда, отклонить один раз, отклонить всегда. «Всегда» запоминается на инструмент в пределах треда.
Планыtodo_write заполняет представление плана редактора. Задачи отключены по умолчанию: выполните cmd mods enable todos -g, затем перезапустите cmd acp (ACP читает только настройки модов уровня пользователя).
ВопросыВопрос от агента или одобрение плана — это запрос с выбором варианта.
Слэш-командыВаши проектные и пользовательские команды, навыки, команды модов и /compact.
Режимыdefault, auto-accept, plan, dont-ask, bypass. Индикатор следует за движком.
Выбор моделиКаталог моделей плюс опция effort для моделей с регулятором рассуждений.
Индикатор контекстаИспользованный контекст вместе со стоимостью треда на текущий момент, после каждого ответа и после /compact.
ТредыНовый, открыть с историей, список, закрыть. Те же сессии, которые предлагает cmd --resume.

Модели и effort ​

Список выбора модели показывает каталог Command Code, а затем провайдеров, которых вы добавили сами через /connect или в ~/.commandcode/providers.json. Те же строки, что печатает cmd --list-models. Пользовательская модель перечисляется по своему квалифицированному id, например cliproxy/gpt-6-astra, и работает через этого провайдера с вашим ключом, как и в терминале. Выбор принадлежит треду. Он никогда не меняет другой тред или ваш терминальный дефолт, и тред возвращается к нему при повторном открытии или возобновлении через cmd --resume.

providers.json читается заново каждый раз, когда тред открывается или переключает модель, поэтому провайдер, который вы добавили, или ключ, который вы изменили, пока редактор открыт, действуют при следующем переключении. Модель, которую вы удалили, отклоняется при следующем переключении. Пользовательский провайдер без ключа показывается в списке, и первый ответ сообщает об этом. Добавьте ключ через /connect в терминальной сессии.

Провайдер, названный как вендор каталога, например deepseek, который объявляет короткое имя модели каталога, например deepseek-v4-flash, задаёт собственный id каталога. Этот id работает на Command Code, как и в терминале. В списке выбора для него остаётся строка каталога, а копия вашего провайдера показывается как deepseek/deepseek-v4-flash@byok-deepseek. Выберите эту строку — и ответ придёт через вашего провайдера с вашим ключом. Такое написание существует только в списке выбора редактора. В терминале выбирайте строку под заголовком провайдера в /model.

Модели, поддерживающие настраиваемый effort, получают опцию effort. default — это собственная настройка провайдера, с которой начинает нетронутая модель.

Слэш-команды ​

Введите / в поле ввода, чтобы увидеть доступное. Команда, отправленная как всё сообщение целиком, выполняет его. Тело навыка едет в ход как скрытый контекст. Команда мода вроде /acp отвечает прямо в ответе, без вызова модели.

КомандаЧто делает
/compactСуммирует тред и сообщает, что освободилось. Индикатор обновляется.
/acpПечатает настройку редактора и то, работает ли этот тред через ACP.
Проектные и пользовательские.commandcode/commands/*.md, разворачиваются как в терминале.
НавыкиПеречисляются по имени, разворачиваются как в терминале.

Встроенные команды, которые являются действиями терминала, вроде /model, /resume и /tree, в списке не появляются. Их эквиваленты в редакторе — выбор модели, список тредов и история тредов. Неизвестная команда отправляется модели как написана.

Файлы и изображения ​

Файл, который вы упомянули через @ или перетащили, доходит до модели как упоминание файла, который она может прочитать. Выделение, которое встраивает редактор, приходит блоком контекста с путём и, когда редактор его отправляет, номером строки. Изображения, вставленные в поле ввода, уходят модели как изображения. Аудио не поддерживается.

Command Code читает, пишет и запускает команды через свой движок разрешений. Файловые и терминальные сервисы редактора не используются, поэтому несохранённые буферы агенту не видны.

Сессии ​

Каждый тред — это сессия Command Code с настоящим id. Повторное открытие треда воспроизводит его транскрипт в редакторе и продолжает его. Список тредов показывает те же транскрипты, что cmd --resume, для этого проекта или для всех проектов. Сессия, начатая в редакторе, появляется в списке возобновления в терминале, и наоборот.

Один процесс cmd acp обслуживает один каталог проекта. Открывайте в нём сколько угодно тредов. Тред для другого каталога отклоняется, пока остальные не закроются, поэтому Zed запускает один процесс агента на окно проекта.

MCP-серверы в ACP ​

Серверы, которые вы настраиваете в Command Code (cmd mcp, .mcp.json, настройки mcp.servers), загружаются как в терминале. Серверы, которые вы настраиваете в редакторе (context_servers в Zed), подключаются рядом с ними при открытии треда. Модель видит один список инструментов, и запросы разрешений для тех и других выглядят одинаково.

Из редактора поддерживаются команды stdio и streamable http. Более старый транспорт sse пропускается. Если обе стороны настраивают одно и то же имя сервера, побеждает сервер Command Code, а копия редактора пропускается. Сервер редактора, который не запускается, логируется в stderr и не останавливает тред. Сервер, которому нужен OAuth, настраивается на стороне Command Code через cmd mcp auth.

Решение проблем ​

СимптомРешение
auth_required при старте тредаВыполните cmd login в терминале. Тред использует этот аккаунт.
cmd acp завершается с «the acp mod is disabled»Уберите acp из mods.disabled в настройках.
В редакторе ничего не появляетсяОткройте dev: open acp logs в Zed. Вся диагностика cmd acp идёт в stderr с префиксом [acp].
«This cmd acp process serves …; start another for …»Один процесс обслуживает один проект. Откройте другой проект в своём окне или закройте треды этого.
Ответ падает с сообщением о кредитах, лимите или входеОшибка несёт статус и код API. Кредиты и тариф такие же, как в терминале.
В списке показана модель, которой нет в вашем тарифеСписок — это полный каталог. Запрос отклоняется сообщением о тарифе. Выберите модель, которую покрывает ваш тариф.
«Provider not available» после переключения моделиТред должен был сам сменить провайдера. Если не сменил, закройте тред и откройте снова.
«Provider 'x' has no API key» при первом ответеПровайдер из providers.json без ключа. Добавьте его через /connect в терминальной сессии и отправьте снова.
Модель из providers.json отсутствует в спискеПроверьте cmd --list-models в терминале. Список показывает те же строки. Id нужно писать так, как он там напечатан. Если провайдер назван как вендор каталога, а id модели — короткое имя модели каталога, выберите строку с окончанием @byok-<provider>. Простой id — это строка каталога, и она работает на Command Code.

Источник

Сверено с оригиналом 13 ноября 2026.