Skip to main content
Glama

claude-webcache

npm license downloads

Sitzungsübergreifender WebFetch-Cache für Claude Code.

Der integrierte WebFetch von Claude Code speichert Ergebnisse für 15 Minuten innerhalb einer einzelnen Sitzung. claude-webcache erweitert dies sitzungsübergreifend und dauerhaft (TTL 7 Tage, konfigurierbar).

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

Warum

Jedes Mal, wenn Sie dieselben URLs über verschiedene Sitzungen hinweg erneut abrufen – Dokumentationen, API-Referenzen, Rechercheseiten – zahlen Sie jedes Mal die vollen Abrufkosten. Der 15-minütige In-Session-Cache wird vor Ihrem nächsten Sprint gelöscht. claude-webcache behält Abrufe bei, sodass die zweite Sitzung stattdessen auf den Cache zugreift.

CACHE_MISS Ablauf: WebFetch + cache_store in der ersten Sitzung CACHE_HIT Ablauf: sofortiger Treffer, kein WebFetch in der zweiten Sitzung

Installation

Option 1 -- Claude Code Plugin (empfohlen)

Eine Zeile in Ihrem Terminal:

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

Fügen Sie dann das Nutzungsmuster zu Ihrer ~/.claude/CLAUDE.md hinzu (siehe Nutzungsmuster).

💡 Warum CLI-Unterbefehle und nicht das TUI /plugin install? Der TUI-Ablauf leitet derzeit über das remoteMarketplaceClient-Backend von Claude Code, das einen offenen serverseitigen Fehler aufweist, der alle Drittanbieter-Plugin-Quellen mit Failed to install: This plugin uses a source type your Claude Code version does not support. ablehnt. Siehe anthropics/claude-code#41653 und ca. 20 verwandte offene Probleme. Die oben genannten CLI-Unterbefehle verwenden lokal NativeMarketplaceReader und sind davon nicht betroffen.

Fallback (falls selbst CLI-Unterbefehle bei Ihrer Einrichtung fehlschlagen):

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

Dies umgeht die Marketplace-Pipeline vollständig.

Option 2 -- npm global

npm i -g @theyahia/claude-webcache

Erfordert Node.js 22.5+ (verwendet das integrierte node:sqlite – keine nativen Abhängigkeiten).

Registrieren Sie es dann manuell in ~/.claude/settings.json (ersetzen Sie den Pfad durch das Ergebnis von 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" }
        ]
      }
    ]
  }
}

Option 3 -- Klonen (Mitwirkende)

Siehe CONTRIBUTING.md.

Nutzungsmuster

Fügen Sie dies zu Ihrer ~/.claude/CLAUDE.md hinzu, damit Claude Web-Abrufe über den Cache leitet:

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

Das ist alles. Dieselbe URL + derselbe Prompt in jeder zukünftigen Sitzung = sofortiger Cache-Treffer.

Tools (MCP)

Tool

Argumente

Rückgabe

cached_fetch

url, prompt

zwischengespeicherter Text oder [CACHE_MISS] <url>

cache_store

url, prompt, output

stored

cache_stats

--

{ total, hits, last }

cache_list

limit?

kürzliche URLs (neueste zuerst)

Speicherung

SQLite unter ~/.webcache/cache.db (WAL-Modus, sicher bei gleichzeitigem Zugriff). Cache-Schlüssel = SHA256(url + "|" + prompt).

Feld

Typ

key

TEXT PRIMARY KEY

url

TEXT

prompt_hash

TEXT

output

TEXT

cached_at

INTEGER (ms Epoche)

hit_count

INTEGER

last_hit_at

INTEGER

SessionStart-Hook

Bei jeder neuen Sitzung fügt der Hook eine einzeilige Statistik ein:

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

Überspringt die Einfügung, wenn der Cache leer ist.

TTL

Standardmäßig 7 Tage. Abgelaufene Einträge werden beim nächsten Lesen desselben Schlüssels gelöscht. Führen Sie eine manuelle Bereinigung durch, indem Sie src/cache.js importieren und purgeExpired() aufrufen.

Grenzen

  • Der Cache-Schlüssel enthält den Prompt -> verschiedene Prompts für dieselbe URL sind separate Einträge. Wählen Sie konsistente Prompts (z. B. immer "extract title and main content"), um die Trefferquote zu maximieren.

  • Die Ausgabe ist das, was WebFetch zurückgibt (bereits vom Modell zusammengefasst). Der Cache verarbeitet sie nicht erneut.

  • Keine semantische Suche, keine Embeddings. Nur exakte (url, prompt)-Übereinstimmungen.

Lizenz

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