Pimp My IDE / garage dispatchBack to the garage
October 12, 2026 / local retrieval / agent context

Search before you sweep.

A local index can get a coding agent to the right file with fewer reads. It only helps when scope, freshness, and the exact-match fallback stay visible.

Retrieval is a lead. The source file is the evidence.

Grep is a good wrench, not a map.

Exact search wins when you know the identifier, error text, or literal. It struggles when you remember the behavior but not the spelling. Pensieve 0.6.3 combines exact matching with local embeddings across code, documents, and past coding-agent sessions. It exposes search and read tools through MCP.[1]

The implementation names the parts. The project uses a SQLite trigram full-text index for exact matches and Turbovec indexes for vector search. Its default embedding model is Qwen3-Embedding-0.6B. Those facts describe the retrieval path. They do not prove that the top result answers your question.

Use ranking to choose what to read. Use the file and the running program to decide what is true.

The published benchmark is useful and narrow.

The project reports 131 correct file finds in 144 agent runs with Pensieve, compared with 123 using grep, glob, and read. It also reports 1.97 tool calls per lookup instead of 3.44, and a lower average API cost in the measured batch.[2]

This is the maker's benchmark, not an independent evaluation. It uses Claude Sonnet in Claude Code, 72 held-out tasks run twice, and four repositories ranging from 504 to 34,847 files. The benchmark script disables write, edit, shell, task, and web tools. It asks the agent to name the file that implements a described behavior. That is a code-finding test, not a software-quality test.

Scope is part of the query.

Pensieve says its default MCP scope follows the repository where the agent started. A named scope can combine selected repositories and document folders. The same README also says that an HTTP connection without a scope sees everything, and that an agent started outside an indexed repository can search everything. That makes connection setup a review item, not a footnote.

The MCP specification gives clients a roots mechanism for telling servers which filesystem locations are relevant. Its security guidance says clients should expose only roots with suitable permissions, validate paths, and respect root boundaries.[3] A product's own scope filter still needs testing. A root name or scope label is not evidence that every read path enforces it.

Freshness needs a witness.

Pensieve says it watches files, worktrees, repositories, and agent transcripts. It also says a search processes queued changes before returning results and compares code or document hits with the current file. Those checks are useful. The final read should still include a path, line, revision or worktree, and the current file contents.

Filename filters skip common secret-shaped files, including .env*, private-key formats, credential files, and password exports. The source shows these are case-insensitive filename patterns.[4] That reduces obvious exposure. It cannot classify every secret stored under an ordinary name.

Install a retrieval policy before another index.

  1. Use exact search first for known names, literals, and error messages.
  2. Use meaning search when you know the behavior but not the spelling.
  3. Bind the connection to the smallest repository or named scope that can answer.
  4. Read the current source after ranking. Record the path, line, and revision or worktree.
  5. Fall back to grep when you need every use of a known name.
  6. Run the project's benchmark on your repositories before repeating its cost claim.

The route rack below drafts this policy as a copyable card. It does not query Pensieve, inspect your repository, or measure savings.

Interactive makeover / search box plus scope, freshness, and handoff receipt

Set the retrieval route.

A plain search box hides how a hit becomes a decision. This hybrid control keeps the query, corpus, current-file read, and exact fallback in one keyboardable route.

QueryScopeRead currentHandoff

Route controls

Enter what you remember. Select the checks your real workflow will require.

Required route checks
Drafted policy / no search executed
Two checks selected

Rank locally, then read the live file.

The route is scoped and asks for a current-source witness. Add the exact fallback when the task needs every use of a known name.

QUERY=retry failed webhook delivery with backoff
Sources read / October 12, 2026

Source log

Open the retrieval and evidence record
  1. Pensieve 0.6.3 repository, release and source inspected at commit deb8162d5ea86a59574c16b3060fe5878e9e2848. The README and pyproject.toml support the local index, search modes, MCP, model, storage, dependency, and platform claims.
  2. Pensieve agent-search benchmark script and project benchmark report, read October 12, 2026. The project reports 144 runs across four repositories. The source shows the benchmark arms, disabled tools, task construction, and scoring route. Results are first-party.
  3. Model Context Protocol specification, Roots, read October 12, 2026. It defines filesystem roots and lists permission, path-validation, consent, and boundary checks.
  4. Pensieve default settings and scope implementation, inspected at the tagged revision. They support the filename-filter and empty-scope claims.
  5. Hacker News item 50049508, resolved through the official API and read October 12, 2026. It was the discovery route. Its score and comments support none of the technical claims.

Evidence boundary: we inspected the tagged source and benchmark program. We did not run the installer, index private files, execute the benchmark, test the macOS app, or reproduce the project's savings figures. The interactive rack drafts a policy only.