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

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.24.1
File Size Uploaded Provenance
willows_grove-0.24.1.tar.gz 2.5 MB With provenance Details

Built distribution (wheel)

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

Total release size: 2.9 MB

Release files / willows_grove-0.24.1.tar.gz

Download URL willows_grove-0.24.1.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
44d42940d17d86895138f8a025998ff8ebfeab928e601ace1110f08948aa6cb0
BLAKE2b-256 checksum
How to use checksums
d0c905a798ff554b96ee611fcdeca8dbaaf8c4de91f4c74dcb1873e9bed3ed42
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 14, 2026.

Transparency log

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

Download URL willows_grove-0.24.1-py3-none-any.whl
Size 403.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
db825eaf01bc0e62bca48471d539ce91e07d058051c010f2fad8f5c7945ec4f1
BLAKE2b-256 checksum
How to use checksums
fec2ecb9d41781983d9412675b4a2b611f37c24422aca4ba52a273522e372057
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 14, 2026.

Transparency log

Security for willows-grove 0.24.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.

Select from 2 files

Attestation for willows_grove-0.24.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 Oct 14, 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