v0.3  ·  For multi-repo platforms and agent swarms

Context. Cultivated.

Keep a whole platform in your agents' heads. Six offline Skills for Claude Code share what every repo and every agent already knows, and trim what each one reads.

Plant
it
Scroll to discover
Plant it

Context is the bottleneck.

When one production platform spans many repositories and a swarm of agents works on it at once, context is the bottleneck. Context Garden shares system knowledge across repos and agents, and trims what each agent reads. Everything runs offline, with no LLM calls inside the tools.

› /plugin marketplace add oliverweissl/context-garden
› /plugin install context-garden@context-garden
› /context-garden:setup  # pick skills by use case
Every skill starts off. /context-garden:setup asks how you work and turns on the right ones. Which skills for which use case
Offline & deterministic Python stdlib only MIT licensed

Needs Claude Code and python3 on PATH. Hooks and agents are Claude Code features; the AGENTS.md seedbank writes is read by any agent that reads AGENTS.md.

Why it exists

One platform. Many repos. Many agents.

Production platforms are split into components that live in separate repositories. To change one safely, an agent needs to know the system around it: what each repo provides, what depends on it, which conventions hold everywhere. When you spawn several agents for a swarming task, each one pays to rediscover that, and they read the same files in parallel.

YOUR PLATFORM 🏡 greenhouse one card per repo api-gatewayprovides REST v2 auth-serviceprovides tokens web-appdepends on api, auth workerdepends on queue shared-schemaused by 4 repos devopsdeploys everything system knowledge YOUR AGENT SWARM 🍄 notes agent 1 agent 2 agent 3 agent 4 agent 5 AND EACH AGENT READS LESS ✂️ pruner exact line ranges ♻️ compost root errors, not logs 🌰 seedbank facts in AGENTS.md Repos know their neighbours. Agents know what the others already found. Each one reads only what it needs.
Many reposAgents don't know the system around a component. greenhouse keeps a card per repo (provides, depends on, key facts) in a shared base folder.
Many agentsA swarm re-explores the same code in parallel. mycelium gates each spawn, stops duplicates and shares findings as notes.
Many filesEach agent reads whole files and full logs. pruner and compost cut that to exact ranges and root errors.
Many sessionsThe same facts get rediscovered every day. seedbank promotes them into a small, always-loaded AGENTS.md.
What your agents actually see

Real output, not a mock-up.

Captured from a three-repo test platform: auth-service, api-gateway and web-app. Each repo ran greenhouse sync once.

web-app $ greenhouse brief "add token refresh to the dashboard login"
Greenhouse shop-platform (../.greenhouse): 3 repo(s).
This repo uses: api-gateway; used by: -
Platform notes:
- [p001] token-expiry: Access tokens expire after
  15 min; clients must refresh via auth-service /refresh
Related repos:
- api-gateway: Public REST v2 entry point.
  Validates tokens from auth-service. [checkout ../api-gateway]
- auth-service: Issues JWT access tokens (15 min)
  and refresh tokens. [checkout ../auth-service]
Read another repo's files only if a card points there.
Agent spawn: "explain how the gateway validates JWT tokens"
✗ denied by the mycelium delegation gate:
shared notes already cover part of this task:
- [n001] token-validation: Gateway validates JWTs in
  src/auth.py:validate; expiry is checked, signature
  key comes from auth-service JWKS (paths: src/auth.py)
Re-issue with a `Known:` line carrying the relevant
notes (tell the agent to verify, not rediscover) ...

✓ allowed after the brief adds:
Known: n001 (verify, don't rediscover)
Why use it

Less noise in, more signal out.

A coding agent pays for every token it reads, and it re-reads the same things every session: full build logs, whole files, the same setup docs. Context Garden removes that repeat cost.

0%
smaller test log with compost: 4,327 → 120 tokens
still readwas 100%
0%
less code read with pruner: 8,814 → 2,992 tokens
still readwas 100%
0%
saved per later session with seedbank: 1,641 → 136 tokens
still readwas 100%
0%
fewer tokens on the seedbank benchmark task, pass rate unchanged
still readwas 100%

First three: measured examples in examples/. Last: v0.2.0 benchmark, 5 runs per arm, see summary.

The honest part: what it costs

  • Always-loaded descriptions. With the plugin, each skill's one-line description is listed to Claude, about 60 to 100 tokens per skill, even when the skill is off.
  • Overhead on small tasks. In the v0.2.0 benchmark the fixtures are tiny, so forcing compost or pruner used 17 to 19% more tokens. The savings above come from real-sized logs and files.
  • Hooks are opinionated. With compost on, raw build and test commands are denied and replaced with the compost command (set hook to ask, rewrite or off). With mycelium on, an agent spawn without a proper brief is sent back.
  • Local state. Stores live in .seedbank/, .compost/, .pruner/ and .mycelium/ at the git root, and each writes its own .gitignore. A greenhouse base is a plain folder beside your repos; share it like any other folder.
Six skills

One garden, six tools.

Two work across the platform and the swarm, three cut what each agent reads, and one keeps the skills themselves small. Install all of them as a plugin or copy only the ones you need. Each skill is self-contained and uses only the Python standard library.

🏡 greenhouse multi-repo

Shared memory across the repos of one platform. Each repo keeps a card with what it provides, what it depends on and its key facts, so your agent knows the neighbours without reading them.

For platforms of many repos

🍄 mycelium subagents

A delegation gate for subagents. Briefs stay bounded, duplicate investigations get stopped, and findings are shared as notes so the next agent starts from what is known.

No investigation done twice

✂️ pruner code

Picks the smallest set of file:start-end ranges for a bug, traceback or change in a large Python or C/C++ repo. No more grepping around and reading whole files.

Reads only what matters: −66%

♻️ compost logs

Runs long builds, test suites and CI jobs through a clustering summarizer. You get the root errors and counts instead of thousands of lines, and re-runs show only what changed.

Best for fix, test, fix loops: −97%

🌰 seedbank memory

Notices facts your agent keeps rediscovering, like build commands, conventions and past mistakes, and promotes them into a small, always-loaded AGENTS.md.

Every later session: −92%

🌾 weeder skills

Audits a Skill and produces a smaller copy that keeps every instruction and still routes correctly, with before and after evidence. Trims the cost every installed skill adds to each session.

Slimmer skills, same routing
See it work

From a wall of output to the answer.

A flaky test suite fails 17 tests. Without compost, the agent reads every traceback. With it, the agent reads one root cause.

pytest, raw output4,327 tokens

      
compost run -- pytest120 tokens
Root error(s):
  TypeError: timeout must be an int, got '30'
    (lines 390-404, x15, affected tests: 15)

Secondary failure groups:
  - KeyError: 'urgent' x2

Numerical summary:
  tests_passed: 4
  tests_failed: 17

✓ 97.2% fewer tokens, same diagnosis
Tokens your agent reads
Without
With

How it works

Hooks do the work. Skills teach the agent.

Deterministic parts run as Claude Code hooks, so they work even when the agent forgets. Skills explain the how, and jobs worth delegating ship as agents. All state lives in small JSON stores at your git root.

CLAUDE CODE EVENT Prompt submitted Before Bash Before / after Agent After Read / Grep Session start / stop SKILL HOOK ✂️ pruner adds a slice ♻️ compost redirects 🍄 mycelium gates, records 🌰 seedbank observes 🏡 greenhouse syncs RESULT Exact line ranges Clustered log summary Bounded, non-duplicate subagents + shared notes Facts promoted to AGENTS.md Platform cards .seedbank/ · .compost/ · .pruner/ · .mycelium/ at the git root, locked and written atomically
OfflineNo network, no API key, no LLM calls inside the tools.
DeterministicSame input, same output. Easy to trust and to test.
Self-containedStdlib only, no imports across skills. Copy one and go.
Never clobbersWrites only inside its own markers. Your content stays yours.
You stay in control

Off until you say so.

Every skill starts off: nothing runs, not even its hooks. After installing, run /context-garden:setup: it asks how you work and turns on the right skills, for this repo or everywhere. Until you do, each session reminds you. You can also just ask Claude, for example "turn compost on".

off

Nothing runs. The skill declines if called and tells you how to turn it on. The default.

manual

Runs only when you ask, for example /context-garden:compost summarize the failing run. Hooks stay quiet.

on

Claude uses it on its own when relevant, and its hooks run. Recommended for compost, pruner and seedbank.

Which skills for how you work

Pick the closest preset. Skills it does not turn on stay manual: they never run on their own but answer when you call them.

One repo, everyday coding

Debugging, failing tests, compiler errors in a single repository.

seedbankprunercompost
/context-garden:setup solo

Big project, many interacting repos

Services, shared packages and APIs spread over several repos. greenhouse lets each agent know its neighbours without opening them.

greenhouseseedbankprunercompost
/context-garden:setup platform

Many agents per task

Claude spawns subagents to search, investigate or edit in parallel. mycelium gates and briefs them and shares their findings.

myceliumseedbankprunercompost
/context-garden:setup swarm

Agent swarm on a platform

Both of the above: many agents working across many repos.

greenhousemyceliumseedbankprunercompost
/context-garden:setup platform-swarm

Long logs, nothing else

Huge builds, test suites, CI or HPC/SLURM output.

compost
/context-garden:setup logs

You write Skills

Slim your own SKILL.md files on demand; weeder stays manual in every preset, so just call it.

weeder
/context-garden:weeder slim skills/my-skill

Rule of thumb: greenhouse pays off only when several repos interact, mycelium only when Claude delegates to many agents; compost, pruner and seedbank help in almost any repo. Add --scope user to apply a preset to every repo, or --scope project to share it with your team.

Get started

Plant it in three lines.

Paste into Claude Code. The last line picks the skills for how you work.

› /plugin marketplace add oliverweissl/context-garden
› /plugin install context-garden@context-garden
› /context-garden:setup  # pick skills by use case
Skills start off: /context-garden:setup turns on the ones for your use case. See the recommendations