Skip to main content
Glama

claude-webcache

npm license downloads

Caché WebFetch entre sesiones para Claude Code.

El WebFetch integrado de Claude Code almacena los resultados en caché durante 15 minutos dentro de una misma sesión. claude-webcache extiende esto entre sesiones, indefinidamente (TTL de 7 días, configurable).

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

Por qué

Cada vez que vuelves a obtener las mismas URLs entre sesiones (documentos, referencias de API, páginas de investigación), pagas el coste total de la obtención cada vez. La caché de 15 minutos dentro de la sesión se elimina antes de tu próximo sprint. claude-webcache mantiene las obtenciones para que la segunda sesión acceda a la caché en su lugar.

Flujo CACHE_MISS: WebFetch + cache_store en la primera sesión Flujo CACHE_HIT: acierto instantáneo, sin WebFetch en la segunda sesión

Instalación

Opción 1 -- Plugin de Claude Code (recomendado)

Una línea, en tu terminal:

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

Luego añade el patrón de uso a tu ~/.claude/CLAUDE.md (consulta Patrón de uso).

💡 ¿Por qué subcomandos de CLI y no el /plugin install de la TUI? El flujo de la TUI actualmente se dirige a través del backend remoteMarketplaceClient de Claude Code, que tiene un error abierto en el lado del servidor que rechaza todas las fuentes de plugins de terceros con Failed to install: This plugin uses a source type your Claude Code version does not support. Consulta anthropics/claude-code#41653 y unas 20 incidencias abiertas relacionadas. Los subcomandos de CLI anteriores utilizan NativeMarketplaceReader localmente y no se ven afectados.

**Alternativa (si incluso los subcomandos de CLI fallan en tu configuración):

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

Esto evita el pipeline del marketplace por completo.

Opción 2 -- npm global

npm i -g @theyahia/claude-webcache

Requiere Node.js 22.5+ (utiliza node:sqlite integrado, sin dependencias nativas).

Luego regístralo manualmente en ~/.claude/settings.json (reemplaza la ruta con el resultado de 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" }
        ]
      }
    ]
  }
}

Opción 3 -- clonar (colaboradores)

Consulta CONTRIBUTING.md.

Patrón de uso

Añádelo a tu ~/.claude/CLAUDE.md para que Claude dirija las obtenciones web a través de la caché:

## 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.

Eso es todo. Misma URL + mismo prompt en cualquier sesión futura = acierto de caché instantáneo.

Herramientas (MCP)

Herramienta

Argumentos

Devuelve

cached_fetch

url, prompt

texto en caché, o [CACHE_MISS] <url>

cache_store

url, prompt, output

stored

cache_stats

--

{ total, hits, last }

cache_list

limit?

URLs recientes (las más recientes primero)

Almacenamiento

SQLite en ~/.webcache/cache.db (modo WAL, seguro para concurrencia). Clave de caché = SHA256(url + "|" + prompt).

Campo

Tipo

key

TEXT PRIMARY KEY

url

TEXT

prompt_hash

TEXT

output

TEXT

cached_at

INTEGER (ms epoch)

hit_count

INTEGER

last_hit_at

INTEGER

Hook SessionStart

En cada sesión nueva, el hook inyecta una estadística de una línea:

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

Omite la inyección si la caché está vacía.

TTL

Por defecto 7 días. Las entradas caducadas se eliminan en la siguiente lectura de la misma clave. Ejecuta una purga manual requiriendo src/cache.js y llamando a purgeExpired().

Límites

  • La clave de caché incluye el prompt -> diferentes prompts en la misma URL son entradas separadas. Elige prompts consistentes (p. ej., siempre "extraer título y contenido principal") para maximizar la tasa de aciertos.

  • La salida es lo que devuelva WebFetch (ya resumido por el modelo). La caché no lo vuelve a procesar.

  • Sin búsqueda semántica, sin embeddings. Solo coincidencia exacta de (url, prompt).

Licencia

MIT -- consulta 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