Як я зробив CLI для Claude Code, щоб витрачати менше токенів при роботі з фронтендом
Як я зробив CLI для Claude Code, щоб менше витрачати токенів при роботі з фронтендом
Останнім часом майже весь новий код пишу разом із Claude Code. І в якийсь момент помітив одну проблему.
Коли AI працює з фронтендом, він не бачить, що відбувається в браузері. Потрібно якось передати йому консоль, мережеві запити, HTML або скріншот.
Перше, що спадає на думку, — MCP. Але мені не дуже подобалось, що в контекст моделі часто потрапляє більше інформації, ніж потрібно. Крім цього, мені хотілося працювати зі своїм браузером, у якому я вже авторизований і можу паралельно сам виконувати будь-які дії.
Тому я вирішив зробити невеликий CLI.
Ідея досить проста. Один процес постійно тримає з’єднання з Chrome через Chrome DevTools Protocol і записує всі події у журнал. А всі інші команди вже не підключаються до браузера — вони просто читають цей журнал.
Чому саме так?
По-перше, CDP працює як потік подій. Якщо підключитися після того, як помилка вже сталася, її вже не побачиш.
По-друге, відкривати нове CDP-з’єднання на кожну команду просто повільніше.
Для журналу я використав JSONL. Його можна нескінченно дописувати без перезапису всього файлу, він нормально переживає аварійне завершення процесу, а ще його можна дивитися звичайними tail, grep або jq.
Ще одне рішення, яке я прийняв, — фільтрація відбувається не під час запису, а під час читання. Демон зберігає всі запити, а br-network за замовчуванням показує тільки fetch і xhr. Якщо потрібно більше — є --all.
Це дозволило не втрачати інформацію і водночас не засмічувати контекст AI.
Сам код майже повністю написаний Claude Code. Моєю задачею було визначити архітектуру, прийняти ключові технічні рішення, перевірити їх на практиці та багато разів ітеративно доробляти інструмент під реальні сценарії використання.
У результаті вийшов невеликий npm-пакет, який зараз використовую щодня у своїй роботі.
Якщо цікаво спробувати:
GitHub: github.com/ItSuhsko14/browser-cli
npm: www.npmjs.com/...ckage/browser-inspect-cli
Буду радий будь-якому фідбеку або ідеям.
7 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівДля чого цей велосипед коли є
code.claude.com/docs/en/chrome
Безумовно! claude —chrome має певні переваги. Але ось мої але, в чому перевага цього клієнта:
— контроль. Доволі прості команди, але ти можеш свідомо тикнути AI носом в те, що хочеш
— токени. Розширення crome для Сlaude code — це MCP, а значить набагато більше неконтрольованих витрати токенів. Мій пакет дозволяє економити контекст і токени
— історичність. Зберігається історія консолі і мережевих запитів, розширення Claude дає тільки поточний результат
— мультіінструментальність. Можна використовувати з будь-якою AI
Що з цього не може хром в клоді коді?
Заміряли? Де почитати про результати та методологію?
І як від цього падає якість?
не зрозумів якщо чесно
Але ж розмова про клод код?
Щось не побачив про мінуси вашого підходу... а вони є і великі наче )
Класна ідея, і покриє багато кейсів, але всерівно не заміняє mcp, де агент може виконувати якісь дії сам, а не просто працювати в read-only режимі по відношенню відкритої вкладки. Але погоджуюсь, що це значно прискорює роботу з фронтендом
Згоден. Можливо інструмент заточений під мої потреби і моє розуміння процесу розробки
code.claude.com/docs/en/chrome
Так, але є деякі аспекти. Описав в коменті вище