Skip to main content

Willow's Grove

The operator's seat for the Willow AI fleet — a loopback-only served page on 127.0.0.1:8766, hosting Grove Web Components that read live state from Postgres, the Nestor store, and the willow-mcp kb_journal seam. No public HTTP surface. The MCP server (./run_mcp.sh) is a separate process for remote (claude.ai) tool access.

Home: willow-memory/willows-grove. Ratified by the human trust root, not the fleet — see docs/INVARIANTS.md §12.

Entry points

Command Purpose
python3 grove_serve.py Loopback-only served-page host on 127.0.0.1:8766
./run_mcp.sh Grove MCP server — stdio mode (Claude Code / Cursor spawns this)
./run_mcp.sh --serve Grove MCP over HTTP+OAuth on :8767 for remote clients behind a tunnel
scripts/grove-serve {install|on|off|status} Toggle the --serve systemd unit + .mcp.json entry together

See docs/OPS_RUNBOOK.md for boot preconditions, health-check sweeps, and failure recovery.

Architecture

File / dir What
grove_serve.py Loopback-only served-page host on 127.0.0.1:8766 (Starlette + uvicorn; two placeholder routes)
grove_html.py The served page's HTML shell
grove_db.py Postgres reader (bounded connect_timeout + statement_timeout)
grove_reader.py Reader helpers for channels, messages, agents, routing
grove/ Grove Python package (readers, endpoints, MCP serve-mode auth)
web/components/*.js Web Components
web/boot/*.js Page-level boot modules
u2u/ Signed LAN transport (see u2u section above)
bridge/ Matrix bridge

u2u — signed LAN transport (not encrypted)

The u2u/ package carries signed (Ed25519) human-to-human DMs across the LAN. Messages are cleartext on the LAN — u2u guarantees who sent this and that the message is intact, not that only the recipient can read it. See docs/design/u2u-security-limits.md for the full statement of what u2u does and does not guarantee. Encryption is planned for Gate 6.

Discipline

Twelve CI-enforced invariants in docs/INVARIANTS.md:

  • §1 three-state contract (populated / empty / unreachable — never collapsed)
  • §2 supersedes D7 ("absence is a state" no longer covers unreachable)
  • §3 doc discipline (citations resolve, CHANGELOG cites PR, sections name witnesses)
  • §4 reader/endpoint coverage
  • §5 u2u trust order (signature → consent → dispatch, in that sequence — see docs/design/u2u-security-limits.md)
  • §6 manifests describe code, not aspirations
  • §7 consent flows are real, not automatic
  • §8 panels consume live endpoints
  • §9 seed reads real canon
  • §10 CI proves the invariants
  • §11 persona provenance (Persona: trailer on every code-changing commit)
  • §12 ratification (Ratified-by: line on every PR-open and merge)

Every section is enforced by at least one CI witness. The checkers live at scripts/check_*.py; they run on every push through .github/workflows/tests.yml.

Getting started as a tester

git clone https://github.com/willow-memory/willows-grove.git
cd willows-grove
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
psql -c "CREATE DATABASE willow_20;" && psql -d willow_20 -f schema.sql
python3 -m pytest -x -q --ignore=tests/e2e --ignore=tests/e2e_ollama --ignore=tests/e2e_willow_mcp

Then python3 grove_serve.py and open http://127.0.0.1:8766 in a browser running on the same box.

The audit record

docs/audits/loki-v0.9-audit.md — Loki's v0.9 audit in his voice. 38 ranked findings from a seven-lens Loki-swarm, all resolved in the build or refuted with reason.

docs/audits/loki-swarm-measurement.md — persona-discipline scored on seven dimensions. The measurement research: register hold 0/41 florid, deny-list hold 0/41 build proposals, three-column completeness 41/41, softening 1/41, authority-as-correctness 0/41. Reproducibility layer at docs/audits/loki-swarm-metadata.md.

What's known-not-yet-done

docs/ideas.md — the idea pile: every open item this repo can land, as one numbered list whose numbers are permanent join keys (Idea-Id commit trailers name them; reconciler run --repo . --doc docs/ideas.md reads them). It carries forward docs/design/pr14-carryovers.md — the v0.10 punch list, what v0.9 punted and why — and docs/KNOWN_GAPS.md.

Metadata

Release files for willows-grove 0.13.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 willows-grove 0.13.0
File Size Uploaded Provenance
willows_grove-0.13.0.tar.gz 1.8 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for willows-grove 0.13.0
File Interpreter ABI Platform
willows_grove-0.13.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / willows_grove-0.13.0.tar.gz

Download URL willows_grove-0.13.0.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
7354c8e422f259794974ec94b732eda655abb1956dd5750a874a06586e0685d9
BLAKE2b-256 checksum
How to use checksums
c07487e85513e3de33d08a5438373d226073f4ed41bce3cbb6811b9e8359a76b
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 Oct 5, 2026.

Transparency log

Release files / willows_grove-0.13.0-py3-none-any.whl

Download URL willows_grove-0.13.0-py3-none-any.whl
Size 183.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab14483d634a034c4c1853f36d2da7848a7de870778d928af2398984ea886f76
BLAKE2b-256 checksum
How to use checksums
d0501d0c948fd665d75ae27eab917818e5eef4f5fe8ac4c94a46e5547d125bd0
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 Oct 5, 2026.

Transparency log

Security for willows-grove 0.13.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 willows_grove-0.13.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 5, 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.

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