Pensieve for Mac

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.

Install with your agent See how it works
Apple Silicon · macOS 14 or later · free and open source
Connects to the agents you already use
  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • Windsurf
  • Claude Desktop
  • VS Code
  • any MCP client
Superpowers for your agents

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.

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.

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.

30% cheaper$0.033 per answer instead of $0.047 with grep. 18–31% cheaper in each of four test batches.
32% faster9.1 seconds per answer instead of 13.4 with grep. 21–32% faster in each of four test batches.
17% more accurateFound the right file 17% more often than grep: in 123 of 144 runs instead of 105. More accurate in each of four test batches.

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.

Know who to ask

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.

Find knowledge gaps

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.

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.

Always current

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.

payments/retry.pyUncommitted change in acme-app
now
New worktree: fix-backoffFiles that differ from main, tagged with their branch
12 s ago
Q3 planning.pdfSaved to ~/Documents/Planning
1 min ago
Price the annual plan correctlyNew turns in a running Claude Code session
2 min ago
Private by design

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:

Built-in Qwen 3.5 9B Local
LM Studio or local server Local
Claude Code or Codex Cloud
Off Local

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.

curl -fsSL https://pensieve.tools/install.sh | sh

2. Ask your coding agent to connect it.

Paste this into Claude Code, Codex, Cursor, Gemini CLI, Qwen Code, Windsurf or VS Code.

Pensieve is installed on my Mac. Run pensieve integrate recommended to connect my coding agents. Then run pensieve setup, show me what it found and how long each source takes to index, ask me which sources to index, and run pensieve setup with my choices. Tell me how long indexing takes and how to search and open the map.
  1. 1Run the commandIt installs the app. You don't need git, Python or Xcode.
  2. 2Paste the promptYour agent connects Pensieve to every agent on your Mac.
  3. 3Choose what to indexYour agent asks, and tells you how long it takes. Indexing uses a lot of energy, so plug in.
  4. 4Tap Control+ShiftSearch from anywhere, also while it indexes. Choose Open Map in the menu bar to explore.
Apple Silicon · macOS 14 or later · Download the app instead

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.

131 / 144runs that found the right file with Pensieve, against 123 / 144 with grep alone
43% fewertool calls per lookup: 2.0 instead of 3.4
18% cheaperper lookup: $0.041 instead of $0.050, and cheaper in all four repos
21% fasterper lookup: 8.6 seconds instead of 10.9

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.

One grepPensieve search

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.

Grep, Glob and ReadWith Pensieve

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.