A self-hosted multi-tenant memory engine that turns a Zettelkasten into scoped agent-queryable memory over MCP
What this is
aizk is a memory an AI assistant can actually keep. Text goes in, an entity and fact knowledge graph comes out, addressed by meaning so the same knowledge extracted twice never duplicates. Everything lives in one self-hosted Postgres, and row level security enforces who can see what at the database layer, private notes, shared projects, and overlapping groups never cross. It speaks MCP, so Claude or any other MCP-capable assistant calls it directly. Full explanation at phvv.me/aizk.
Quickstart
One command brings up the whole engine, Postgres, the embed, rerank, and extraction containers, and one aizk container that is the MCP server, the background worker, and the scheduled auto-backup at once. It migrates and comes up ready over HTTP with nothing else to run.
docker compose up -d
Then call its tools from any MCP client.
from fastmcp import Client
async with Client("http://localhost:8080/mcp") as client:
await client.call_tool("remember", {"text": "aizk runs entirely on local hardware."})
result = await client.call_tool("recall", {"query": "where does aizk run?"})
print(result.data)
Every docker-compose knob and every Settings default live in one file, .env.example, copy
it to .env and edit, both compose and the app read the same AIZK_-prefixed variables. Running
the server, worker, or backup outside the container is a plain pip install aizk and the matching
aizk command. See Operations for deployment and backups.
The flows
flowchart LR
A[agent] -->|remember, ingest| W[write path<br/>chunk, extract, consolidate]
A -->|recall, get_context| Re[read path<br/>fused retrieval]
W --> P[(Postgres<br/>knowledge graph + row level security)]
Re --> P
P --> Re --> A
Writing turns text into a typed entity and fact graph, one content row shared by meaning plus one scoped, bi-temporal claim per owner. Reading fuses five retrieval lanes behind one Postgres round trip, filtered to exactly what the caller's own scopes make visible before a row is ever considered. The full breakdown of both, with a diagram for each stage, lives in Engine.
Metadata
Release files for aizk 0.0.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 | Provenance | Actions |
|---|---|---|---|---|
| aizk-0.0.1.tar.gz | 535.6 kB | With provenance | Details for aizk-0.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aizk-0.0.1-py3-none-any.whl | Python 3 | none | any | Details for aizk-0.0.1-py3-none-any.whl |
Total release size: 793.8 kB
Release files / aizk-0.0.1.tar.gz
| Download URL | aizk-0.0.1.tar.gz |
|---|---|
| Size | 535.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7449ede45c18efce85455ea77e615b5fda3d1443036064973445628169703ae
|
|
BLAKE2b-256 checksum How to use checksums |
7784631371d0ec226f1c9c60f311ef5cba2576082561519248bf94bd5b97474b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jul 10, 2026.
Transparency logRelease files / aizk-0.0.1-py3-none-any.whl
| Download URL | aizk-0.0.1-py3-none-any.whl |
|---|---|
| Size | 258.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
da06ac2f56a5a46ad51ba577678c952f309c2e13b86237f631f3b1eda7b88a21
|
|
BLAKE2b-256 checksum How to use checksums |
26da6c4d935c2a2b4d2c3dca67701a2396ebb9f3efcb3c98f4c4f5458a932017
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jul 10, 2026.
Transparency logSecurity for aizk 0.0.1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for aizk-0.0.1.tar.gz
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 Jul 10, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.