π£ working Β· π waiting Β· π’ ready β one ambient dot per session, multi-agent, no hooks.
Homebrew (recommended):
brew tap ingo-eichhorst/irrlicht
brew install --cask irrlichtcurl:
curl -fsSL https://irrlicht.io/install.sh | shDMG: download Irrlicht-<version>.dmg from Releases and drag Irrlicht.app to Applications.
β Quickstart gets you to your first purple dot in 60 seconds.
- Three-state menu-bar dot per session β π£ working, π waiting, π’ ready
- Context-pressure gauge β π’ β π‘ β π΄ β
β οΈ before the auto-compact cliff, so you can/compactwhile quality is still intact - Live per-session cost in USD β model-aware via LiteLLM pricing
- Subagent trees β parent β Explore / Plan / background agents, not just the parent
- Git-aware grouping β sessions clustered by project, branch, worktree
- Real-time β <1s latency via FSEvents/kqueue; no polling
Stages: stable production-ready Β· beta feature-complete, edge cases remain Β· alpha core detection works, rough edges Β· planned on the roadmap.
Coding agents
| Agent | Stage |
|---|---|
| Claude Code | beta |
| OpenAI Codex | alpha |
| Pi | alpha |
| Aider | alpha |
| OpenCode | alpha |
| Gemini CLI | planned |
| Cursor Agent | planned |
| Amp | planned |
Orchestrators
| Orchestrator | Stage |
|---|---|
| Gas Town | alpha |
| Claude Squad | planned |
| Custom (plugin API) | planned |
Platforms
| Platform | Stage | Access |
|---|---|---|
| macOS (menu bar app) | beta | Releases |
| Web dashboard | beta | http://127.0.0.1:7837 |
| CLI | alpha | irrlicht-ls (-w for watch) |
| VS Code extension | planned | tracked in #350 |
| Linux | planned | β |
| Windows | planned | β |
β Adapters reference for stage criteria, watch paths, model detection, and roadmap.
Local-first Β· no telemetry Β· MIT Β· ~5 MB RAM Β· signed Homebrew cask Β· transcripts read-only.
- Quota & cost trackers (ccusage, codeburn, ClaudeBar, SessionWatcher) count tokens and dollars, not state.
- Observability stacks (Langfuse, SigNoz) need SDK instrumentation and a dashboard tab.
- Single-agent monitors (Claude Status, Agent Sessions) lock you to one CLI or one terminal.
Irrlicht is ambient (menu bar, not a window), multi-agent (Claude / Codex / Pi / Aider / OpenCode / Gas Town in one vocabulary), and transcript-driven β no SDK wrappers, no OpenTelemetry collectors, no dashboard tab to keep open.
In Goethe's Faust, an Irrlicht guides the way through the night. This one guides you through your agents β who's working, who's waiting, and where you're needed next.
Six concrete pains, every one documented:
- You don't know which session needs you. Claude Code's desktop notifications don't fire inside tmux β the most common multi-session setup.
- Parallel sessions shred your attention. "The mental gymnastics of context switching wears me out and makes me wonder how well I'm steering each session" (dev.to).
- Context compaction silently wrecks quality. Auto-compact fires at ~80% of the window, but the model degrades 20β30% before that (MindStudio; GitHub issue with hundreds of reactions).
- Cost runs away in the dark. A recent prompt-caching bug silently inflated token usage 10β20Γ for weeks (The Register) β visible only on the invoice.
- Subagents are a black box. Spawn three Explore agents and a background task; you see the parent, not each child.
- Quota makes you agent-hop β and monitoring doesn't follow. Burn Claude Code by 11am, fall back to Codex or Gemini; each agent has its own vocabulary for "working", "waiting", and "done".
(Irrlicht is German for will-o'-the-wisp β a light that guides you through the dark.)
Transcript files β FSEvents/kqueue β state machine β menu bar
Irrlicht reads the .jsonl transcripts your agents already write, persists each session as atomic JSON under ~/Library/Application Support/Irrlicht/instances/, and renders dots in a SwiftUI menu-bar app over a local WebSocket. The app ships as a single .app bundle with the daemon embedded β no separate services, no version drift.
β Architecture for the hexagonal pipeline and state-machine rules.
Irrlicht is agent-verifiable by design β every session lives as atomic JSON at a known path, so any tool (including the coding agents themselves) can read live state and verify its own work.
- State files:
~/Library/Application Support/Irrlicht/instances/*.json - Conventions and test gate: AGENTS.md
Documentation Β· Installation Β· Changelog Β· Issues Β· Discussions
MIT License β see LICENSE.
