Field unit No. 5 · sound cues and a Codex pet
Need input.
Your coding agent, with a robot's sense of urgency.
Agent Johnny 5 plays lines from Short Circuit when Claude Code, Codex, or Gemini CLI needs you: an approval waiting, a question asked, a turn finished. And it yells "No disassemble!" when that approval is for rm -rf. The robot himself is a Codex pet that installs on its own.
Local. No telemetry. Never approves or blocks anything.
Event map
Every cue, wired to an event.
Twenty lines, each tied to something your agent does. Click a line to hear it on the scope. Your browser stays quiet until you do.
session_startedA session starts, resumes, or clearsOnprompt_submittedYou send a promptOnapproval_requiredA tool needs permissionOninput_requiredThe agent asks you a questionOn*ready_for_inputClaude Code is idle and waitingOn*turn_completedThe agent finishes respondingOfferrorClaude Code stops on an API errorOffcontext_compactingContext is about to be compactedOffsession_endedA session endsOffeaster-eggRarely replaces a session, prompt, ready, or completion cue2%*Event coverage depends on your agent. Off events turn on with agent-johnny5 unmute EVENT.
Destructive-command alarm
No disassemble.
When an approval is for something you cannot take back, the cue changes. Recursive force deletes, force pushes, hard resets, dropped tables, mkfs, dd, and their PowerShell cousins all get the alarm instead of the ordinary prompt.
It is a louder cue, not a safety check. The hook never blocks, approves, logs, or stores the command; only a yes/no flag leaves it.
agent wants to run:
$ rm -rf ./build ./dist
allow? [y/n] Atlas preview
Sixteen look directions
Codex pet
Number five, on screen.
Johnny 5 is also a native Codex pet: nine animations, sixteen look directions, binocular optics, expressive brow shutters, and tank treads. Codex drives the animation from what your agent is doing. Here, you drive it.
The pet installs on its own. It never enables sounds, and the sound plugin never installs or selects a pet.
- Extract the
johnny5folder into~/.codex/pets/, or thepetsfolder inside your configuredCODEX_HOME. No Node.js needed. - Refresh the desktop pet picker and choose Johnny 5, or enter
/pets Johnny 5in a supported Codex CLI terminal.
Prefer the command line?
npm install -g github:mitchtech/agent-johnny5#v0.2.0
agent-johnny5 pet install
agent-johnny5 doctor --petThese commands install pet files only and never change your selected pet. agent-johnny5 pet uninstall removes an unchanged CLI-managed installation.
Making a ChatGPT account pet? Download the nine-row web atlas and keep the CC BY 4.0 credit. Web upload guide.
Install
Two commands. Johnny 5 is alive.
Run these in your terminal. Node.js 22+ and a local audio player are required. Restart your agent after installation.
Claude Code
claude plugin marketplace add mitchtech/agent-johnny5
claude plugin install johnny5@agent-johnny5Codex
codex plugin marketplace add mitchtech/agent-johnny5
codex plugin add johnny5@agent-johnny5Gemini CLI
gemini extensions install https://github.com/mitchtech/agent-johnny5Review and trust the sound hooks in Codex's hook settings. Running Agent Navi or Agent Warcraft too? Enable one per host so a fairy, a robot, and a peon do not talk over each other. Other agents use the standalone event interface.
Sound controls
agent-johnny5 status
agent-johnny5 mute prompt_submitted
agent-johnny5 mute easter-egg
agent-johnny5 preset attention
agent-johnny5 unmute allOr ask your agent to "mute Johnny 5" through the bundled control skill. Global mute preserves your event preferences.
Codex pet
Want the robot too?
The pet is a separate four-file download for Codex. Extract it into ~/.codex/pets/ and choose Johnny 5 in the pet picker. Pet install steps.
Compatibility
Where it plays.
Sounds play on the machine that runs the hook, across agents and operating systems. Native pet support follows the host.
Full compatibility guide| Environment | Sounds | Events | Native pet |
|---|---|---|---|
| Claude Code | Native hooks | All 9 | Unavailable |
| Codex desktop | Trusted hooks | Session, prompt, approval, completion, compaction, end | Host pet picker |
| Codex CLI | Trusted hooks | Same as desktop | Graphics terminal |
| Gemini CLI | Native extension | Session, prompt, approval, completion, compaction, end | Unavailable |
| Other agents / scripts | Event interface | Whatever you call | Host dependent |
| SSH, containers, WSL | Local audio needed | Same as the host | Host dependent |
*iTerm2 3.6+, Kitty graphics, or Sixel. No terminal pets inside tmux or Zellij. Local pets do not sync to ChatGPT web.
Number five is alive.
Keep building. Johnny 5 will tell you when he needs input.
Explore the project