Skip to Content
АгентыPenguinHarness

PenguinHarness

PenguinHarness — открытая (Apache-2.0) локальная платформа агентов от команды PrismShadow AI: сервер с веб-приложением и поверх него команда penguin chat. В NeuroSquad каждая карточка Penguin запускает в своём терминале настоящий penguin chat.

Измерено на PenguinHarness 0.2.13 и на его ветке main.

Установка

Установите команду penguin
npm install -g @prismshadow/penguin-cli

Нужен Node 24 или новее. Подойдёт и собственный скрипт установки Penguin с penguin.ooo . Settings → Setup в NeuroSquad может выполнить npm-установку за вас.

Добавьте свои модели

Настройте провайдеров и модели в Penguin как обычно — карточки их используют. Карточку можно запустить и на OpenRouter или на вашем сервере.

Добавьте карточку PenguinHarness

Добавьте карточку агента и выберите PenguinHarness.

Как устроены карточки

NeuroSquad запускает собственный сервер Penguin для своей папки данных — с первой карточкой Penguin — и останавливает его при выходе. Каждая карточка — отдельный агент Penguin (ns_<карточка>) со своими хуками, MCP-серверами и инструкциями. Конфигурация вашего проекта Penguin — ваши модели и ключи — копируется при каждом запуске; ваш собственный ~/.penguin не переписывается.

Что работает

  • Точный статус. Карточка следит за потоком статусов сервера для своей сессии — «работает» и «закончил», — а хук NeuroSquad решает, какие вызовы требуют вашего ответа. Собственные инструменты NeuroSquad, read_file и субагенты выполняются без вопросов; всё остальное ждёт собственного вопроса Penguin ? Approve this tool call? [Y/n], а уведомление называет вызов (PenguinHarness needs your permission: write_file: a.txt).
  • Стрелки. MCP-сервер NeuroSquad прописан в агенте карточки. Penguin делает снимок своих инструментов, поэтому все инструменты NeuroSquad предлагаются сразу, а стрелки решают в момент вызова; навыку или установленному MCP-серверу нужен следующий запуск карточки. Установленные серверы спрашивают перед каждым вызовом.
  • Режим карточек. Хук отклоняет exec_command и input_command — оболочку Penguin и его единственный путь в веб, — даже в опасном режиме. См. Режим карточек.
  • Опасный режим без перезапуска. Пока переключатель включён, хук разрешает каждый вызов. См. Опасный режим.
  • Stop. Stop, бюджет-тормоз и Stop на телефоне используют собственный API отмены Penguin; чат остаётся открытым.
  • Сессии. После перезапуска карточка продолжает тот же разговор (--resume); удалённая сессия сменяется новой.
  • Долгие сессии. Счётчик контекста, Compact (/compact), чип лимита, очередь промптов, журнал и передача.
  • Расход. Каждый запрос читается из файлов Trace Penguin, субагенты помечены, — в Расходе и стоимости, Run Stats и Agent Pulse.
  • Модели. Ведущий агент может сменить модель через agent_set_model или перенести разговор в Claude Code и обратно. OpenRouter и ваши серверы работают через локальный ретранслятор NeuroSquad — без ключа на диске.

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

  • Разговоры хранятся в папке Penguin приложения. Ваш penguin chat --resume их не покажет; с PENGUIN_HOME, указывающим на эту папку, и --agent-id ns_<карточка> — покажет.
  • Модели, добавленные внутри карточки, живут только до её следующего запуска — добавляйте их в своём Penguin.
  • Плагины. Caveman, Память, Context7 и Graphify добавляют текст к каждому ходу через хук, который Penguin вызывает на каждом промпте только после 0.2.13; в 0.2.13 их инструменты всё равно работают по стрелке. Экономия токенов работать не может: хук Penguin не умеет переписывать команду.
  • Колонки расхода. Penguin складывает создание кэша во вход, а рассуждения — в выход, поэтому эти колонки — «не сообщается»; на моделях Claude цена из-за этого немного занижена.
  • MCP-токен карточки хранится в конфигурации её агента (там Penguin не умеет брать его из окружения). Он работает только на loopback, свой у каждой карточки и меняется при каждом запуске приложения.

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