Supercharges you
and your agents.
Search your files, repos and agent sessions, locally, and give your agents the best context for the job. One search points them to the few passages that matter, instead of grepping the whole disk. Fewer tool calls, lower cost.
- Claude Code
- Codex
- Cursor
- Gemini CLI
- Windsurf
- Claude Desktop
- VS Code
- any MCP client
One search. Every file, repo and session.
Press Control+Shift for a glass panel over your documents, folders, git repositories and conversations with coding agents. Search by meaning or by the exact words. Pick a result, tap Control, and choose what to do with it without touching the mouse.
By meaning
Plain words find what you meant, even when the file never uses them.
Exact words
Quotes match the phrase exactly. Mix both to rank exact hits by meaning.
Leave things out
A minus sign excludes a word or a quoted phrase.
Narrow it down
Filter to files, code or sessions, a file type, or a folder or repo with in:.
The right context. Not the whole disk.
Agents are only as good as the context they're given. Connected over MCP, your coding agent asks Pensieve one question and gets back the few passages that matter, with file and line. It starts on the right code in fewer tool calls.
› Why do card retries stop after a decline? ● Grep "retry" in acme-app 212 matches ● Read payments/retry.py ● Read payments/gateway.py ● Read billing/invoices.py ● Read tests/test_payments.py … 36 more files Still looking for the backoff rule…
› Why do card retries stop after a decline? ● pensieve · search "card retry after decline" payments/retry.py:42 stop on hard_decline payments/gateway.py:118 decline codes Incident review.md why we changed it ● pensieve · read payments/retry.py:42 Hard declines skip the retry queue. Maya Rivera owns this; see the Mar 4 review.
Illustrative example. In the benchmark below, agents with Pensieve averaged 2.0 tool calls per lookup against 3.4 with grep, and answered after a single call in 82 of 144 runs.
~ $ pensieve integrate recommended claude-mcp: on codex-mcp: on cursor-mcp: on claude: on # "search before you grep" in ~/.claude/CLAUDE.md pensieve-search: on claude-hook: on claude-repo-check: on Agents load MCP servers when they start: restart any that are open to give them Pensieve.
Scoped to the job
An agent started in a repo sees that repo, its worktrees and its sessions. Name a scope to give it a few repos and a folder of specs.
Exact or by meaning
Agents use the same search you do: by meaning, by the exact identifier, or both, across code, docs and past sessions.
Works with your agent
Claude Code, Codex, Cursor or any MCP client, over stdio with pensieve mcp or over HTTP. pensieve integrate connects the agents on your Mac and adds a “search before you grep” block and skills, including optional ones that point you to teammates who know the code.
Claude Sonnet in Claude Code, Pensieve with the recommended install, against Claude Code with grep only. 72 tasks in four real repos (504 to 34,847 files), each task twice per setup. The method and every strategy we tried.
See who owns what.
Every repo as a map, with git blame for every line. Ask about any topic and get the people with the most domain knowledge, plus what each teammate has been working on lately. The fastest answer is often a conversation.
Ownership from blame
Who wrote each area, weighted by the lines that are still there today.
Domain knowledge
Ask about a topic, not a file, and get the people whose code is most about it.
Team activity
What each teammate shipped in the last 90 days, and the areas next to your work you haven't explored.
Know where the knowledge left.
When the people who wrote a part of the codebase are no longer active in it, that knowledge is at risk. Pensieve flags those areas, shows how few people still know them, and who knows them best today.
vat.py.Bus factor at a glance
For every area of a repo: how much of the code was written by people still active there, and how many of them there are.
Who still knows it
The active people with the most lines in that area, so you know who to pull in before you change it.
Plan the handover
Spot gaps before an incident does. Point your agent at the area to draft the missing docs.
Example with fictional names and numbers.
Edit a file. Search it seconds later.
Pensieve watches your folders, repos and agent sessions and re-indexes what changed. Uncommitted edits count, and every worktree is tracked by branch, so your agents never work from stale context.
Your work stays on your Mac.
Indexing and search run locally. You decide what gets indexed, and AI is entirely optional.
Runs locally
An on-device embedding model and a local index in ~/.pensieve. Its server answers only this Mac, not your network or other websites. No account, no cloud service.
Switch any source off
Agents, folders, repos and apps each have a switch. Turning one off removes what it indexed.
Secrets skipped
Password-manager exports, keys, .env files and credentials are never indexed.
AI if you want it
Summaries and insights are optional. Pick who writes them, or leave it off:
Get Pensieve.
Free and open source. One command installs it, and your coding agent does the rest.
1. Install the app.
Run this in Terminal. It installs Pensieve and opens it.
2. Ask your coding agent to connect it.
Paste this into Claude Code, Codex, Cursor, Gemini CLI, Qwen Code, Windsurf or VS Code.
- 1Run the commandIt installs the app. You don't need git, Python or Xcode.
- 2Paste the promptYour agent connects Pensieve to every agent on your Mac.
- 3Choose what to indexYour agent asks, and tells you how long it takes. Indexing uses a lot of energy, so plug in.
- 4Tap Control+ShiftSearch from anywhere, also while it indexes. Choose Open Map in the menu bar to explore.
Questions.
What does Pensieve search?
Your files and folders (Documents, Desktop, Downloads and any folder you add), your git repositories including uncommitted changes and worktrees, and your Claude Code, Codex and Qwen Code sessions. Obsidian vaults too, and optionally Apple Notes. Everything is indexed and searched on your Mac.
How does Pensieve help my agent?
Without it, a coding agent often greps the repo and reads many whole files to find what matters, and every file it reads costs tokens. With Pensieve connected over MCP, the agent asks one question and gets back the most relevant passages with their file and line, so it starts on the right code in fewer tool calls. In our benchmark that made each lookup 18% cheaper and 21% faster. The numbers are below.
Does Pensieve make Claude Code cheaper?
In our benchmark, Claude Code with Pensieve found the right file in 131 of 144 runs, against 123 with grep alone, with 43% fewer tool calls. Each lookup cost 18% less overall, and 6–28% less in each of four repos from 504 to 34,847 files. The benchmark scripts are open source, so you can run them on your own code.
How well does it work? The numbers
We ran two tests in four real repos, from 500 to 35,000 files: Claude Code finding code with and without Pensieve, and Pensieve searching on its own.
Right file, first result
One search, before any agent: how often the answer is the top result, over 1,000 test queries of four kinds.
Agent cost per code lookup
Claude Sonnet in Claude Code, measured in four real repos. Pensieve costs less in every repo, and saves the most in the biggest one.
How we measured. We ran two tests in four real repos, from 500 to 35,000 files.
Test 1: Claude Code with and without Pensieve. Claude Code had to find the right file for 72 tasks. It did each task twice with its normal tools (grep, glob and read), and twice with Pensieve added. With Pensieve, it found the right file more often, with fewer tool calls and at a lower cost. We did not use these tasks to tune Pensieve.
Test 2: one search, no agent. We gave Pensieve 1,000 searches and checked if the right file came first. The searches were of three kinds:
- A question in plain words, for example “email sent once when free trial ends”. The right file was first 44% of the time, and in the top 10 results 80% of the time.
- An exact name or error message, for example
batch_update. The right file was first 88% of the time. - A name and a few words, for example “pg_inherits check whether table is a partition”. The right file was first 70% of the time, and in the top 3 results 94% of the time.
Grep finds only text that is in the code word for word. It cannot answer a question in plain words. Over all 1,000 searches, the right file was first 67% of the time with Pensieve, and 22% of the time with grep. One search takes about 80 ms. We measured on an Apple M4 Max. The test scripts are in bench/, so you can run them on your own code.
How do I get my agent to use Pensieve instead of grep?
Agents grep by habit. The agent prompt runs pensieve integrate recommended, which adds a short “search before you grep” section to the instructions files of Claude Code, Codex and Gemini CLI, plus a search skill and two hooks for Claude Code. You can also switch these on in Settings → Agents. With it, the agent used Pensieve in 144 and 143 of 144 runs, in the two benchmark batches that ran without our own Claude Code settings.
Which agents work with Pensieve?
Any MCP client. pensieve integrate recommended connects Claude Code, Codex, Cursor, Gemini CLI, Windsurf, Claude Desktop and VS Code for you. Other agents can use pensieve mcp over stdio, or HTTP. Optional skills also suggest which teammates know an area and help plan new code around what already exists.
How does it find knowledge gaps?
Pensieve reads git blame and recent commit history for each area of a repo. Areas where most lines were written by people with no recent commits there are flagged, along with how many active people know the area and who among them knows it best.
Does anything leave my Mac?
Your files, code and sessions don't. Indexing and search run on your Mac. Pensieve only downloads its models and checks GitHub for updates, which you can turn off. The exception is if you choose Claude Code or Codex to write optional AI insights; those are labelled Cloud. The built-in model, a local server like LM Studio, or no AI at all keep everything local.
Do I need an AI model?
No. Search, agent context, ownership and knowledge gaps all work without one. AI insights are optional: choose the built-in Qwen 3.5 9B, LM Studio, Claude Code, Codex, or leave it off.
Is Pensieve free?
Yes. It's free and open source under the MIT license. The code is on GitHub.
Why does macOS ask before opening it?
The app isn't notarized yet. If macOS blocks it, open System Settings → Privacy & Security and click Open Anyway. You only do this once.
Does it work on Intel Macs or Linux?
The app needs Apple Silicon. On Linux and Intel Macs, the same install command installs the backend and the browser visualizer. An Intel Mac also gets the search panel if the Xcode command-line tools are installed.
How do I uninstall it?
First run pensieve integrate all --remove to disconnect your agents. Then quit Pensieve, drag it to the Trash, and delete ~/.pensieve, ~/.local/share/uv/tools/pensieve and ~/.local/bin/pensieve. Its models are in ~/.cache/huggingface.