Notch, который считает чужие лимиты
Codenotch — macOS-приложение, которое прикрепляет к краю экрана индикатор расхода лимитов Claude Code, Cursor, Codex и Antigravity, не запрашивая отдельного входа.
Есть особый вид тревоги, знакомый всем, кто держит на машине сразу несколько ИИ-ассистентов для кода: где-то там, в недрах подписки, тикает лимит, и узнаёшь об этом обычно в худший момент — когда модель вдруг замолкает посреди рефакторинга. Codenotch, набравший почти 700 звёзд на GitHub, решает эту проблему буквально в лоб: прикалывает к краю экрана маленький чёрный выступ, который показывает, сколько лимита каждого ассистента уже сожжено — и работает ли он сейчас, закончил или ждёт вашего решения.
Идея не в том, чтобы придумать ещё один дашборд. Идея в том, чтобы убрать необходимость его открывать. Notch живёт постоянно на любом из четырёх краёв экрана — справа и слева он держит вертикальную колонку колец, сверху и снизу раскладывается иначе, — и всегда под рукой, но не мешает. Наведя курсор на кольцо, можно узнать окна лимита и время их сброса. Для Claude Code это не отдельная выдумка авторов: кольцо показывает то же окно текущей сессии, с которого начинается собственная команда /usage в Claude Code, так что два источника никогда не расходятся в показаниях.
Как это устроено технически — и почему это интересно
Самое любопытное решение в Codenotch не визуальное, а архитектурное: приложение вообще никуда не логинится само. Каждое показание — заимствованное: у credential или сессии, которую на Mac уже держит какой-то другой установленный инструмент. Установил и вошёл в любой из поддерживаемых сервисов — его кольцо появляется само.
Для Claude Code это OAuth-токен из системного keychain, опрошенный через тот же эндпоинт, которым пользуется родная команда /usage. Для Cursor — собственная подписанная сессия редактора, прочитанная из локального состояния SQLite, без отдельного входа. Codex-у Codenotch звонит напрямую в его же серверное приложение и спрашивает текущие рейт-лимиты вживую, а если Codex не запущен — падает обратно на лог роллаутов. С Antigravity сложнее: сначала опрашивается локальный языковой сервер, затем эндпоинт квоты Google, а если ни один не отвечает по конкретному аккаунту — остаётся просто счётчик запросов. GLM берёт ключ, который уже лежит где-то у одного из инструментов кодинга — в settings.json Claude Code, в ZCode или в OpenCode, — и через него стучится в монитор Coding Plan от Z.ai.
Эта логика — «ничего своего, всё занятое» — задаёт и правила выключения. Если отключить провайдера в настройках, Codenotch перестаёт читать его credential вообще и забывает уже снятые показания; но это не выход из аккаунта в самом инструменте — и строка настроек честно об этом предупреждает. Никакой иллюзии контроля там, где его нет.
Не только счётчик, но и индикатор занятости
Вторая функция notch-а менее очевидна, но не менее полезна: он отвечает на вопрос «оно вообще ещё работает?». Пока сессия провайдера занята, внутри его кольца крутится тонкая дуга; если сессия заблокирована и ждёт вашего ответа, кольцо превращается в пульсирующее янтарное. Наведя курсор, можно увидеть список всех живых сессий по именам, где каждая выполняется и чего именно она хочет от пользователя. Для тех, кто параллельно гоняет несколько агентов в разных терминалах и вкладках, это избавляет от привычки постоянно переключаться между окнами, чтобы проверить, не завис ли где-то процесс.
Отдельно продумана история с несколькими аккаунтами. Два входа в Claude Code — это два кольца. Если держать рабочий аккаунт отдельно через CLAUDE_CONFIG_DIR=~/.claude-work claude, рядом с личным появится кольцо «Claude (work)» — со своими лимитами, своими сессиями и собственной строкой в настройках. Любая директория вида ~/.claude-<slug>, против которой когда-либо запускался Claude Code, находится автоматически при старте приложения; дефолтная ~/.claude всегда идёт первой, остальные — по алфавиту, так что порядок колец не скачет от запуска к запуску — мелочь, но именно из таких мелочей складывается ощущение, что инструмент сделан человеком, который сам этим пользуется каждый день.
Почему это попало в тренды
Codenotch написан на Swift, живёт исключительно на macOS и явно рассчитан на довольно узкую, но очень активную аудиторию — разработчиков, которые одновременно держат подписки на несколько ИИ-ассистентов и устали угадывать, у кого из них сколько лимита осталось. 695 звёзд и почти сотня форков за относительно короткое время говорят не столько о вирусности проекта, сколько о том, что проблема действительно наболела: когда рабочий процесс распределён между Claude Code, Cursor, Codex и Antigravity одновременно, ручная проверка каждого из них через собственный интерфейс — это трение, которое хочется убрать раз и навсегда. Codenotch не пытается заменить эти инструменты или встать между ними и пользователем — он просто складывает уже существующие сигналы в одно постоянно видимое место на краю экрана, ничего не выдумывая и никуда не входя от своего имени.
Войти, чтобы оценить материал
Комментарии
Войти, чтобы оставить комментарий