Skip to main content
Glama

claude-webcache

npm license downloads

Межсессионный кэш WebFetch для Claude Code.

Встроенный в Claude Code WebFetch кэширует результаты на 15 минут в рамках одной сессии. claude-webcache расширяет этот функционал на все сессии, бессрочно (TTL 7 дней, настраивается).

Open new session  ->  your past fetches are still there.
Cache hit         ->  instant.
Cache miss        ->  same as built-in WebFetch.

Зачем это нужно

Каждый раз, когда вы повторно запрашиваете одни и те же URL в разных сессиях — документацию, справочники API, страницы исследований — вы каждый раз тратите ресурсы на полную загрузку. 15-минутный кэш внутри сессии очищается до начала вашего следующего спринта. claude-webcache сохраняет результаты загрузок, чтобы во второй сессии данные считывались из кэша.

CACHE_MISS flow: WebFetch + cache_store в первой сессии CACHE_HIT flow: мгновенное считывание, без WebFetch во второй сессии

Установка

Вариант 1 — Плагин Claude Code (рекомендуется)

Одна строка в вашем терминале:

claude plugin marketplace add theYahia/claude-webcache && claude plugin install claude-webcache@theyahia

Затем добавьте шаблон использования в ваш ~/.claude/CLAUDE.md (см. Шаблон использования).

💡 Почему подкоманды CLI, а не /plugin install в TUI? Поток TUI в настоящее время проходит через бэкенд remoteMarketplaceClient в Claude Code, в котором есть открытая ошибка на стороне сервера, отклоняющая все сторонние источники плагинов с сообщением Failed to install: This plugin uses a source type your Claude Code version does not support. См. anthropics/claude-code#41653 и около 20 связанных открытых проблем. Указанные выше подкоманды CLI используют NativeMarketplaceReader локально и не подвержены этой ошибке.

**Резервный вариант (если даже подкоманды CLI не работают в вашей системе):

git clone https://github.com/theYahia/claude-webcache && claude --plugin-dir ./claude-webcache/plugin

Это полностью обходит конвейер маркетплейса.

Вариант 2 — Глобальный npm

npm i -g @theyahia/claude-webcache

Требуется Node.js 22.5+ (используется встроенный node:sqlite — без нативных зависимостей).

Затем зарегистрируйте вручную в ~/.claude/settings.json (замените путь на результат выполнения npm root -g):

{
  "mcpServers": {
    "claude-webcache": {
      "command": "node",
      "args": ["/path/from/npm-root-g/claude-webcache/scripts/mcp-server.cjs"]
    }
  },
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|clear|compact",
        "hooks": [
          { "type": "command", "command": "node /path/from/npm-root-g/claude-webcache/scripts/hook-stats.cjs" }
        ]
      }
    ]
  }
}

Вариант 3 — Клонирование (для контрибьюторов)

См. CONTRIBUTING.md.

Шаблон использования

Добавьте в ваш ~/.claude/CLAUDE.md, чтобы Claude направлял веб-запросы через кэш:

## WebFetch caching (claude-webcache)

Before calling WebFetch, call `cached_fetch(url, prompt)` first.
- If it returns text -> use that, do NOT call WebFetch.
- If it returns `[CACHE_MISS] <url>` -> call WebFetch as normal, then call `cache_store(url, prompt, output)` with the result.

Это всё. Тот же URL + тот же промпт в любой будущей сессии = мгновенное считывание из кэша.

Инструменты (MCP)

Инструмент

Аргументы

Возвращает

cached_fetch

url, prompt

кэшированный текст или [CACHE_MISS] <url>

cache_store

url, prompt, output

stored

cache_stats

--

{ total, hits, last }

cache_list

limit?

недавние URL (сначала самые новые)

Хранилище

SQLite в ~/.webcache/cache.db (режим WAL, безопасно для конкурентного доступа). Ключ кэша = SHA256(url + "|" + prompt).

Поле

Тип

key

TEXT PRIMARY KEY

url

TEXT

prompt_hash

TEXT

output

TEXT

cached_at

INTEGER (мс эпохи)

hit_count

INTEGER

last_hit_at

INTEGER

Хук SessionStart

При каждой новой сессии хук выводит одну строку статистики:

webcache: 142 pages cached, 38 hits, last fetch 3h ago

Пропускает вывод, если кэш пуст.

TTL

По умолчанию 7 дней. Истекшие записи удаляются при следующем чтении того же ключа. Выполните ручную очистку, подключив src/cache.js и вызвав purgeExpired().

Ограничения

  • Ключ кэша включает промпт -> разные промпты для одного и того же URL являются отдельными записями. Используйте согласованные промпты (например, всегда "extract title and main content"), чтобы максимизировать частоту попаданий.

  • Вывод — это то, что возвращает WebFetch (уже обобщено моделью). Кэш не обрабатывает его повторно.

  • Нет семантического поиска, нет эмбеддингов. Только точное совпадение (url, prompt).

Лицензия

MIT — см. LICENSE.

Install Server
A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theYahia/claude-webcache'

If you have feedback or need assistance with the MCP directory API, please join our Discord server