# PenguinHarness

> PenguinHarness в карточках NeuroSquad — как установить, как устроены карточки и что полезно знать.

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

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

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

## Установка

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

```bash
npm install -g @prismshadow/penguin-cli
```

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

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

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

**3. Добавьте карточку 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 и его
единственный путь в веб, — даже в опасном режиме. См. [Режим карточек](https://docs.neurosquad.ai/ru/squads/canvas-mode).
- **Опасный режим без перезапуска.** Пока переключатель включён, хук разрешает каждый вызов. См.
[Опасный режим](https://docs.neurosquad.ai/ru/agents/dangerous-mode).
- **Stop.** Stop, бюджет-тормоз и Stop на телефоне используют собственный API отмены Penguin; чат
остаётся открытым.
- **Сессии.** После перезапуска карточка продолжает тот же разговор (`--resume`); удалённая сессия
сменяется новой.
- **Долгие сессии.** Счётчик контекста, **Compact** (`/compact`), чип лимита, очередь промптов, журнал
и передача.
- **Расход.** Каждый запрос читается из файлов Trace Penguin, субагенты помечены, — в
[Расходе и стоимости](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` или перенести разговор в
Claude Code и обратно. OpenRouter и ваши серверы работают через локальный ретранслятор NeuroSquad —
без ключа на диске.

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

- **Разговоры хранятся в папке Penguin приложения.** Ваш `penguin chat --resume` их не покажет; с
`PENGUIN_HOME`, указывающим на эту папку, и `--agent-id ns_<карточка>` — покажет.
- **Модели, добавленные внутри карточки,** живут только до её следующего запуска — добавляйте их в
своём Penguin.
- **Плагины.** [Caveman](https://docs.neurosquad.ai/ru/plugins/caveman), [Память](https://docs.neurosquad.ai/ru/plugins/mem0-memory),
[Context7](https://docs.neurosquad.ai/ru/plugins/context7-docs) и [Graphify](https://docs.neurosquad.ai/ru/plugins/graphify) добавляют текст к каждому ходу
через хук, который Penguin вызывает на каждом промпте только после 0.2.13; в 0.2.13 их инструменты
всё равно работают по стрелке. [Экономия токенов](https://docs.neurosquad.ai/ru/plugins/rtk-ai-token-saver) работать не может:
хук Penguin не умеет переписывать команду.
- **Колонки расхода.** Penguin складывает создание кэша во вход, а рассуждения — в выход, поэтому эти
колонки — «не сообщается»; на моделях Claude цена из-за этого немного занижена.
- **MCP-токен карточки** хранится в конфигурации её агента (там Penguin не умеет брать его из
окружения). Он работает только на loopback, свой у каждой карточки и меняется при каждом запуске
приложения.

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