context7
Fetches up-to-date documentation and code examples for libraries, frameworks, SDKs, CLI tools and cloud services, so an AI agent can answer API questions and generate code against current references.
Gives Claude Code persistent project memory by loading relevant context from an Obsidian vault before each prompt, so stack, decisions, and past work carry across sessions.
Claude Code
$ npx -y skills add senapati484/claude-recall --agent claude-code
Codex
$ npx skills add senapati484/claude-recall -a codex
Cursor
$ npx skills add senapati484/claude-recall -a cursor
Gemini CLI
$ npx skills add senapati484/claude-recall -a gemini-cli
GitHub Copilot
$ npx skills add senapati484/claude-recall -a github-copilot
OpenCode
$ npx skills add senapati484/claude-recall -a opencode
Windsurf
$ npx skills add senapati484/claude-recall -a windsurf
Β Β Β Β Β
Β Β Β Β Β
Persistent Obsidian memory for Claude Code Install once Β· Works every session Β· Zero config Β· Zero project pollution
Claude Code has no memory between sessions. Every time you start a new conversation, Claude forgets your project's stack, architecture decisions, gotchas, and what you worked on yesterday.
You end up repeating the same context over and over.
claude-recall hooks into Claude Code and bridges it with your Obsidian vault β completely automatically.
| Hook | What happens | |
|---|---|---|
| π΅ | Before your first message | Loads your project context from Obsidian |
| π | When you exit | Saves a structured session note back to the vault |
No manual invocation. No config beyond your vault path. No files created in your project directory.
curl -fsSL https://raw.githubusercontent.com/senapati484/claude-recall/main/install.sh | bash
UserPromptSubmit hookcontext.md from your vaultClaude starts every session already knowing your project. Context is loaded once per terminal session β not on every prompt.
Stop hookcontext.md auto-sections with session learningsYour work is automatically documented in Obsidian. Uses claude CLI under the hood β no API keys required.
Project slug is derived from your working directory:
| Path | Slug |
|---|---|
~/projects/setu | setu |
~/client/acme/dashboard | acme-dashboard |
~/Desktop/Dev/Innovation/setu | innovation-setu |
your-vault/
βββ claude-recall/
βββ _index.md β auto-updated project log
βββ projects/
βββ setu/
βββ context.md β βοΈ you edit this in Obsidian
βββ sessions/
βββ 2026-04-10_14-30.md β auto-written
βββ 2026-04-11_09-15.md β auto-written
context.md β auto-generated project memorycontext.md is auto-generated from project scan + optionally AI-enhanced via claude CLI on first load and updated after each session.
You can edit it in Obsidian β your content outside <!-- auto:* --> markers is never overwritten:
## What this is
<!-- auto:what_this_is:start -->
Project: setu β blood donation platform
<!-- auto:what_this_is:end -->
## Stack
<!-- auto:stack:start -->
Flutter Β· Express.js Β· MongoDB Atlas Β· Railway
<!-- auto:stack:end -->
## Key files
<!-- auto:key_files:start -->
- `lib/auth/jwt_handler.dart`
- `server/routes/auth.ts`
- `lib/screens/donor_screen.dart`
<!-- auto:key_files:end -->
## Architecture decisions
<!-- auto:architecture:start -->
- JWT auth with refresh tokens stored in secure storage
- Image uploads compressed client-side before S3
<!-- auto:architecture:end -->
## Gotchas
<!-- auto:gotchas:start -->
- Railway free tier has 500MB memory limit
- MongoDB Atlas M0 caps at 500 connections
<!-- auto:gotchas:end -->
Each session note includes YAML frontmatter, making them searchable with Obsidian Dataview:
---
date: 2026-04-11
project: setu
turns: 8
tags: [claude-recall, session]
---
# Session 2026-04-11 14:30
## Started with
> Add JWT auth to the Express routes
## Stats
8 user turns Β· 12 total messages Β· 5 tool calls
## Summary
Started with: Add JWT auth... Β· 3 file(s) modified Β· Tools used: Readx2, Editx2, Bashx1
## Files touched
- server/auth.js
- routes/api.js
- lib/screens/home_screen.dart
## Tools used
- `Read`: 2x
- `Edit`: 2x
- `Bash`: 1x
## Git changes
server/auth.js | 25 +++++++++ routes/api.js | 10 ++++ 2 files changed, 35 insertions(+)
## Next steps
- [ ] _(edit in Obsidian or ask Claude to summarise)_
Requirements: Python 3.8+ Β· Claude Code Β· Obsidian
curl -fsSL https://raw.githubusercontent.com/senapati484/claude-recall/main/install.sh | bash
What the installer does:
~/.claude/claude-recall.json~/.claude/skills/claude-recall/anthropic and fastmcp via pip~/.claude/settings.jsonβ οΈ Restart Claude Code after install.
Manual install (no curl)
git clone https://github.com/senapati484/claude-recall ~/.claude/skills/claude-recall
bash ~/.claude/skills/claude-recall/install.sh
Edit ~/.claude/claude-recall.json to override defaults:
{
"vault_path": "/path/to/your/vault",
"vault_folder": "claude-recall",
"max_context_tokens": 400,
"include_recent_sessions": 2,
"save_sessions": true,
"load_on_every_prompt": true,
"use_claude_api": true
}
| Key | Default | What it does |
|---|---|---|
vault_path | (required) | Absolute path to your Obsidian vault |
vault_folder | claude-recall | Folder inside the vault for all notes |
max_context_tokens | 400 | Token budget for injected context (~1.6K chars) |
include_recent_sessions | 2 | How many past session notes to load |
save_sessions | true | Write session notes on exit |
load_on_every_prompt | true | Reload relevant context on every prompt |
use_claude_api | true | Use Claude API for summarization |
claude-recall supports multiple AI backends for session summarization and context generation. It checks them in a specific fallback order and defaults to a zero-config local regex fallback if no backend is configured or available.
Claude CLI (Primary)
claude executable is found in your system's PATH.claude -p.Anthropic API (Fallback 1)
claude CLI is not found or fails to run, and the ANTHROPIC_API_KEY environment variable is defined.claude-haiku-4-5-20251001 (or haiku-4-5) model.anthropic Python package (pip install anthropic).NVIDIA NIM / OpenAI-Compatible API (Fallback 2)
claude CLI and ANTHROPIC_API_KEY are unavailable, and the OPENAI_API_KEY and NVIDIA_NIM_BASE_URL environment variables are defined.claude-3-5-haiku-20241022 model name (mapped appropriately by the target provider).openai Python package (pip install openai).Regex-based Fallback (Fallback 3)
An example configuration file is provided in the project root as .env.example. You can copy this file to .env in your project folder or export these variables directly in your terminal profile:
# Copy example env file
cp .env.example .env
To use NVIDIA NIM (or another OpenAI-compatible inference endpoint) as your fallback provider, configure your .env as follows:
# Use build.nvidia.com or your local/private NIM endpoint
NVIDIA_NIM_BASE_URL="https://integrate.api.nvidia.com/v1"
OPENAI_API_KEY="nvapi-your-nvidia-api-key-here"
curl -fsSL https://raw.githubusercontent.com/senapati484/claude-recall/main/install.sh | bash
Re-running the installer detects an existing install and runs git pull.
# 1. Remove hooks from settings
# Edit ~/.claude/settings.json β delete the two "claude-recall" entries
# 2. Remove skill files
rm -rf ~/.claude/skills/claude-recall
# 3. Remove config
rm ~/.claude/claude-recall.json
Your Obsidian notes under
<vault>/claude-recall/are never touched by uninstall.
ββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββ
β Claude Code β β claude-recall β β Obsidian Vault β
β β β β β β
β Prompt ββββββββΊβ load_context.py βββββββββ€ mindmap.json β
β (every msg) β β + get_relevant() β β context.md β
β β β β β sessions/*.md β
β Exit ββββββββΊβ save_context.py ββββββββΊβ β
β (stop hook) β β + update_mindmap β ββββββββββββββββββ
β β β β
β Tool use ββββββββΊβ post_tool_use.py β ββββββββββββββββββ
β (edit) β β + mark_stale() β β MCP Server β
ββββββββββββββββ ββββββββββ¬ββββββββββ β recall_get() β
β β recall_update()β
ββββββββββββββ΄βββββββββββββ β recall_session_β
β claude CLI (primary) β β recall_mindmap β
β or API key (fallback) β ββββββββββββββββββ
βββββββββββββββββββββββββββ
~/.claude/claude-recall.json
~/.claude/claude-recall-slug.env
claude-recall stores project context as a JSON graph at <vault>/claude-recall/projects/<slug>/mindmap.json:
Fetches up-to-date documentation and code examples for libraries, frameworks, SDKs, CLI tools and cloud services, so an AI agent can answer API questions and generate code against current references.
Gives Claude Code skills and agents for writing React documentation on react.dev, covering MDX components, voice and style rules, blog post structure, and interactive Sandpack code examples.
An agent skill that turns complex terminal output into styled HTML pages you actually want to read. Ask your agent to explain a system architecture, review a diff, or compare requirements against a plan.
A WYSIWYG markdown editor so you can edit markdown files like a Google Doc or Notion page, with a desktop app and web UI for navigation, search, and wiki-style linking. It also ships skills for working in codebase wiki, personal CRM, and knowledge base projects.
Gives Claude Code persistent project memory by loading relevant context from an Obsidian vault before each prompt, so stack, decisions, and past work carry across sessions. Install it with the command on its page. It includes claude-recall. Its skills do not fire on their own yet. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it