Locus
Your files, your machine, the MCP clients you already use.
Locus indexes folders you choose on your own computer and gives MCP clients that can start a local server (tested: Claude Desktop, Claude Code and Cursor) a semantic search tool over them. Every result carries the file path, so the assistant can cite its sources.
The package is locusfiles; the command it installs is locus.
Install
We recommend uv: you do not need Python installed first, because it
installs its own. pipx works too if you already have Python 3.11 or newer.
Either one puts locus in its own environment. locusfiles has been on PyPI since 0.1.0
(2026-09-29):
# Recommended: uv (install it first; skip if `uv --version` already works)
curl -LsSf https://astral.sh/uv/install.sh | sh # then open a new terminal, so `uv` is found
# On-device embeddings, no account (downloads PyTorch, about 1-2 GB):
uv tool install --python 3.12 "locusfiles[local]"
# or a Locus plan (managed embeddings, remote connection), no PyTorch:
uv tool install --python 3.12 "locusfiles[relay]"
uv tool update-shell # adds ~/.local/bin to PATH; open a new terminal afterwards
# Alternative: pipx (needs Python 3.11+)
pipx install "locusfiles[local]" # or "locusfiles[relay]"
Other extras: voyage or openai to embed with your own provider key.
macOS and Linux are tested. Windows is not yet verified.
First search
export LOCUS_EMBEDDER=local # or managed (with LOCUS_API_KEY), voyage, openai
locus doctor # checks Python, packages, settings and the embedder
locus index ~/Documents/notes --prune # parse, chunk, embed and index a folder
locus query "what did I decide about pricing" -k 5
Then connect your AI assistant: it runs locus serve (MCP over stdio). Setup steps for each
client are on the Locus website's Connect page (/docs/connect).
What leaves your computer
- Local: Indexing and embeddings run on your computer. When your AI assistant searches, the matching excerpts go to that assistant, as they would if you pasted them in.
- Your own key: Chunk text goes straight from your computer to the embedding provider you chose, under your own account.
- Managed: On managed plans, chunk text and your search queries pass through Locus's relay to Voyage AI to be embedded. We don't store them; we keep only usage counts.
- Remote: When you reach your computer from another device or a web AI app, your question and the matching excerpts travel through Locus's relay (Vercel and Supabase) to and from your computer. They are encrypted in transit and we don't store them.
- In every mode: Your raw files are never uploaded to Locus.
Indexes live in ~/.locus (set LOCUS_DATA_DIR to move them). Settings are environment
variables, or a .env file in the directory you run locus from or one of its parents.
Licence
The locusfiles package is licensed under the Functional Source License, Version 1.1, ALv2
Future License (FSL-1.1-ALv2). The full text ships inside the package as its LICENSE file,
and that text is the binding version. In short, the engine is source-available: you may use,
copy, modify and redistribute it for any purpose except a Competing Use (making it available to
others in a commercial product or service that substitutes for it or offers substantially similar
functionality). Two years after a version is made available, that version is also available under
the Apache License, Version 2.0. The hosted services (the relay, the website and billing) are not
part of the package and are not licensed by it.
Metadata
Release files for locusfiles 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 | |
|---|---|---|---|
| locusfiles-0.1.3.tar.gz | 145.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| locusfiles-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 319.9 kB
Release files / locusfiles-0.1.3.tar.gz
| Download URL | locusfiles-0.1.3.tar.gz |
|---|---|
| Size | 145.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3d43766350ce0d786b7deb732d5d5c2da7eaa77c65314b39f6124baaa02f1d09
|
|
BLAKE2b-256 checksum How to use checksums |
fa17d9d1436a2f12a37d9498ac011ec3b4bf4c16e225633e1c8d5c4c21c7a2e2
|
| 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 4, 2026.
Transparency logRelease files / locusfiles-0.1.3-py3-none-any.whl
| Download URL | locusfiles-0.1.3-py3-none-any.whl |
|---|---|
| Size | 174.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba02ce81ba03ecfd8f7b226610c53f53637aa0848b40844e57c429e7f06257ab
|
|
BLAKE2b-256 checksum How to use checksums |
6dfe0ae83e117a6cbff3485c91f3fd4b2c4977754f4c64f8ee739a80240b4312
|
| 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 4, 2026.
Transparency log