Денис Дмитриев
Все проекты
Продукт/Работает/2026

hidi — агент в кармане

Мост из Telegram в Claude Code: полноценный агент с доступом к диску и терминалу, но под политикой и аудитом.

  • Голос или текст с телефона — ответ с разметкой, файлами и живым статусом выполнения
  • Каждое действие проходит через политику: что можно молча, что только с подтверждением
  • Полный журнал: что сделано, по чьей команде и во сколько обошлось

Задача

Мне нужен был не «чат с ботом», а рабочий агент — тот же, что в терминале, с файлами и командами. Но пускать такого в мир через мессенджер без гейта нельзя: одна неудачная формулировка, и он сделает необратимое.

Как устроено

aiogram и Claude Agent SDK, одна непрерывная сессия, доступ только по списку разрешённых. Авторизация идёт через уже залогиненный CLI, без отдельного API-ключа — сознательное решение, чтобы жить на подписке, а не на поштучной оплате. Проект намеренно начат с пользы, а не с инфраструктуры: systemd и деплой появились только тогда, когда без них стало неудобно.

Что было трудно

Главная находка — ловушка в самом SDK. Функция с названием, которое читается как «универсальный гейт на использование инструмента», таковым не является: часть вызовов проходила мимо проверки. Пока я не перевёл политику на перехватчик перед вызовом инструмента, защита выглядела рабочей и не была ею. Это ровно тот класс ошибки, который не видно по признаку «оно работает».

Чем подтверждено

  • Живой сквозной тест до объявления готовности, а не «код компилируется»
  • Четыре этапа плана закрыты: развёртывание и служба, политика с подтверждениями и аудитом, разметка с запасным путём, голосовой ввод
  • Команды управления сессией прямо из чата: смена модели, режим планирования, продолжение, показ изменений

Стек

PythonaiogramClaude Agent SDKsystemdfaster-whisper