Provena
Evidence-backed persistent memory for AI agents.
Know what an agent remembers, where it came from, and why it was retrieved.
Provena connects Codex, Claude Code, Gemini CLI, and other MCP clients to a shared memory service. Every structured claim retains evidence pointing to its immutable source event, along with scope, authority, review state, validity time, conflicts, and retrieval history.
Install the connector
Install the connector into a Python 3.11 or newer environment:
python -m pip install provena-agent-memory
Get access to a Provena service
Ask your Provena operator
Ask your Provena operator for these three values:
- the Provena API URL;
- an agent API key; and
- the project or branch scope ID the agent may access.
Then continue to Connect your agent below.
Or host the server and local Ollama yourself
You need Docker Engine with Docker Compose and curl. Download the current self-hosted release configuration:
mkdir provena-server
cd provena-server
curl -LO https://github.com/admiralpunk/Provena/releases/latest/download/compose.yaml
curl -LO https://github.com/admiralpunk/Provena/releases/latest/download/compose.ollama.yaml
curl -Lo .env https://github.com/admiralpunk/Provena/releases/latest/download/default.env.example
Replace the placeholder database and bootstrap secrets automatically:
python - <<'PY'
from pathlib import Path
import secrets
path = Path(".env")
text = path.read_text()
text = text.replace("replace-with-a-random-database-password", secrets.token_urlsafe(32))
text = text.replace("replace-with-a-long-random-bootstrap-token", secrets.token_urlsafe(32))
path.write_text(text)
PY
Start PostgreSQL, Provena, Ollama, and the local extraction and embedding models:
docker compose -f compose.yaml -f compose.ollama.yaml up -d
docker compose -f compose.yaml -f compose.ollama.yaml logs -f ollama-models api
The first start downloads the configured Ollama models. Press Ctrl+C after the model download finishes and the API reports that it is ready; the containers remain running.
Load the local bootstrap token, initialize a workspace, and select the issued agent credential:
set -a
. ./.env
set +a
export PROVENA_API_URL="http://127.0.0.1:8000"
eval "$(provena init --format shell)"
export PROVENA_API_KEY="$PROVENA_AGENT_KEY"
provena init also returns PROVENA_HUMAN_KEY. Keep that reviewer credential and BOOTSTRAP_TOKEN private. Do not place either one in an agent configuration.
Connect your agent
The self-hosted steps already set the required values in your shell. If an operator provided them instead, export them now:
export PROVENA_API_URL="https://memory.example.com"
export PROVENA_API_KEY="paste-agent-key"
export PROVENA_SCOPE_ID="paste-scope-id"
Verify the service, credential, and scope:
provena doctor
Generate the MCP configuration for your client:
provena connect codex
Use claude, gemini, or generic in place of codex when needed. The generated configuration points to the provena-mcp executable installed by pip, so keep that Python environment available to the agent client.
After adding the printed configuration to the client, restart the client. Provena then exposes MCP tools for attributed retrieval, explicit memory capture, candidate claims, and memory_explain provenance traces.
Command roles
| Command | Purpose |
|---|---|
provena doctor |
Verify API, database, credential, and scope access. |
provena connect CLIENT |
Print MCP configuration for an installed connector. |
provena status |
Check service health without authenticating. |
provena init |
Bootstrap a running self-hosted service; requires BOOTSTRAP_TOKEN. |
The pip package is the agent connector. The self-hosted path runs PostgreSQL, Provena, and Ollama as separate containers. Operators can find security, backup, development, and architecture documentation in the GitHub repository.
Why provenance matters
Retrieved context can be relevant while still being stale, speculative, or malicious. Provena keeps relevance separate from source authority and from permission to act. Events and evidence remain append-only, candidate claims remain reviewable, and memory_explain traces a belief back to the information that produced it.
Provena is licensed under the MIT License.
Release files for provena-agent-memory 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| provena_agent_memory-0.1.4.tar.gz | 43.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| provena_agent_memory-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 77.1 kB
Release files / provena_agent_memory-0.1.4.tar.gz
| Download URL | provena_agent_memory-0.1.4.tar.gz |
|---|---|
| Size | 43.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c5d7d5b7ba5f729ff5c476067bec525e0a0603b6dca66dc69847217ed6f09ede
|
|
BLAKE2b-256 checksum How to use checksums |
92d35ced4311d1d1f917474ad3a87e5ded3d87df1e49d835ee384bcfbf45e974
|
| 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 Sep 21, 2026.
Transparency logRelease files / provena_agent_memory-0.1.4-py3-none-any.whl
| Download URL | provena_agent_memory-0.1.4-py3-none-any.whl |
|---|---|
| Size | 33.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
27fa688f37b7367d70dcdb9adc73ab210cbeb675d6509dfb27303c818280a6e7
|
|
BLAKE2b-256 checksum How to use checksums |
9ff68f130a2e3fba300dd4ef57737085b4623700919edfa26cb892d7bfb5bb9e
|
| 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 Sep 21, 2026.
Transparency log