lanternkb
Private, local search over your own files, for you and the AI tools you choose.
lanternkb indexes the folders you pick and searches them by meaning and by exact words. It runs as a local MCP server for Claude Code and other assistants, with no daemon, no open port and no telemetry. Secrets it detects are redacted before anything is stored, and you decide which folders an assistant that sends results to the cloud may see.
Install
macOS 14 or later on Apple silicon, or Linux, with uv:
uv tool install --managed-python --python 3.12 "lanternkb[embed,ui]"
lanternkb setup # asks for folders and whether an assistant may see them, offers the models, indexes
--python 3.12 matters: without it uv may pick an older Python already on the machine, and the install fails.
The install takes about 0.9 GB on macOS, plus about 1.2 GB for the embedding model. uv tool upgrade lanternkb
updates it.
Search
lanternkb search "what did the plumber say about the boiler"
lanternkb search "boiler quote" --type pdf,docx --since 30d
lanternkb recent # files changed lately
lanternkb ui # the settings page, with a search box
lanternkb doctor # checks the setup and says what to fix
Run lanternkb setup before connecting an assistant: the server searches the folders you chose there.
Use it from your AI tools
Claude Code:
lanternkb mcp-setupprints aclaude mcp addcommand. Run it.- The server it registers returns files from folders you marked open, and nothing else.
- Claude Code can also read files with its own tools, so
mcp-setupprints deny rules too. Add them to~/.claude/settings.jsonto keep its tools away from your local-only folders and the index.
Codex, Cursor, VS Code, Gemini CLI and any other MCP client: run lanternkb serve --tier open as a stdio
server. For Codex, in ~/.codex/config.toml:
[mcp_servers.lanternkb]
command = "lanternkb"
args = ["serve", "--tier", "open"]
The user guide has the JSON form the other clients take, and what to watch for.
What it reads
Notes, code, PDFs, Word and OpenDocument files, rich text, saved web pages and subtitles; scanned pages and audio optionally. Plugins can add file types, embedding models and rules for which folder is open (plugins).
Privacy and safety
- Every folder is
openorlocal-only, and new folders are local-only. - Credential folders and secret-shaped files are skipped, and a secret scanner redacts what it finds before anything is split up or embedded. A file in which it finds a secret becomes local-only, even in an open folder.
- Files are read in sandboxed worker processes that deny by default:
sandbox-execon macOS, Landlock and seccomp on Linux. - Nothing goes over the network except the model downloads you agree to.
The threat model says what is protected and what is not.
How well it works
Tested on a synthetic set of files (three open-source code bases and 654 generated notes) with 330 held-out questions: nDCG@10 0.831, against 0.777 for grooveseek with its reranker and 0.760 for QMD, at about 30 ms a search (about 120 ms with reranking, on an M5 Max). On the hardest held-out test of planted fake secrets, the scanner kept 71.9% out of the index, so treat it as a second line of defence: keep credential folders out of indexed folders, or local-only.
Limits
- The secret scanner misses some secrets, and values that read as examples (
example,changeme, a<placeholder>, a${VARIABLE}) are left alone. - On Linux, reranking runs on the CPU at 0.4 to 1 s a search, so it is off until you enable it.
- Email, browser history, calendars and contact cards are not indexed.
- Scanned PDFs and images need OCR, which is off by default.
More
Licence
Apache-2.0: see LICENSE, NOTICE and THIRD_PARTY_NOTICES.md.
Metadata
Release files for lanternkb 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lanternkb-0.1.3.tar.gz | 234.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lanternkb-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 500.2 kB
Release files / lanternkb-0.1.3.tar.gz
| Download URL | lanternkb-0.1.3.tar.gz |
|---|---|
| Size | 234.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
21cafe52caef2fb7943d1fcd761a39c4d17a239e1b746c9d05a66f4962911719
|
|
BLAKE2b-256 checksum How to use checksums |
c0158c8bf62e87e00cbcca6cac29a04d2f9536328df1453532b9ea1c1765c76d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / lanternkb-0.1.3-py3-none-any.whl
| Download URL | lanternkb-0.1.3-py3-none-any.whl |
|---|---|
| Size | 265.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5fb6a2fe3934f288f12ab0c6727003c5ac1fce4296a72e30cef353a1442c87f1
|
|
BLAKE2b-256 checksum How to use checksums |
b82c0c0407e7e10a1cd9a0c74f1eb6d4aba710d4de50fe58dcce88f7d3713776
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency log