-
-
Notifications
You must be signed in to change notification settings - Fork 7
Claude Desktop
Claude Desktop has no hook system — no SessionStart, no PreToolUse, no automatic context injection (verified against the app: the MCP instructions field is currently stored but never read). bastra-recall reaches autonomy there anyway, through the MCP layer itself plus a two-minute one-time setup.
Option A — Desktop Extension, no CLI needed: download bastra-recall-<version>.mcpb from the latest release and double-click it (or: Claude Desktop → Settings → Extensions → Advanced settings → Install extension…). Pick your vault folder in the dialog — done. The extension carries the Bastra logo, bundles the MCP forwarder, and the shared local daemon starts automatically on first use. Already have the CLI? bastra install claude-desktop --extension fetches the bundle, offers to remove a config-file registration (duplicate tools otherwise), and opens Desktop's install dialog — one click left.
Option B — CLI:
bastra install claude-desktop # or: bastra install allRegisters the MCP server in claude_desktop_config.json and drops the skill into ~/.claude/skills/ (the Desktop app reads the same folder). Restart Claude Desktop afterwards.
-
First-call session context — the forwarder process lives exactly one Desktop session. The first tool call of a session gets the same context block the SessionStart hook injects in Claude Code appended to its result: pinned memories, durable user preferences, taxonomy conventions, open care/import/onboarding state. Claude Code sessions are detected and skipped (no double injection). Opt out:
BASTRA_MCP_SESSION_CONTEXT=0. -
Read-only annotations —
recall,load_memory,find_document,read_documentare markedreadOnlyHintand land in the bulk-approvable "Read-only tools" group of Desktop's permission UI. - Server instructions — shipped in the MCP handshake. Claude Code loads them at session start (official channel); Desktop currently ignores them, but the day Anthropic wires the field up, bastra is already there.
- Directive tool descriptions — the recall/save descriptions carry the when-to-act rules ("at session start", "save autonomously, do not wait to be asked"); Desktop reads them whenever the tools are in context.
- Settings → Connectors → bastra-recall → tool access: "Always available" — keeps the memory tools and their guidance always in Claude's context (recommended by Anthropic for servers with fewer than ten tools).
- On the first tool call pick "Allow always" — the read tools are annotated read-only and safe to run unsupervised.
- Settings → Profile → personal preferences ("Instructions for Claude") — paste:
Memory: I use bastra-recall (local MCP). Begin every conversation by silently
retrieving context with its recall tool. Before answering anything about my past,
projects, documents or preferences, search bastra-recall first (recall +
find_document) — before any other lookup. When I state a durable preference,
rule, decision or fact worth keeping, save it via save_memory without being
asked, then confirm in one short line.
This is the same pattern the official MCP memory reference server canonizes ("begin every chat by retrieving…") — personal preferences are injected into your conversations, so the very first recall happens without you asking, and that first recall pulls in the full session context (see above).
The Desktop app's Code tab runs the Claude Code engine and shares its configuration: ~/.claude.json and ~/.claude/settings.json are the same files, and per Anthropic's docs "hooks and skills defined in settings apply to both." Your bastra hooks (SessionStart context, PreToolUse recall hints), skill and CLAUDE.md work there unchanged — additionally, Desktop loads the claude_desktop_config.json server into Code-tab sessions, so the MCP registration carries over too. Nothing to configure.
Cowork limitation: Cowork sessions run in a VM sandbox that does not mount ~/.claude/settings.json — user hooks do not fire there, and tool approvals are not persisted across Cowork sessions (known upstream issue). The MCP tools themselves remain available.
Anthropic's native memory learns automatically within conversations; bastra-recall is your durable, multi-session, local-first memory across ALL your AI tools. They don't conflict — the preferences prompt above simply makes bastra the first stop for retrieval.
Claude Desktop hat kein Hook-System — kein SessionStart, kein PreToolUse, keine automatische Kontext-Injektion (gegen die App verifiziert: das MCP-instructions-Feld wird derzeit gespeichert, aber nie gelesen). bastra-recall erreicht Autonomie trotzdem — über die MCP-Schicht selbst plus ein einmaliges Zwei-Minuten-Setup.
Option A — Desktop Extension, ganz ohne CLI: bastra-recall-<version>.mcpb vom aktuellen Release laden und doppelklicken (oder: Claude Desktop → Settings → Extensions → Advanced settings → Install extension…). Im Dialog den Vault-Ordner wählen — fertig. Die Extension trägt das Bastra-Logo, bündelt den MCP-Forwarder, und der geteilte lokale Daemon startet beim ersten Gebrauch automatisch. CLI schon da? bastra install claude-desktop --extension holt das Bundle, bietet an, eine Config-Registrierung zu entfernen (sonst doppelte Tools), und öffnet Desktops Install-Dialog — ein Klick bleibt.
Option B — CLI:
bastra install claude-desktop # oder: bastra install allRegistriert den MCP-Server in claude_desktop_config.json und legt die Skill in ~/.claude/skills/ ab (die Desktop-App liest denselben Ordner). Danach Claude Desktop neu starten.
-
First-Call-Session-Kontext — der Forwarder-Prozess lebt genau eine Desktop-Session. Der erste Tool-Call einer Session bekommt denselben Kontext-Block ans Ergebnis gehängt, den in Claude Code der SessionStart-Hook injiziert: gepinnte Memories, dauerhafte Präferenzen, Taxonomie-Konventionen, offene Care-/Import-/Onboarding-Stände. Claude-Code-Sessions werden erkannt und übersprungen (keine Doppel-Injektion). Abschalten:
BASTRA_MCP_SESSION_CONTEXT=0. -
Read-only-Annotations —
recall,load_memory,find_document,read_documenttragenreadOnlyHintund landen in der gesammelt freigebbaren „Read-only tools"-Gruppe der Desktop-Permission-UI. - Server-Instructions — im MCP-Handshake mitgeliefert. Claude Code lädt sie beim Session-Start (offizieller Kanal); Desktop ignoriert sie derzeit — sobald Anthropic das Feld anschließt, ist bastra schon da.
- Direktive Tool-Descriptions — die recall-/save-Descriptions tragen die Wann-handeln-Regeln („at session start", „save autonomously, do not wait to be asked"); Desktop liest sie, sobald die Tools im Kontext sind.
- Settings → Connectors → bastra-recall → Tool-Zugriff: „Always available" — hält die Memory-Tools und ihre Anleitung immer in Claudes Kontext (von Anthropic für Server mit unter zehn Tools empfohlen).
- Beim ersten Tool-Call „Allow always" wählen — die Lese-Tools sind als read-only annotiert und laufen gefahrlos unbeaufsichtigt.
- Settings → Profil → persönliche Präferenzen („Instructions for Claude") — einfügen:
Memory: I use bastra-recall (local MCP). Begin every conversation by silently
retrieving context with its recall tool. Before answering anything about my past,
projects, documents or preferences, search bastra-recall first (recall +
find_document) — before any other lookup. When I state a durable preference,
rule, decision or fact worth keeping, save it via save_memory without being
asked, then confirm in one short line.
Das ist dasselbe Muster, das der offizielle MCP-Memory-Referenz-Server kanonisiert („begin every chat by retrieving…") — persönliche Präferenzen werden in deine Konversationen injiziert, der allererste recall passiert also ungefragt, und genau dieser erste recall zieht den vollen Session-Kontext nach (siehe oben).
Der Code-Tab der Desktop-App fährt die Claude-Code-Engine und teilt ihre Konfiguration: ~/.claude.json und ~/.claude/settings.json sind dieselben Dateien, und laut Anthropic-Doku gelten „hooks and skills defined in settings" für beide. Deine bastra-Hooks (SessionStart-Kontext, PreToolUse-Recall-Hints), Skill und CLAUDE.md funktionieren dort unverändert — zusätzlich lädt Desktop den claude_desktop_config.json-Server in Code-Tab-Sessions, die MCP-Registrierung zieht also mit. Nichts zu konfigurieren.
Cowork-Einschränkung: Cowork-Sessions laufen in einer VM-Sandbox, die ~/.claude/settings.json nicht mountet — User-Hooks feuern dort nicht, und Tool-Freigaben überleben Cowork-Sessions nicht (bekanntes Upstream-Issue). Die MCP-Tools selbst bleiben verfügbar.
Anthropics natives Memory lernt automatisch innerhalb von Konversationen; bastra-recall ist dein dauerhaftes, sessionübergreifendes, lokales Gedächtnis über ALLE deine AI-Tools hinweg. Beides kollidiert nicht — der Präferenzen-Prompt oben macht bastra schlicht zur ersten Anlaufstelle fürs Abrufen.