Skip to main content

A portable cognitive-partnership memory + methodology kit. Ship the seed that grows a practice, not the practice.

Project description

Levain

A portable cognitive-partnership memory + methodology kit. You ship the seed that grows a practice, not the practice.

pip install levain
levain init

Heads-up before you scroll — Levain v1 boundaries (kept honest):

  • Harnesses: Claude Code + Codex CLI at v1. One adapter per install (use two installs if you need both).
  • Python: 3.12+ required. The package uses importlib.resources.as_file() on a directory resource, which gained support in 3.12. v0.1.0 supported 3.11+ but only for filesystem installs; v0.1.1 bumps the floor to 3.12 and adds zipapp / PyInstaller / pip install --target into zip support.
  • Web pane onboarding: CLI interview at v1.0. Browser-based onboarding lands in v1.1.
  • Codex hook reliability: Codex 0.132/0.133 has a known platform-level hook-trust gap that no harness consumer can work around. levain doctor + levain verify-hooks surface the wiring; whether your Codex install actually fires the hooks is up to Codex itself (upstream tracking issue).
  • Memory substrate: anneal-memory (0.7.x) is the layer-1 dependency; pinned in pyproject.toml. It now carries the crystallized-pattern tier (on-demand graduated memory) — see Dependencies below.

What this is

If you've been working with an AI partner long enough to feel the session-amnesia problem — every conversation starts over, every insight has to be re-explained, the quality of the partnership keeps resetting — Levain is the kit you'd otherwise build for yourself.

It packages four things that work together:

  1. A Complementary Learning Systems memory substrate via the anneal-memory library — four layers (episodic + continuity + Hebbian associations + limbic) plus two sibling stores: prospective spores (open loops that self-clean) and an on-demand crystallized pattern tier (proven, stable wisdom held out of always-loaded context and recalled on cue, so the working set stays bounded while earned wisdom keeps growing). Your partner's hippocampus, working memory, lateral connections, and long-term semantic store.
  2. A methodology-core seed — a small set of files defining who the entity is, how partnership works, how memory accrues, who its operator is.
  3. An activation mechanism — primacy-position posture + recency directives + session-boundary wrap discipline, wired through harness hooks.
  4. A scripted onboarding interviewlevain init walks you through filling the seed templates so the entity is uniquely yours from session one.

The kit installs into a Claude Code or Codex CLI workspace. Both harnesses are tier-1 supported at v1.

Why a seed, not a finished methodology

The load-bearing claim under the name levain (the sourdough starter you feed):

A grown cognitive-partnership methodology cannot be shipped as a methodology. Hand someone the artifact and they get a fossil — text describing practices that don't accrete in their substrate. Practice-encoded knowledge transfers through use, not specification.

So Levain ships the engine that grows a methodology: substrate + graduation mechanism + wrap discipline + reflection loop + minimal starting posture. Your own methodology accretes from your sessions. Which is why it sticks, and why it's yours.

A separate operator running Levain will not end up with this operator's continuity — different texture, different graduated patterns, different shape. That's the point.

Proof

See examples/accrual/growth_timeline.md — one continuity file rendered at four snapshots over five months. It started at 96 lines / 6 sections, locked into 9 sections around week 12, and has held that shape since while density grew inside it.

Your week 1 will look like the first snapshot. That's the right starting place — not the last snapshot, which is what this operator's partnership grew into. The trajectory is the proof; the endpoint is not the target.

Install

pip install levain
levain init

levain init runs the scripted interview, lays down the seed templates, registers the chosen adapter (Claude Code or Codex), and initializes the memory store at .levain/memory.db. One adapter per install at v1 — multi-adapter layering is a v1.1 candidate.

levain init --path /path/to/install [--adapter claude-code|codex] [--force]
levain doctor --path /path/to/install
levain verify-hooks --path /path/to/install

levain doctor is the loud in-environment health check — interpreter resolution, MCP server registration, store reachability, hook injection liveness.

levain verify-hooks actually invokes the activation hooks via stdin JSON and verifies they emit valid output. Closes the silent-skip class — particularly the Codex platform hook-reliability gap where the harness itself doesn't surface failures.

Audience

Operator-class developers — the ~5% who already sense session-amnesia is a real problem and would build their own fix. The ceiling isn't a crack; it's the shape of the correct audience.

If you've already built your own substrate-management scripts, you'll recognize the pieces. If "continuity file" and "wrap protocol" don't land, this isn't your tool yet.

What's in v1

  • Methodology-core seed templates (harness-neutral, small, dense)
  • Claude Code adapter (tier-1)
  • Codex CLI adapter (tier-1)
  • levain init / levain doctor / levain verify-hooks CLI
  • Accrual demo showing the empirical growth trajectory

What's not in v1

  • The framework (heartbeat, control pane) — a native flow-shaped framework is parked at v2, held off substitution-drift by one invariant: the human is the fan-in.
  • The web-pane onboarding — the CLI interview is the only front-end at v1.0; the web pane absorbs into v1.1.
  • Multi-adapter layering — one adapter per install at v1; two installs if you need both Claude Code and Codex.

Dependencies

Levain layers on anneal-memory — the memory library. Both ship to PyPI. Clean dependency direction: Levain depends on anneal-memory, never the reverse.

The division of labor is the point: anneal-memory is the substrate; Levain is the harness that fires it. anneal-memory deliberately can't reach into your session — a memory library that hooked every prompt would forfeit the framework-neutrality that lets it work everywhere. So raw anneal gives you the stores and manual recall (you query if you remember to — the dead-store failure mode discipline rots into). Levain wires the hooks that surface the right memory at the right moment automatically — discipline becomes an invariant. Today that fires for the prospective layer: an open loop (spore) germinates into context the moment your prompt collides with it. The same hook will extend to the crystallized pattern tier in v2 — per-turn recall of proven, stable wisdom so it stays effective without clogging always-loaded context. That extension is proven in the flow reference workspace and is Levain v2's opening slice; it is not wired into the v1 adapter yet (v1 fires spores, not crystals). This is why "anneal only fully works inside a complementary harness" is a feature line, not a caveat: the store is universal, the firing is the harness's job.

License

Apache 2.0. See LICENSE for full text and NOTICE for attribution.

The patent grant matters: as the kit accrues operator-class contributions, downstream operators are protected against future contributor patent ambush. The "second sourdough surface" — the activation layer that the operator edits — is the design intent. Apache 2.0 protects that surface.


Built inside the flow reference workspace; lives at levainhq.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

levain-0.3.2.tar.gz (138.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

levain-0.3.2-py3-none-any.whl (160.8 kB view details)

Uploaded Python 3

File details

Details for the file levain-0.3.2.tar.gz.

File metadata

  • Download URL: levain-0.3.2.tar.gz
  • Upload date:
  • Size: 138.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for levain-0.3.2.tar.gz
Algorithm Hash digest
SHA256 0bfce00c64a81d02d30c5765ca740c7969b6f49d25ed66c95c5b0962bfb7f555
MD5 b64071c0ec00af9435da74c3c4fbeb12
BLAKE2b-256 4c492d7d1201c12e0ef8533ea172eae74e417fb350e6c2e8a9bd8c16c97e5e2a

See more details on using hashes here.

File details

Details for the file levain-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: levain-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 160.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for levain-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 17e8fae0d54283717aac34054ae73e11e5cc44670c9935d5a72b8c2237b035a2
MD5 44c74247f1a108280bd1c240ef4317c4
BLAKE2b-256 8c18cc24fec96ac5fb8135deb5b3bac7966079b2ff250ceb2d367a75fe2d0c6c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page