🧩 Extensions That Survived
"My last Pi config video was 4 months ago and nearly everything has changed." The survivors from his old setup: Bash Guard (now with a toggle — "usually the first thing I do every session is turn it off"), the ask-user-question tool (now coordinated with other UI-popup extensions so they don't override each other), the custom header, and web tools. 0:00
👥 Interactive Subagents
The biggest change: interactive, asynchronous subagents — a fork of Daniel Grosser's, simplified. Subagents spawn in tmux panes, and the tool call returns immediately while the agent runs in the background. 1:11
subagent-message tool (addressed by agent name), and removed the separate "done" tool — "when they stop generating tokens and aren't waiting, they just exit and return the last message. The original's done tool caused a lot of problems — agents called it too early or not at all." 5:50
🌐 Browser Extension
A Playwright-driven headless browser — "very essential for web development." It registers eight tools, which take a meaningful chunk of context, so he keeps it disabled by default and enables it with a browser on command. 7:11
🧠 Observational Memory
His own implementation of Maestra's observational memory. The core idea: message history is split into chunks, observer agents distill each chunk into small observations — the atomic units of memory. 9:20
The UI: gauges show when the next observer spawns (every ~10k tokens), when consolidation is due, and when compaction hits. om status shows a full timeline — light = consolidated, gray = observed, dark = not yet observed, vertical lines = compaction cuts. "The compaction is entirely deterministic, so it happens instantly mid-session turn — the agent doesn't even stop." 11:40
📋 Prompt Snippets
His solution to the "middle ground" problem: system prompt / agents.md instructions are always-present but invisible and situation-dependent; skills are bulky and auto-activated. Prompt snippets are tiny, standalone behavior instructions you compose on the fly. 14:12
Alt+S → preview snippets with tab → select ("ask questions", "verify, don't assume", "orchestrator mode", "delegate exploration") → they're appended/prepended to the prompt. "They're just markdown files with an ordering. I feel like these instructions have more weight when they're in the message, not the system prompt." 15:00
🛠️ Skills & Learning System
He keeps few skills: a PDF reader, a YouTube transcript skill, and a web-debug skill (made for the browser extension). But the key one is analyze-session — Python scripts to parse/search Pi sessions, which is how he discovered which instructions he'd been repeating for months and turned them into snippets. 17:10
✅ Key Takeaways
- Agents should never guess — give them an ask-question tool. His chain-of-command (master→worker→scout) proves full agent-to-agent clarification works.
- Deterministic memory beats summary-of-summary. Observer agents distill history into atomic observations that don't decay; consolidation to markdown files = long-term memory.
- Context is a budget — keep bloat out. The browser extension's 8 tools stay disabled until `browser on`.
- Prompt snippets are the middle ground. Tiny compose-able instructions, appended at send time, carry more weight than system prompt.
- Simplify the agent's interface. Removing the "done" tool fixed flaky subagents; unifying interrupt/resume/steer into one message tool.
🔗 Resources & Links
- 📺 Original video — Eero Alvar
- ⚙️ Pi config — GitHub
- 📚 Learning system — GitHub