Плагін context-mode для Claude Code: що він економить
Плагін context-mode тримає великі логи й знімки браузера поза контекстом Claude Code. Як його встановити, виміряти економію в /context, видалити і чого він не виправляє.
Що робить плагін context-mode для Claude Code
Плагін context-mode для Claude Code не пускає великий вивід інструментів у розмову. Логи, прогони тестів і знімки сторінок браузера обробляються в окремому процесі. Сирі дані зберігаються в локальній базі SQLite, а в контекст моделі повертається лише короткий результат. Тому вікно контексту заповнюється повільніше, і кожен наступний запит до моделі містить менше токенів.
Ця стаття описує версію v1.0.169. Станом на 7 жовтня 2026 року це остання версія на npm і в релізах GitHub. Вона вийшла 29 червня 2026 року. Команди й назви інструментів нижче звірено з README і метаданими пакета npm саме цієї версії. Якщо у вас новіша версія, звірте назви з README, перш ніж копіювати команди.
Чому контекст у Claude Code закінчується так швидко
Вікно контексту (context window) означає все, що модель бачить за один запит: системні інструкції, описи інструментів, ваші повідомлення і весь вивід інструментів за сесію. Модель не пам'ятає попередніх запитів. Тому Claude Code щоразу надсилає всю історію розмови заново. Як саме рахуються токени, пояснено в гайді як Claude Code рахує токени. Тут важливий один наслідок.
Коли агент читає великий лог, цей лог залишається в історії. Він іде з кожним наступним запитом, доки сесія не стиснеться. README проєкту наводить такі приклади сирого виводу:
Дані, на яких побудовано графік
[
{
"label": "\u0417\u043d\u0456\u043c\u043e\u043a \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438 Playwright",
"kb": 56
},
{
"label": "20 issues \u0437 GitHub",
"kb": 59
},
{
"label": "\u041e\u0434\u0438\u043d access-\u043b\u043e\u0433",
"kb": 45
}
]Знімок сторінки з Playwright (інструмента для автоматизації браузера) займає 56 КБ. Двадцять issues з GitHub займають 59 КБ, а один access-лог 45 КБ. Це цифри з README, а не наші виміри. Але масштаб зрозумілий. Кілька таких викликів займають помітну частину вікна текстом, який модель уже прочитала і більше не потребує.
Коли вікно заповнюється, Claude Code запускає компактизацію (compaction): стискає розмову в підсумок. Після цього модель часто губить деталі, наприклад які файли вже змінено і на чому ви зупинилися. Загальні прийоми проти цього зібрано в гайді про керування контекстом у Claude Code. context-mode автоматизує два з них: тримає сирі дані поза розмовою і зберігає стан сесії перед стисканням.
Як context-mode тримає вивід поза розмовою
context-mode є MCP-сервером. MCP (Model Context Protocol) є стандартним способом дати моделі додаткові інструменти. Сервер додає інструменти з префіксом ctx_. Головні з них такі:
ctx_executeзапускає код в окремому підпроцесі, тобто в пісочниці (sandbox). У розмову потрапляє тільки те, що код надрукував у stdout.ctx_batch_executeробить те саме для кількох команд за один виклик.ctx_indexіctx_fetch_and_indexкладуть текст або вміст сторінки за URL у локальний індекс.ctx_searchшукає в цьому індексі й повертає лише потрібні фрагменти.
Індекс зберігається в SQLite з розширенням FTS5 (full-text search, повнотекстовий пошук). Результати впорядковуються алгоритмом ранжування BM25. На практиці це означає таке: сирий лог лежить на диску, а модель запитує з нього лише рядки з помилкою, а не весь файл.
Другу ідею README називає «Think in Code». Модель не читає п'ятдесят файлів, щоб порахувати в них функції. Вона пише скрипт, який рахує, і запускає його через ctx_execute. У контекст приходить одне число замість п'ятдесяти файлів.
При встановленні через маркетплейс плагінів context-mode також реєструє хуки (hooks). Хук є командою, яку Claude Code запускає на певній події. README перелічує PreToolUse, PostToolUse, UserPromptSubmit, PreCompact, SessionStart і Stop. Хуки спрямовують великі операції на інструменти ctx_, тому модель не обходить їх. Як працюють такі події, пояснено в гайді про хуки Claude Code.
Знімок сесії, який переживає компактизацію
Під час роботи context-mode записує події сесії в SQLite: які файли ви читали й редагували, git-операції, задачі, помилки, ваші виправлення. Перед компактизацією хук PreCompact будує з цих подій невеликий знімок (snapshot). Після компактизації або після /resume хук SessionStart повертає в контекст стислий путівник по сесії. Там є ваш останній запит, відкриті задачі й прийняті рішення. Решта подій лежить в індексі, і модель може знайти їх через ctx_search.
Знімок працює поряд із вбудованим підсумком Claude Code. Він додає структурований список фактів, тому моделі не треба вгадувати, що було важливим.
Звідки береться економія, а звідки ні
context-mode зменшує вхідний контекст (input) на кожному кроці. Відповіді моделі (output) він не скорочує. Це дві різні статті витрат.
Ліміт підписки Pro чи Max витрачається на обидві. В агентній сесії вхід росте з кожним кроком, бо історія надсилається повторно. Якщо прибрати лог з історії, він не їде в жодному з наступних запитів. Для розробника, який оплачує підписку в доларах з гривневої картки, це означає більше роботи до того, як ліміт закінчиться. Що ще витрачає ліміт, розібрано в статті що насправді з'їдає ліміт Claude Pro.
Скіли на кшталт caveman працюють з іншого боку. Вони просять модель відповідати коротше, тобто зменшують вихідні токени. Докладніше про це в огляді скілу caveman, який стискає відповіді агента. README context-mode прямо каже, що плагін не диктує моделі стиль відповіді. Тому ці два підходи не конфліктують, і їх можна ставити разом.
Що перевірити перед встановленням
Потрібен Node.js версії 22.5.0 або новішої. Саме так записано в полі engines пакета на npm. README додає, що Linux з Node нижче 22.5 не підтримується. Перевірте свою версію:
node --versionВивід має бути v22.5.0 або більший номер. Версія Node залежить від того, як ви її встановили, тому дивіться на вивід команди, а не на назву дистрибутива. README також згадує Bun як альтернативне середовище виконання.
Для маршруту через плагін README вимагає Claude Code v1.0.33 або новіший. Перевірте командою claude --version. Якщо Claude Code не розпізнає команду /plugin, спершу оновіть його.
Ліцензія. context-mode поширюється під Elastic License 2.0 (ELv2). Це source-available ліцензія: код можна читати, використовувати, форкати і змінювати. Але ELv2 не є відкритою ліцензією в сенсі OSI (Open Source Initiative). Вона забороняє пропонувати продукт як хостинговий сервіс і прибирати ліцензійні позначки. Для особистої роботи в Claude Code ці обмеження не заважають. Якщо ваша компанія дозволяє лише ліцензії, схвалені OSI, спершу узгодьте це всередині компанії.
Встановлення context-mode через маркетплейс плагінів
README рекомендує саме цей шлях. Він ставить MCP-сервер, хуки і slash-команди разом. Усередині сесії Claude Code виконайте:
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-modeПерша команда додає маркетплейс з репозиторію GitHub. Друга відкриває панель плагіна, де ви обираєте область встановлення: для себе в усіх проєктах, для всіх учасників репозиторію або лише для себе в цьому репозиторії. Перед вибором прочитайте, які хуки й MCP-сервер додає плагін. Плагін зі стороннього маркетплейсу запускає код з вашими правами. Загальну модель розібрано в гайді як влаштовані плагіни Claude Code.
Після встановлення перезапустіть Claude Code або виконайте /reload-plugins. Потім перевірте установку:
/context-mode:ctx-doctorЗа README, усі пункти мають бути позначені [x]. Doctor перевіряє середовища виконання мов, хуки, роботу FTS5 і реєстрацію плагіна. Пункт без позначки показує, яка саме частина не працює.
Встановлення як MCP-сервер через npx
Якщо плагіни вам не підходять, context-mode можна підключити як звичайний MCP-сервер. Ця команда виконується у звичайному терміналі, а не всередині сесії:
claude mcp add context-mode -- npx -y context-modeПри першому запуску npx завантажує пакет context-mode з реєстру npm і запускає його. Перезапустіть Claude Code і перевірте список серверів:
claude mcp listУ списку має з'явитися context-mode. Сервер працює там само, де працює Claude Code. Якщо ви тримаєте інші інструменти на окремому сервері, як у гайді MCP-сервери на VPS, context-mode все одно запускається поруч із клієнтом.
README позначає цей маршрут як «MCP-only»: без хуків і без slash-команд. Різниця суттєва. Без хуків ніщо не спрямовує великий вивід на інструменти ctx_. Модель сама вирішує, коли їх викликати. Якщо вона запустить звичайний інструмент Bash, весь вивід потрапить у контекст, як і без плагіна. Без хука PreCompact немає й знімка сесії. Якщо ви працюєте довгими сесіями, як у гайді Claude Code на VPS у tmux, обирайте маршрут через плагін.
Як виміряти економію: одна сесія з context-mode і одна без
Цифра «98%» у README походить з власного бенчмарку проєкту. Ось що він показує:
Дані, на яких побудовано графік
[
{
"label": "\u0421\u0438\u0440\u0438\u0439 \u0432\u0438\u0432\u0456\u0434 \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0456\u0432",
"kb": 315
},
{
"label": "\u041f\u043e\u0442\u0440\u0430\u043f\u0438\u043b\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442",
"kb": 5.4
}
]За даними проєкту, 315 КБ сирого виводу перетворилися на 5.4 КБ у контексті. Ваші задачі інші, тому перевірте результат на своєму репозиторії. У Claude Code є вбудована команда /context. Вона показує поточне заповнення вікна з розбивкою за категоріями.
- Вимкніть плагін у терміналі:
claude plugin disable context-mode@context-mode. - Запустіть нову сесію в тому самому репозиторії на тому самому коміті.
- Дайте задачу з великим виводом, наприклад: «запусти всі тести й скажи, які впали і чому».
- Коли агент закінчить, виконайте
/contextі запишіть заповнення вікна та рядок з повідомленнями. - Увімкніть плагін:
claude plugin enable context-mode@context-mode. - Запустіть нову сесію і дайте ту саму задачу тим самим текстом.
- Знову виконайте
/contextі порівняйте ті самі рядки.
Одного порівняння мало. Модель щоразу обирає трохи інші кроки, тому повторіть пару сесій хоча б двічі. Різницю варто шукати на задачах з великим виводом. На задачі «перейменуй змінну в одному файлі» прибирати нічого, тому й економії не буде.
Плагін має і власну статистику:
/context-mode:ctx-statsВона показує економію за кожним інструментом і загальне співвідношення. Але ці числа рахує сам плагін. /context рахує Claude Code, тому для чесного порівняння беріть саме його.
Ще одна цифра, яку варто знати. Плагін теж займає місце в контексті: описи власних інструментів і текст, який додають хуки. Подивитися постійні витрати можна так:
claude plugin details context-modeРядок Always-on показує, скільки токенів плагін додає до кожної сесії, де він увімкнений. Якщо ваші сесії короткі й без великих логів, плагін може коштувати більше, ніж економить. Цю тему ширше розібрано в статті про накладні витрати токенів в обв'язці агента.
Які інструменти context-mode виходять у мережу
README каже: «Nothing leaves your machine. No telemetry, no cloud sync». Для індексу і бази сесій це так. Вони лежать локально, для Claude Code в каталозі ~/.claude/context-mode. Але кілька частин плагіна працюють з мережею за самим своїм призначенням:
ctx_fetch_and_indexзавантажує сторінку за URL, перетворює HTML на markdown і кладе результат в індекс. Кеш живе 24 години.ctx_upgradeі slash-команда/context-mode:ctx-upgradeзавантажують останню версію з GitHub і перезбирають залежності.ctx_insightвідкриває у браузері хостинговий дашборд context-mode.com/insight.npx -y context-modeі/plugin marketplace addзавантажують код з npm і GitHub під час встановлення.
Є й очевидніша річ. Короткий результат, який context-mode повертає в розмову, іде до моделі разом з рештою контексту. Фраза про те, що нічого не залишає машину, стосується сирих даних у пісочниці, а не того, що бачить модель.
Також пам'ятайте про зворотний бік. Сирі логи тепер лежать на диску в базі SQLite. Якщо в логах були токени доступу чи паролі, вони там і залишаться. Команда /context-mode:ctx-purge безповоротно видаляє весь проіндексований вміст.
Чого context-mode не виправляє
- Вихідні токени. Довгі пояснення і великі диффи модель пише так само, як і без плагіна.
- Постійну частину контексту. Системні інструкції, ваш CLAUDE.md і описи інших MCP-серверів займають місце, як і раніше.
- Текст, який ви вставили самі. Лог на дві тисячі рядків, вставлений у повідомлення, вже в контексті. Краще дайте агенту шлях до файлу.
- Читання коду для редагування. Щоб змінити файл, модель має його бачити, і пісочниця цього не змінює.
- Пропуски в пошуку. Якщо
ctx_searchне знайде потрібний рядок, модель працюватиме з неповною картиною. Коли висновок агента здається дивним, попросіть показати конкретний фрагмент логу.
Як повністю видалити context-mode
Почніть з очищення індексу, поки плагін ще працює. Усередині сесії виконайте /context-mode:ctx-purge. Потім у звичайному терміналі приберіть плагін і маркетплейс:
claude plugin uninstall context-mode@context-mode
claude plugin marketplace remove context-mode
claude plugin listclaude plugin uninstall діє на область користувача. Якщо ви ставили плагін для репозиторію, додайте --scope project або --scope local. Видалення маркетплейсу також видаляє всі плагіни, встановлені з нього. Після цього claude plugin list не має показувати context-mode.
Якщо ви підключали context-mode як MCP-сервер, приберіть його так:
claude mcp remove context-mode
claude mcp listЛокальні дані лишаються на диску після обох маршрутів. Спершу подивіться, що там лежить, і лише потім видаляйте:
ls -la ~/.claude/context-mode
rm -rf ~/.claude/context-modeЯкщо ви ставили пакет глобально через npm install -g context-mode, виконайте також npm uninstall -g context-mode. І ще одне. README пропонує вручну додати рядок статусу в ~/.claude/settings.json. Якщо ви це робили, приберіть той запис. Інакше рядок статусу Claude Code посилатиметься на команду, якої вже немає.
FAQ
Скільки контексту реально економить context-mode?
Цифра «98%» належить власному бенчмарку проєкту, де 315 КБ сирого виводу стали 5.4 КБ у контексті. На ваших задачах результат буде іншим. Вимкніть плагін, виконайте задачу з великим виводом і запишіть показники /context. Потім увімкніть плагін, повторіть ту саму задачу в новій сесії і порівняйте. Економія помітна на логах, тестах і знімках браузера, а на дрібних правках її майже немає.
Чи працює context-mode без хуків, тільки як MCP-сервер?
Так, через claude mcp add context-mode -- npx -y context-mode. Але README позначає цей режим як «MCP-only»: без хуків і без slash-команд. Без хуків модель сама вирішує, чи викликати інструменти ctx_, і може запустити звичайний Bash, тоді вивід потрапить у контекст повністю. Знімок сесії перед компактизацією теж робить хук, тому в цьому режимі його немає.
Чи є context-mode open source?
Ні, у сенсі OSI він не є open source. context-mode поширюється під Elastic License 2.0, тобто це source-available ліцензія. Код можна читати, використовувати, форкати і змінювати. Не можна пропонувати його як хостинговий сервіс і прибирати ліцензійні позначки.
Чому після встановлення context-mode нічого не змінилося в /context?
Перша причина: плагін ще не завантажився. Виконайте /reload-plugins або перезапустіть Claude Code, потім /context-mode:ctx-doctor, і всі пункти мають бути позначені [x]. Друга причина: ви ставили його як MCP-сервер без хуків, і модель просто не викликала інструменти ctx_. Третя: у задачі не було великого виводу, тому прибирати не було чого.
Чи надсилає context-mode мої дані в інтернет?
Індекс і база сесій лежать локально, у ~/.claude/context-mode, і телеметрії README не заявляє. Але ctx_fetch_and_index завантажує сторінки з мережі, ctx_upgrade тягне нову версію з GitHub, а ctx_insight відкриває хостинговий дашборд у браузері. Короткий результат, який плагін повертає в розмову, як і весь контекст, іде до моделі.