This release is a pre-release and may not be stable for production use.
Lode
No need to build another knowledge base. Your workspace is already a lode of knowledge.
Lode is a local-first knowledge mining engine that turns your workspace into a searchable knowledge lode.
[!WARNING] Lode is currently in early development. Features may be incomplete, behavior may change, and breaking changes may occur before the first stable release.
Why Lode?
Your knowledge already exists.
It lives in:
- Documentation explaining concepts and decisions.
- Markdown notes capturing project knowledge.
- Design documents describing systems and workflows.
- Text files accumulated throughout development.
The problem is not storing more knowledge.
The problem is finding the right piece of knowledge when you need it.
Lode helps AI agents access workspace-specific knowledge by indexing existing documents and exposing them through semantic and lexical retrieval.
Instead of relying only on general-purpose models, agents can access the information that belongs to your projects.
Install
Install from source
-
Clone the repository:
git clone https://github.com/cubelitblade/lode.git cd lode
-
Install:
uv tool install .
-
Verify:
lode --help
Quickstart
1. Provide an embedding server
Lode does not ship with an embedding model. Bring your own embedding provider. Lode supports local embedding servers such as Text Embeddings Inference (TEI), as well as OpenAI-compatible embedding APIs.
[!TIP] The easiest way to start is using Hugging Face TEI:
For example:
mkdir -p $PWD/data model=Qwen/Qwen3-Embedding-0.6B volume=$PWD/data docker run --gpus all \ -p 8080:80 \ -v $volume:/data \ --pull always \ ghcr.io/huggingface/text-embeddings-inference:cuda-latest \ --model-id $modelFor more information, see Hugging Face: Text Embeddings Inference.
2. Configure Lode
Set your embedding provider:
lode config set embedding.provider "openai_compatible" --scope user
lode config set embedding.openai_compatible.endpoint <endpoint> --scope user
lode config set embedding.model <model-name> --scope user
lode config set embedding.openai_compatible.key <api-key> --scope user # optional
For a TEI native endpoint, use tei_native instead:
lode config set embedding.provider "tei_native" --scope user
lode config set embedding.tei_native.endpoint <endpoint> --scope user
lode config set embedding.model <model-name> --scope user
Workspace-specific configuration can also be created using workspace scope.
3. Survey a workspace
Discover documents in your workspace:
lode --workspace <path> survey
Survey builds the map of your knowledge lode.
4. Mine a workspace
Generate embeddings and store indexed chunks:
lode --workspace <path> mine
Mining processes discovered documents, generates embeddings, and stores searchable indexes locally in SQLite.
5. Prospect knowledge
Search your workspace:
lode --workspace <path> prospect <query>
Lode performs hybrid retrieval using semantic similarity and BM25 lexical matching.
It combines meaning-based search with exact keyword matching, then returns candidate chunks with scores and digests.
6. Dig the ore
Retrieve a specific chunk:
lode --workspace <path> dig <digest>
This returns the complete content associated with the digest.
FAQ
Why does lode fail to load SQLite extensions on macOS?
Possible reason
Lode requires SQLite extension loading for certain features.
Some Python builds, especially those linked against SQLite libraries without
loadable extension support, may not provide
sqlite3.Connection.enable_load_extension().
This depends on how Python and SQLite were built, not only on the Python version. CPython documents that loadable SQLite extension support is disabled by default and notes macOS as a notable platform where the underlying SQLite library may lack this capability.
You can verify the capability with:
import sqlite3
print(hasattr(sqlite3.Connection, "enable_load_extension"))
Solution
- Use a separately installed Python distribution instead of the system-provided Python.
- In CI environments, explicitly configure the Python version and interpreter used by
uvto avoid relying on the runner's preinstalled Python.
For more information, see:
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lode_cli-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: lode_cli-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 5.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36b3965f3fab56cfe323ed0faf2b7b59f2d14ab853e986221e12719e2717f739
|
|
| MD5 |
9da7aaf922f12c41aff1745900c8dd07
|
|
| BLAKE2b-256 |
624e621410a5c31f90ee78ddbb68deb1e0fd4b9a6ee0a1e5df552192469bfa59
|
Provenance
The following attestation bundles were made for lode_cli-0.1.0a1-py3-none-any.whl:
Publisher:
release-lode.yml on cubelitblade/lode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lode_cli-0.1.0a1-py3-none-any.whl -
Subject digest:
36b3965f3fab56cfe323ed0faf2b7b59f2d14ab853e986221e12719e2717f739 - Sigstore transparency entry: 2673289786
- Sigstore integration time:
-
Permalink:
cubelitblade/lode@e32ed93711aff392e7277bbe18472ed02d9fbfa1 -
Branch / Tag:
refs/tags/lode/v0.1.0-alpha.1 - Owner: https://github.com/cubelitblade
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-lode.yml@e32ed93711aff392e7277bbe18472ed02d9fbfa1 -
Trigger Event:
push
-
Statement type: