Дата публикации
ai_products

Tokentap: MitM‑прокси, который показывает, что именно вы отправляете в LLM и сколько это стоит

Что появилось / что изменилось

Tokentap (ранее Sherlock) — это MitM‑прокси для работы с LLM через CLI, заточенный под разработчиков, которые зовут Claude, Gemini или OpenAI Codex прямо из терминала.

Ключевые возможности:

  • Онлайн‑счётчик токенов для каждого запроса. В консоли видно, сколько токенов сожрал последний вызов — например, 12 847 или 15 102.
  • Мониторинг контекстного окна с «топливным» индикатором: в примере — 84 231 токенов из лимита 200 000, то есть 42%.
  • Цветовая шкала нагрузки:
    • зелёная зона — меньше 50% от заданного лимита токенов;
    • жёлтая — 50–80%;
    • красная — больше 80%.
  • Архив промптов: каждый запрос сохраняется в двух форматах:
    • Markdown — для чтения и анализа подсказок;
    • JSON — исходное тело API‑запроса для отладки.
  • Консольная сводка сессии при выходе, например: Session complete. Total: 84,231 tokens across 12 requests.
  • Минимальная конфигурация: не нужны отдельные сертификаты и сложная настройка, достаточно установки и запуска.

Сейчас Tokentap умеет работать с тремя CLI‑клиентами:

  • Claude Code (Anthropic);
  • Gemini CLI (Google);
  • OpenAI Codex.

Установка через pipx на Linux сводится к одной команде:

pipx install tokentap

Дальше — запуск прокси:

tokentap start

И обёртка для нужного LLM‑CLI, например для Gemini:

tokentap gemini

По умолчанию прокси слушает порт 8080, а лимит токенов для индикатора — 200 000. Их можно изменить:

tokentap start -p 9090 -l 100000

Как это работает

Tokentap строится поверх mitmproxy — это HTTPS‑прокси, который встаёт посередине между вашим CLI и облачным API.

Архитектура выглядит так:

  1. В одном терминале вы запускаете:
    tokentap start
    
    Он поднимает HTTP‑прокси на localhost:8080, консольную панель и подсистему архива промптов.
  2. Во втором терминале вы вызываете, например:
    tokentap claude
    
    Скрипт выставляет переменную окружения ANTHROPIC_BASE_URL=http://localhost:8080 и запускает бинарь claude.
  3. Claude CLI думает, что общается с api.anthropic.com по HTTPS, но фактически трафик идёт через Tokentap.
  4. Tokentap:
    • получает HTTP‑запрос от CLI;
    • читает тело запроса и считает токены;
    • записывает содержимое в Markdown и JSON;
    • показывает обновлённую статистику и индикатор в текстовой панели;
    • пересылает запрос дальше на настоящий api.anthropic.com по HTTPS.

То же самое работает для Gemini CLI и OpenAI Codex: Tokentap подменяет базовый URL на localhost:8080, но не ломает протокол и не требует менять сам клиент.

Что это значит для вас

Когда Tokentap действительно помогает

  • Команды разработки, которые запускают агентов «в долгую». Если вы крутите автогенерацию кода через CLI‑агентов, есть риск внезапно получить огромный счёт за токены. Tokentap показывает расход в реальном времени и даёт понять, когда пора остановиться или урезать контекст.

  • Тимлиды и security‑инженеры, которые переживают за утечки. Прокси показывает, какие именно фрагменты кода и данных уезжают в облако. По архиву промптов можно понять, не потянул ли разработчик в Claude или Gemini куски приватного репозитория или чувствительные логи.

  • Разработчики подсказок (prompt engineering). Все промпты сохраняются в Markdown и JSON, легко разбирать, какая формулировка как влияет на расход токенов и результат. Удобно строить собственную библиотеку промптов.

  • Отладка интеграций с LLM‑CLI. JSON‑дампы запросов помогают быстро увидеть, что реально уходит в API, без доп. логирования в вашем коде.

Где Tokentap почти бесполезен

  • Если вы используете только локальные модели. В этом случае утечки в облако нет, а расход токенов не конвертируется в деньги. Лучше сосредоточиться на инструментах профилирования и оптимизации инференса.

  • Если ваши рабочие процессы завязаны только на web‑интерфейсах LLM. Tokentap работает вокруг CLI‑клиентов, браузерный чат с Claude или Gemini он не перехватит.

Альтернатива: полностью локальный стек

Для тех, кто хочет минимизировать риски утечек, остаётся путь локальных моделей:

  • скачиваете модель с Hugging Face и запускаете через оболочку llama.cpp:
# локальный файл модели
llama-cli -m my_model.gguf

# скачивание и запуск напрямую с Hugging Face
llama-cli -hf ggml-org/gemma-3-1b-it-GGUF

# OpenAI-совместимый локальный сервер API
llama-server -hf ggml-org/gemma-3-1b-it-GGUF

llama.cpp работает поверх тензорной библиотеки ggml. Она не тянет внешние зависимости, нормально живёт на стандартном железе и не требует дорогих GPU.

Создатель ggml Георгий Герганов недавно присоединился к команде Hugging Face вместе с небольшой группой разработчиков. Проекты ggml остаются открытыми, а дальше их будут теснее интегрировать с библиотекой transformers. Для разработчиков это означает более удобный запуск Local AI без ухода в зоопарк несовместимых обвязок.

Место на рынке

Tokentap закрывает нишу простой консольной «прослойки» между LLM‑CLI и облаком.

По возможностям он ближе не к отдельным продуктам, а к связке:

  • mitmproxy для перехвата и разбора HTTPS‑трафика;
  • специализированные дешборды расхода токенов у крупных провайдеров.

Разница в том, что Tokentap нацелен именно на разработчиков, которые сидят в терминале и гоняют Claude Code, Gemini CLI или OpenAI Codex. В отличие от универсальных прокси, он сразу считает токены, показывает контекст и хранит промпты в удобном для чтения виде, без ручной настройки фильтров и скриптов.

Если вы уже научились жить с сырым mitmproxy и собственными скриптами подсчёта — Tokentap мало что добавит. Если же хочется быстро получить видимость: какие промпты уходят в облако и сколько токенов они прожигают, при работе именно с CLI‑инструментами для кода, эта утилита закрывает задачу практически «из коробки».


Читайте также

Tokentap: MitM‑прокси, который показывает, что именно вы отправляете в LLM и сколько это стоит — VogueTech | VogueTech