Why I built xisland: a launch story
I run multiple coding agents at the same time. Claude Code in one terminal, Codex in another, sometimes Gemini CLI doing something else. That’s three agents doing real work in background terminals I can’t see.
The problem isn’t that they’re slow. The problem is they ask questions. They need permission to run tools. They finish tasks and I don’t notice for minutes. I’m tabbing between terminals trying to figure out which one needs me.
macOS has a notch. It just sits there. Dead pixels.
So I thought — what if the notch showed me what my agents are doing? A small, persistent status indicator. Green dot means running. Orange means it needs approval. Red means it has a question. Click to jump to the right terminal.
That’s xisland.
No dashboard. No web UI. No electron app eating 400MB of RAM. Just a native Swift overlay that reads hook events from your terminal and shows them in the notch.
What it actually does
Your agent emits events through hooks — session start, tool use, permission requests, questions. xisland picks those up through a unix socket and renders them. If Claude Code wants to delete a file, you see it in the notch before it happens. Approve or deny without leaving your editor.
It supports Claude Code, Codex, OpenCode, and Gemini CLI. Seven terminals. The whole thing runs local. No server, no cloud, no telemetry.
Why free
I looked at existing tools and they were either locked behind license keys, or they were overcomplicated. I wanted something I’d actually use every day. Something that does one thing and does it well.
I also wanted to learn Swift. Building xisland was a good excuse.
It’s free because I built it for myself and I want others to use it too. No license keys, no paywalls. Just a tool that works.
What’s next
Better Gemini CLI support. Linux port (eventually). More terminals. Maybe sound alerts for when an agent finishes a long task.
If you try it, file issues. I read all of them.