Wasteology platform · the “Hands”
One Python (Typer/Rich) CLI unifies ~19 project repos and every native CLI / cloud tool behind a single, scriptable surface.
Humans, Claude agents, and the autonomous Tirion agent all drive the same commands — and everything emits --json so machines consume it deterministically.
🧠 Brain · tirion
✋ Hands · ops (this)
👁 Eyes · wdp-palantiri
🖥 Interface · orchestrator
shared bus: PostgreSQL wg_digests
The orchestration stack — hover a command group to see what it touches
Consumers → drive the same commands
👤 Human · terminal
🤖 Claude agent · slash / Bash
🧠 Tirion · OpsClient → ops … --json
▼
ops — Typer/Rich CLI · entry cli.main:app · 25 command groups
Logic returns @dataclass objects (56) with to_dict() (42); rendering is separate — every command has a --json path.
▼ resolves repos via registry · shells the native tool inside each repo (cwd + .env)
How it reaches many repos
ProjectRegistry ← manifests/builtin/*.toml
per-project status adapters (14)
prefect_project.run_in_repo(cwd + repo .env)
Native CLIs / SDKs it wraps
Command groups — click a card to expand
+ utility groups: demo · game · tech-stack
Repos it orchestrates — 14 owned + 5 support, each with a status adapter
Add a project = drop a .toml in manifests/builtin/ — no code change needed.
Try it — a simulated ops session (canned output, not live)
Generated from wg-orchestration — cli/main.py (command groups), manifests/builtin/*.toml (registry),
and lat.md/architecture + platform-ecosystem (four-system model, OpsClient bridge). Output shown is illustrative.