Agent Rocky
100% astrophage

Sound cues for coding agents

Amaze. Amaze. Amaze.

Your coding agent, with an Eridian engineer's enthusiasm.

Agent Rocky plays Rocky's lines from Project Hail Mary when Claude Code, Codex, or Gemini CLI does something you should hear about. You get "Hello, Grace friend" when a session starts, "Amaze! Amaze! Amaze!" when a turn ends, and "We die. We die. We die." when an approval is for rm -rf. When your usage runs out, Rocky says what every engineer on a fuel budget already knows: not enough, not enough.

Local. No telemetry. Never approves or blocks anything.

Rocky

Question?

Click the spectrum

Rocky talks in chords. The bars are the spectrum of each line, and the labels are its strongest notes. Click the spectrum, then keep clicking: the third click inside ten seconds is exactly how the annoyed cue works.
Native hooks forClaude CodeCodexGemini CLIplusYour own agentmacOS · Linux · Windows

Event map

Every cue, wired to an event.

Forty-four clips: thirty-eight lines from the film and six untranslated Eridian chords, each tied to something your agent does. Click a line to hear it. Your browser stays quiet until you do.

EventWhenLinesDefault
session_startedA session starts, resumes, or clearsOn
prompt_submittedYou send a promptOn
annoyedYour third prompt inside ten secondsOn
approval_requiredA tool needs permissionOn
input_requiredThe agent asks you a questionOn*
ready_for_inputClaude Code is idle and waitingOn*
turn_completedThe agent finishes respondingOn
out_of_astrophageRate limit, billing, or budget exhaustedOn*
astrophage_lowThe status line meter crosses its thresholdOn*
out_of_xenoniteA reply hits the output token limitOn*
memory_fullThe status line memory gauge crosses its thresholdOn*
errorClaude Code stops on another API errorOff
tool_failedA tool call failsOff
subagent_startedA subagent starts workOff
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-rocky unmute EVENT.

Codex pet

Your own Eridian engineer.

Five stone limbs, nine animations, and sixteen look directions. Rocky waves, works, waits for your input, and checks the result while Codex drives his activity.

Install him independently with agent-rocky pet install, then select Rocky in the desktop pet picker or a supported Codex CLI terminal. Sounds and pets stay independent.

Download the web atlas for a separate account upload. Original artwork: CC BY 4.0.

Rocky is idle
Sixteen look directions

Destructive-command alarm

We die. We die. We die.

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 sound the alarm instead of the ordinary question.

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:
$ git push --force origin main
allow? [y/n] 

Usage alarms

Not enough. Not enough.

Claude Code reports why a turn failed. Rate limits, billing errors, and accounts on hold play the Astrophage line. Hitting the output token limit plays "too much." An optional status-line meter shows how much of your tightest limit is left, and Rocky asks once when the tanks run low.

Budget and status line guide
~/project main⬠ 18% astrophage (5h) low · 88% memory full
  1. rate_limit · billing_error · account_on_holdout_of_astrophage
  2. max_output_tokensout_of_xenonite
  3. status line ≥ 80%astrophage_low
  4. context window ≥ 85%memory_full

Install

Two commands. Fist my bump.

Run these in your terminal. Sounds need Node.js 22+ and a local audio player; restart your agent after installation.

Claude Code

claude plugin marketplace add mitchtech/agent-rocky
claude plugin install rocky@agent-rocky

Codex

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

Gemini CLI

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

Review and trust the sound hooks in Codex's hook settings. Running another Agent plugin too (Navi, Johnny 5, Warcraft, Star Wars, or StarCraft)? Enable one per host so they do not talk over each other. Other agents use the standalone event interface.

Install the Codex pet

npm install -g github:mitchtech/agent-rocky
agent-rocky pet install
agent-rocky doctor --pet

These commands install the CLI and pet without enabling sound hooks. Prefer a standalone bundle? Download the pet ZIP and extract its rocky directory into ~/.codex/pets/. Then select Rocky in your host's pet picker. Installation never changes the selected pet.

Sound controls
agent-rocky status
agent-rocky mute prompt_submitted
agent-rocky unmute subagent_started
agent-rocky preset attention
agent-rocky preview fist-my-bump
agent-rocky unmute all

Or ask your agent to "mute Rocky" or "turn off amaze amaze amaze" through the bundled control skill. Global mute preserves your event preferences.

Status line

Astrophage meter

Point Claude Code's status line at agent-rocky statusline to see how much of your tightest limit and context window is left, with a cue when either runs low. Setup guide.

Compatibility

Where it plays.

Sounds play on the machine that runs the hook, across agents and operating systems.

Full compatibility guide
Sound support by environment
EnvironmentSoundsEvents
Claude CodeNative hooksAll 16, plus the status-line meter
Codex CLI and desktopTrusted hooksSession, prompt, approval, completion, subagent, compaction, end
Gemini CLINative extensionSession, prompt, approval, completion, compaction, end
Other agents / scriptsEvent interfaceWhatever you call
SSH, containers, WSLLocal audio neededSame as the host

Fist my bump.

Keep building. Rocky will tell you when the work is done.

Explore the project