- Дата публикации
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.
Архитектура выглядит так:
- В одном терминале вы запускаете:
Он поднимает HTTP‑прокси наtokentap startlocalhost:8080, консольную панель и подсистему архива промптов. - Во втором терминале вы вызываете, например:
Скрипт выставляет переменную окруженияtokentap claudeANTHROPIC_BASE_URL=http://localhost:8080и запускает бинарьclaude. - Claude CLI думает, что общается с
api.anthropic.comпо HTTPS, но фактически трафик идёт через Tokentap. - 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‑инструментами для кода, эта утилита закрывает задачу практически «из коробки».