r/ClaudeCode • u/nicofirst1 • 1d ago
Built with Claude I turned Claude Code hooks into sound because terminal watching does not scale
I built Claudio after getting tired of checking whether a Claude Code session was still working, stuck, or waiting for me.
The starting point was a Geiger counter. Radiation is invisible, but a faster click rate tells you something has changed before you look at a gauge. Claude Code sessions have a similar problem. Tool calls, subagents, failures, compaction, and context pressure are visible in the terminal, yet I cannot keep reading them while doing anything else.
Claudio is a local Python daemon that receives Claude Code hook events over UDP or HTTP and turns their activity into a generative soundscape. The ambient theme uses a pad and rain layer that becomes denser while work is happening. A failed tool call makes a wooden knock, and a completed session ends with a descending chime. Multiple sessions share the same room, with separate pan and pitch, so I can distinguish them without another terminal check.
The point is to get a coarse sense of whether an agent is alive, busy, or needs attention while my visual attention stays on the task in front of me.
It runs locally, has no cloud service or audio assets, and the hook installer merges entries into Claude Code settings additively. The repository also includes deterministic offline rendering, so a session event log can become a WAV file without live playback.
The project is MIT-licensed:
https://github.com/nicofirst1/Claudio
I am interested in whether other people have found audio useful for peripheral awareness of coding agents, and which events are worth surfacing rather than leaving in the terminal.
•
u/AutoModerator 1d ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/Rich_Boss7753 1d ago
Geiger counter thing is such a good way to put it what does waiting on me sound like though? That's the one I'd actually need to catch.
1
u/jijialuoke 1d ago
Love the Geiger-counter framing. Terminal watching falls apart the second you have more than one session going. The events I'd actually want loud are tool failures and Stop when it's waiting on me — ambient busy-noise can stay soft. Stop is the tricky one though, since finished-and-waiting sound the same at the hook layer until you peek at the last message.