Skip to main content

Jezero

A shared, searchable library of your agents' past work.

ci License: Apache-2.0 Python 3.12+ MCP

Your agents forget. Their sessions pile up as gigabytes of transcripts on several machines, and the decisions in them are written down nowhere else. Jezero collects those sessions, turns each one into a short summary plus atoms (decisions, rationale, fixes, exact errors, commands that worked, facts, risks), and serves it all, read-only, to every agent you run over MCP.

Sessions from agents on the server and from other computers go through connectors, redaction and a summariser into one SQLite library, which agents query over a read-only MCP server.

Documentation · Tutorial · Connect an agent · Reference · Changelog

What it looks like

You ask an agent about something another agent did weeks ago, on another computer. You do not mention Jezero; the plugin taught it to look:

you    > What did we end up doing with analytics on the shop site?

agent  · search("analytics shop site")
           [412] 2026-09-03  Shop site: remove the analytics script
           [431] 2026-09-10  Shop site: analytics back, only after consent
agent  · later(412, "analytics")
           [431] newer, same subject

agent  > It changed once. On 3 Sep the script was removed [412]; on 10 Sep it came
         back, loaded only after the visitor accepts the consent banner [431].
         That is the current state.

Each item is a summary with atoms, the date it happened and its project:

[431] Shop site: analytics back, only after consent        2026-09-10 · shop
summary   The analytics script returns, loaded only after consent. No cookies before.
atoms     decision  Load analytics only after the visitor accepts the banner.
          why       Consent is required before any tracking.
          fix       The banner test ran before the script loaded; wait for the event.
          command   npm run test:consent

(Synthetic example. Jezero never ships real transcripts.)

Features

  • Every agent, every computer. Connectors for Claude Code, Codex, OpenCode, Hermes Agent, Antigravity and Paperclip tasks; plugins upload sessions from other computers.
  • Used by habit. The plugins teach agents to search Jezero before working, to check whether a decision changed later, and to cite what they found, without being asked.
  • Write once, read many. A small model summarises each session once; searches are plain full-text queries that take milliseconds and no GPU.
  • One SQLite file. No database server to run; a backup is one file (how).
  • Read-only by design. Agents can search but never write; each key sees only the sources it is allowed to.
  • Private by default. Secrets are redacted before anything is stored, keys are made on each computer, and the config never holds a secret.
  • An app for people. A terminal app to search, watch activity and keep every agent's plugin up to date.

Status: pre-alpha. Everything above is implemented and tested; email comes next.

Install

Requires Python 3.12+ on Linux or macOS.

uv tool install jezero      # or: pipx install jezero, or: pip install jezero
jezero --version

To run it as a server from PyPI (config, systemd units, and the plugin bundle downloaded from the GitHub release with its SHA256SUMS), see Run Jezero as a service. Upgrade with uv tool upgrade jezero.

Get started

From a checkout, with uv:

git clone https://github.com/MarsGotta/jezero.git && cd jezero
uv sync
printf '[storage]\npath = "data/jezero.db"\n\n[server]\nhost = "127.0.0.1"\nport = 8765\nrequire_auth = false\n' > jezero.toml
uv run jezero check-config
uv run jezero init
uv run jezero import-jsonl examples/items.example.jsonl --source demo
uv run jezero search "migration rollback"

That jezero.toml is the tutorial's minimal local library; jezero.example.toml documents every field. The tutorial takes it from there: serve the library over MCP and connect an agent, in about fifteen minutes.

Connect your agents

Each computer makes its own key and the server approves it once (how). Then the plugins install straight from this repository:

claude plugin marketplace add MarsGotta/jezero && claude plugin install jezero@jezero
codex plugin marketplace add MarsGotta/jezero && codex plugin add jezero@jezero
python3 ~/.jezero-src/jezero-client/jezero_client.py setup --agent codex   # Codex's MCP
hermes plugins install MarsGotta/jezero/plugins/hermes --enable
agy plugin install https://github.com/MarsGotta/jezero/tree/main/plugins/antigravity

These follow main. To pin a release, add its tag: MarsGotta/jezero#v0.1.0 for Claude Code, MarsGotta/jezero@v0.1.0 for Codex, tree/v0.1.0/plugins/antigravity for Antigravity; Hermes Agent pins only to a commit SHA (--ref). The Jezero app installs the plugins from its own release tag by itself. OpenCode and any other MCP client: see Connect an agent.

The Jezero app

jezero with no command opens a terminal app that searches the library the way an agent does, shows what each source has been doing, shows the exact context an agent receives, and installs or updates the plugins on this computer.

The Jezero app home: the name in block letters, counters, a 14-day activity chart, projects, sources and the latest items.

uv tool install jezero
jezero ui --demo        # look around with made-up data

More in Use the Jezero app.

Documentation

Read it at jezero.marsgotta.com, or right here on GitHub in docs/:

Learn Your first library · Connect a second computer
Do Run as a service · Sources · Monitor · Search quality · Agents · Computers and keys · App · Troubleshooting
Look up Commands · Configuration · Connectors · MCP tools · HTTP API · Client · Data model · Glossary
Understand Architecture · Search · Summaries · Security · Design decisions

Contributing

Bug reports, ideas and pull requests are welcome: start with CONTRIBUTING.md. To report a vulnerability, see SECURITY.md.

Roadmap

  1. Gmail connector (read-only scope, per thread, newsletters skipped).
  2. A folder watcher for agents without hooks (Cursor) on other computers.
  3. Optional vector search with sqlite-vec.

The name

Jezero is the Martian crater that once held a lake. Its layered sediments keep the record of what happened there, and the Perseverance rover sets samples aside in it so they can be picked up later. That is the whole idea of this project.

License

Apache-2.0

Metadata

Release files for jezero 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jezero 0.1.0
File Size Uploaded Provenance
jezero-0.1.0.tar.gz 511.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for jezero 0.1.0
File Interpreter ABI Platform
jezero-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 733.1 kB

Release files / jezero-0.1.0.tar.gz

Download URL jezero-0.1.0.tar.gz
Size 511.8 kB
Tags Source
SHA-256 checksum
How to use checksums
dea0e4ed7a2ff267226e3778294efa981391945376ae6452b287e56b2695d037
BLAKE2b-256 checksum
How to use checksums
c82952e55239f7b3fd50f95cdae65cb94d65ab888da5b47a9919a088398cd850
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / jezero-0.1.0-py3-none-any.whl

Download URL jezero-0.1.0-py3-none-any.whl
Size 221.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
725591d10dfcd205decf1740ea58f226929565b64d0a17ff0912a8809246cfc0
BLAKE2b-256 checksum
How to use checksums
a421a7155c70b847ae353cff53a954e9b0c70ba75ba684f80b2e8a7dc01886bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Security for jezero 0.1.0

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.

Select from 2 files

Attestation for jezero-0.1.0.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 Oct 23, 2026.

Transparency log

A 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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page