llama-index-perseus-vault
Local-first, encrypted persistent memory for LlamaIndex, backed by Perseus Vault.
Perseus Vault is an open-source (MIT) memory engine that runs entirely on your machine, stores data in an encrypted SQLite database, and exposes persistent-memory tools over the Model Context Protocol (MCP). This package wraps it as LlamaIndex agent tools and a retriever so your agents and query engines can persist and retrieve memory across runs — no external vector database, no cloud, and no API key required.
Why Perseus Vault? It is local-first and fully offline, stores everything encrypted at rest (AES-256-GCM), needs no API key or signup, and ships as a single binary with no external vector database. Your data never leaves the machine.
What's included
| Class / function | Role |
|---|---|
PerseusVaultClient |
Owns the perseus-vault subprocess; remember / recall / call_tool. |
create_perseus_vault_tools(client) |
Returns perseus_vault_remember / perseus_vault_recall FunctionTools for a LlamaIndex agent. |
PerseusVaultRetriever |
A BaseRetriever returning NodeWithScores for query engines / RAG. |
Prerequisite: the perseus-vault binary
These components talk to a local perseus-vault executable over stdio. Install it first:
- Download a pre-built binary from the Perseus Vault releases page (or build from source).
- Put it on your
$PATH(soperseus-vaultresolves), or pass its absolute path viaperseus_vault_binary=.
Install
pip install llama-index-perseus-vault
Give an agent memory tools
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai import OpenAI
from llama_index_perseus_vault import PerseusVaultClient, create_perseus_vault_tools
client = PerseusVaultClient(db_path="~/.llama-index/perseus-vault.db", category="agent-memory")
tools = create_perseus_vault_tools(client) # perseus_vault_remember, perseus_vault_recall
agent = FunctionAgent(
tools=tools,
llm=OpenAI(model="gpt-4o-mini"),
system_prompt=(
"You are a helpful assistant with long-term memory. "
"Use perseus_vault_recall before answering, and perseus_vault_remember "
"to store durable user-specific facts, preferences, or project context."
),
)
# await agent.run("Remember that I prefer concise Python examples.")
Use as a retriever (RAG)
from llama_index_perseus_vault import PerseusVaultClient, PerseusVaultRetriever
client = PerseusVaultClient(db_path="~/.llama-index/perseus-vault.db")
client.remember("Perseus Vault is a local-first, encrypted memory engine.")
retriever = PerseusVaultRetriever(client=client, similarity_top_k=5)
nodes = retriever.retrieve("What is Perseus Vault?")
for n in nodes:
print(n.score, n.node.text)
Because Perseus Vault persists to an encrypted SQLite file, anything written in one run is available in any future run pointed at the same db_path.
Configuration
PerseusVaultClient accepts:
db_path— path to the Perseus Vault SQLite database (default~/.llama-index/perseus-vault.db).perseus_vault_binary— name on$PATHor absolute path to the executable (defaultperseus-vault).timeout_s— per-RPC timeout for the subprocess (default30).encryption_key— optional path to an AES-256-GCM key file.
License
MIT © 2026 Perseus Computing LLC. Perseus Vault is also MIT-licensed.
Metadata
Release files for llama-index-perseus-vault 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llama_index_perseus_vault-0.1.1.tar.gz | 10.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llama_index_perseus_vault-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.8 kB
Release files / llama_index_perseus_vault-0.1.1.tar.gz
| Download URL | llama_index_perseus_vault-0.1.1.tar.gz |
|---|---|
| Size | 10.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce97ab4120dca039887b4a4fa3fc14aad904dd64e8aeeb9a05edd2cf448599cc
|
|
BLAKE2b-256 checksum How to use checksums |
c256498f8712afd0ab1bab5bc852f696b6ae6767153b4994092f685c5c47ff1e
|
| 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 Aug 1, 2026.
Transparency logRelease files / llama_index_perseus_vault-0.1.1-py3-none-any.whl
| Download URL | llama_index_perseus_vault-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b480dcebc4dee6f74aa3c7bc7ca703282df23a7a9841091da6822c14cde2623e
|
|
BLAKE2b-256 checksum How to use checksums |
cbc29495317cc90a9230a65e823f23df7414bf5b3a96ca168166fa14ca4e74af
|
| 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 Aug 1, 2026.
Transparency log