polign-recall
A Python client for Recall's typed, correctable agent memory. Requires Python 3.10+.
pip install polign-recall
That is the whole install. pip also brings the
polign_db package, which holds the
polign CLI and polign-server binaries for Linux, macOS and Windows, so
there is nothing else to download.
from polign_recall import Client
with Client(local_dir="./recall-data") as memory:
memory.remember("user", "prefers_editor", "vim")
changed = memory.remember("user", "prefers_editor", "neovim")
print(memory.recall("user", "prefers_editor")[0].value) # neovim
print(memory.history("user", "prefers_editor")) # both statements
memory.forget("user", "prefers_editor", "neovim")
local_dir keeps the database on this machine. The first client to open the
directory starts a polign-server for it in the background, listening on
localhost only and protected by a key stored in the directory. Later clients,
including ones in other processes, share that server. It keeps running after
your program exits; its process id is in runtime.json and its log in
server.log, both inside the directory. Managed local databases work on Linux
and macOS.
To use a server you run yourself, leave local_dir out and set POLIGN_URL,
POLIGN_API_KEY, and POLIGN_COLLECTION in the environment, or pass
env={...} to Client. With neither, the client connects to
http://localhost:23000, where polign-server -store fs:./recall-data listens
by default.
The client owns a long-lived polign mcp -memory-only -write subprocess and
shares the Go implementation's validation and fold. Use write=False for a
read-only connection. It runs the polign binary pip installed; on a platform
without a polign_db wheel it runs polign from PATH (CLI v0.7.0+), and
command=[...] overrides both.
remember(text=..., statements=[...]) accepts proposals from your agent's model;
the client does not run a second model. Every statement must have subject,
predicate, typed value, and evidence quoting the text exactly. Read predicates()
to build your extractor prompt. No separate extraction tool is required.
recall(..., as_of=...) accepts an RFC3339 string or timezone-aware datetime.
forget requires a typed value or explicit all=True; false and zero remain
values. Forgetting retracts a belief and retains its historical events.
Errors raise RecallError with a code and, for a failed extraction batch, any
reported partial results. Calls are serialized, timeout after 120 seconds by
default, and never automatically retry writes. A timeout closes the transport;
inspect history using a new client before retrying an uncertain write.
Release files for polign-recall 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| polign_recall-0.3.0.tar.gz | 14.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| polign_recall-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.1 kB
Release files / polign_recall-0.3.0.tar.gz
| Download URL | polign_recall-0.3.0.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1bbcbaacecd0fe9516d8a335deba6af732da32f4e825d3219bc1318f27396151
|
|
BLAKE2b-256 checksum How to use checksums |
69ffe98f4ee0d9264784aeee8dda9cd393590aa25260f528437190c681eb08a9
|
| 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 20, 2026.
Transparency logRelease files / polign_recall-0.3.0-py3-none-any.whl
| Download URL | polign_recall-0.3.0-py3-none-any.whl |
|---|---|
| Size | 12.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0be790e0b63743059b34db59dcb260bf33b9c2aa475beddfc7fd0d72af9134ee
|
|
BLAKE2b-256 checksum How to use checksums |
24c96fc48a5272dd8a06f0b859ae02e81ea79c1c746d4a91064c94b1b5c2cdb5
|
| 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 20, 2026.
Transparency log