Дайджесты новостей
Редакционная иллюстрация архитектуры плагинов и модулей Claude Code с перехватом опасных терминальных команд и мониторингом токенов.

Плагины для Claude Code: расширение терминального интерфейса и перехват опасных команд

Когда автономный консольный ассистент получает возможность самостоятельно выполнять команды в терминале, восторг от автоматизации быстро сменяется понятной тревогой. Достаточно одной опечатки модели в параметрах команды удаления файлов или неудачной попытки разрешить конфликт версий через принудительный пуш в репозиторий, чтобы уничтожить часы кропотливой работы. До недавнего времени у инженеров был небогатый выбор: либо сидеть над агентом и вручную подтверждать каждый чих, либо соглашаться на рискованный режим полной свободы.

Компания Anthropic предложила элегантный выход, представив архитектуру расширений для Claude Code — систему модов (Mods). В отличие от классических хуков, запускавших внешние bash-скрипты post factum, новые модули пишутся на языке TypeScript и работают непосредственно внутри процесса приложения. Это превращает утилиту из закрытого бинарника в модульную платформу, где разработчик может перехватывать системные вызовы на лету, внедрять защитные фильтры и настраивать интерфейс под себя.

Архитектура расширений: моды против традиционных хуков

В структуре плагина Claude Code появилась строгая модульность. Теперь директория расширения объединяет несколько ключевых уровней:

  • skills/ — специализированные текстовые инструкции под конкретные стеки;
  • agents/ — конфигурации узкоспециализированных субагентов;
  • hooks/ — триггеры внешних скриптов для фоновых задач;
  • mods/ — компилируемые TypeScript-модули глубокого перехвата;
  • mcp/ — конфигурации серверов по протоколу Model Context Protocol.

Главное преимущество модов — работа «в разрыве» между решением нейросети и его фактическим исполнением. Мод получает доступ к событию onToolCall до того, как команда уйдет в операционную систему, и может либо заблокировать операцию, либо потребовать от пользователя явного подтверждения.

Перехват рискованных вызовов: пишем модуль защиты терминала

Практическая ценность модов раскрывается в создании защитных барьеров. Разработчик может составить список опасных шаблонов команд, которые агент ни при каких обстоятельствах не должен выполнять автоматически.

Ниже представлен базовый защитный модуль, проверяющий аргументы инструмента выполнения консольных команд:

// ~/.claude/dev-mods/command-guard.ts — Модуль перехвата деструктивных команд
import { defineMod, ToolCallEvent } from "@anthropic/claude-code-mod";

const DANGEROUS_PATTERNS = [
  /rm\s+-rf\s+[\/~]/,
  /git\s+reset\s+--hard/,
  /git\s+push\s+.*--force/,
  /drop\s+database/i,
  />\s*\/dev\/sd/,
];

export default defineMod({
  name: "command-guard",
  version: "1.0.0",

  onToolCall: async (event: ToolCallEvent) => {
    if (event.toolName === "bash" || event.toolName === "run_command") {
      const command = String(event.args.command || "");

      for (const pattern of DANGEROUS_PATTERNS) {
        if (pattern.test(command)) {
          return {
            action: "block",
            reason: `Команда отклонена фильтром безопасности: обнаружен паттерн [${pattern}]. Требуется ручной запуск.`,
          };
        }
      }
    }
    return { action: "allow" };
  },
});

Если модель попытается выполнить жесткий сброс ветки Git или удалить корневую директорию, процесс выполнения прервется мгновенно, а в контекст диалога вернется понятное объяснение причины блокировки.

Контроль бюджета сессии: интеграция счетчика токенов в статус-бар

Помимо безопасности, моды позволяют кастомизировать пользовательский интерфейс. Во время длительных сессий агентного рефакторинга контекстное окно стремительно раздувается, что ведет к незаметному перерасходу бюджета. Добавим в наш модуль функцию отрисовки статус-бара:

// Расширение модуля command-guard: добавление счетчика токенов в строку статуса
export const withStatusBar = {
  onRenderStatusBar: (ctx: { session: { tokensUsed: number; costEstimateUsd: number } }) => {
    const tokens = ctx.session.tokensUsed.toLocaleString("ru-RU");
    const cost = ctx.session.costEstimateUsd.toFixed(2);

    return `[Защита: АКТИВНА | Токены: ${tokens} | Расход: $${cost}]`;
  },
};

Теперь инженер в реальном времени видит объем накопленного контекста прямо над строкой ввода, не отвлекаясь на проверку биллинга в браузере.

Вопрос доверия: почему моды требуют осмотрительности

Открывая столь глубокий доступ к внутренностям приложения, Anthropic предупреждает об ответственности: моды исполняются с теми же правами, что и текущий пользователь в операционной системе, и не изолированы в песочнице. Неосторожная установка непроверенного расширения из стороннего источника чревата кражей приватных SSH-ключей или токенов окружения.

Правило безопасной работы простое: используйте проверенные официальные плагины либо создавайте компактные самописные моды под контролем собственной команды. Модульная архитектура Claude Code дает инженеру полный контроль над поведением агента, превращая терминал из источника стресса в надежно защищенную рабочую среду.