Agent Johnny 5

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.

ClipStandby Event- Length-
Native hooks forClaude CodeCodexGemini CLIplusYour own agentNative pet forCodexmacOS · Linux · Windows

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.

EventWhenLinesDefault
session_startedA session starts, resumes, or clearsOn
prompt_submittedYou send a promptOn
approval_requiredA tool needs permissionOn
input_requiredThe agent asks you a questionOn*
ready_for_inputClaude Code is idle and waitingOn*
turn_completedThe agent finishes respondingOff
errorClaude Code stops on an API errorOff
context_compactingContext is about to be compactedOff
session_endedA session endsOff
easter-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] 

Johnny 5 is idleAtlas preview

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.

  1. Extract the johnny5 folder into ~/.codex/pets/, or the pets folder inside your configured CODEX_HOME. No Node.js needed.
  2. Refresh the desktop pet picker and choose Johnny 5, or enter /pets Johnny 5 in 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 --pet

These 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-johnny5

Codex

codex plugin marketplace add mitchtech/agent-johnny5
codex plugin add johnny5@agent-johnny5

Gemini CLI

gemini extensions install https://github.com/mitchtech/agent-johnny5

Review 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 all

Or 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
Sound and native pet support by environment
EnvironmentSoundsEventsNative pet
Claude CodeNative hooksAll 9Unavailable
Codex desktopTrusted hooksSession, prompt, approval, completion, compaction, endHost pet picker
Codex CLITrusted hooksSame as desktopGraphics terminal
Gemini CLINative extensionSession, prompt, approval, completion, compaction, endUnavailable
Other agents / scriptsEvent interfaceWhatever you callHost dependent
SSH, containers, WSLLocal audio neededSame as the hostHost 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