Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.
Sound effect plugin for Claude Code and Opencode
Sound FX adds themed audio cues to Claude Code, and also ships an Opencode package that uses the same themes and config. It listens for lifecycle events like session start, tool failure, and session end, then plays the matching audio from the selected theme or from Mix mode.
Builders who want their agent work to make noise when tasks start, finish, or fail.
You can keep working in another window and still hear when your agent needs attention.
What it does
Themed audio cues
Plays sounds for session start, submit, complete, error, notification, precompact, and session end events.
Mix mode and single-theme mode
Randomizes across 12 themes or keeps one theme active for every event.
Claude Code setup command
Uses `/sound-fx:setup` to configure, update, or remove the plugin and refresh hooks.
Remote relay for headless servers
For SSH sessions, `scripts/relay.py` forwards audio from the remote machine to your local computer.
Custom theme folders
Lets you add a new theme by dropping a directory with a `manifest.json` and audio files under `assets/`.
Opencode package
Ships `@6m1w/opencode-sound-fx` for Opencode with the same config file and audio themes.
How to get it
- 1Relay commands
python3 scripts/relay.py --status # Show config and loaded themes python3 scripts/relay.py --kill # Stop the relay
- 2Run
/plugin marketplace add 6m1w/claude-sound-fx /plugin install sound-fx@claude-sound-fx
- 3Then configure your theme
/sound-fx:setup
- 4Run
npm install @6m1w/opencode-sound-fx
- 5Run the same command anytime
/sound-fx:setup
README
You kick off a task, switch to your browser, and forget about the terminal. Five minutes later you check back — it's been waiting for you the whole time.
Sound FX adds themed audio cues to Claude Code and Opencode so you never have to babysit the terminal again. Hear when a task finishes, when something breaks, or when the AI needs your input — even while you're in another window.
Pick a single theme or go Mix mode and let 12 themes collide randomly. JARVIS confirms your deploy. GLaDOS mocks your errors. Pikachu celebrates your tests passing. A WoW Peon reluctantly obeys your commands.
https://github.com/user-attachments/assets/c47537fc-1c18-4256-877d-0f22d4314bfd
Platform Support
Works on every major platform. No extra setup needed for local use.
| Platform | Extra setup? | How it works |
|---|---|---|
| macOS | No | Plays via afplay directly |
| Windows (WSL) | No | Auto-calls powershell.exe or ffplay.exe via WSL interop |
| Linux desktop | No | Auto-detects paplay / ffplay / aplay |
| Remote server (SSH) | Yes | Requires a relay script on your local machine — see below |
Remote server setup
When running on a headless server with no audio hardware, sounds are forwarded to your local machine via a lightweight HTTP relay:
# ① Clone the repo on your LOCAL machine
git clone https://github.com/6m1w/claude-sound-fx.git
# ② Start the relay (runs in background, listens on port 19876)
python3 claude-sound-fx/scripts/relay.py &
# ③ SSH into the remote server with port forwarding
ssh -R 19876:127.0.0.1:19876 your-server
# ④ On the server, use Claude Code / Opencode as usual — sounds play locally
Relay commands:
python3 scripts/relay.py --status # Show config and loaded themes
python3 scripts/relay.py --kill # Stop the relay
Install
Claude Code
/plugin marketplace add 6m1w/claude-sound-fx
/plugin install sound-fx@claude-sound-fx
Then configure your theme:
/sound-fx:setup
The setup wizard will walk you through theme selection and trigger mode.
Opencode
npm install @6m1w/opencode-sound-fx
Add to opencode.json:
{
"plugin": ["@6m1w/opencode-sound-fx"]
}
Shares the same config file (~/.claude/sound-fx.local.json) and audio themes.
Update or Remove
Run the same command anytime:
/sound-fx:setup
The wizard will ask you to Configure, Update, or Remove:
| Action | What it does |
|---|---|
| Configure | Set up or change your theme and trigger mode |
| Update | Re-apply current settings, refresh hooks, and play a test sound |
| Remove | Completely remove sound effects — deletes config file |
Themes
Sci-Fi & AI
| Theme | Vibe | Origin |
|---|---|---|
| Jarvis | "At your service, sir." — Calm, competent, slightly British. | Iron Man |
| GLaDOS | "This was a triumph." — Passive-aggressive AI with dark humor. | Portal |
| Star Trek | Classic starship interface chirps, beeps, and red alerts. | Star Trek |
| Optimus Prime | "Autobots, roll out." — Heroic commander energy. | Transformers |
Anime
| Theme | Vibe | Origin |
|---|---|---|
| JoJo | DIO の「無駄無駄」と承太郎の「やれやれだぜ」— Dual voice chaos. | ジョジョの奇妙な冒険 |
| One Piece | ルフィの「よっしゃー!」— Pure rubber-band energy. | ワンピース |
| Pikachu | 「ピカチュウ!」— You know exactly how this sounds. | ポケットモンスター |
| Doraemon | 「ドラえもーん!」— The robotic cat from the future. | ドラえもん |
Gaming & Other
| Theme | Vibe | Origin |
|---|---|---|
| WoW Peon | "Ready to work!" — Reluctant, overworked, relatable. | World of Warcraft |
| StarCraft SCV | "SCV good to go, sir!" — Blue-collar space worker. | StarCraft |
| Steve Jobs | "One more thing..." — Inspirational keynote energy. | Apple |
| Mechanical Keyboard | clack clack clack — Pure ASMR satisfaction. | Your dreams |
How It Works
Sound FX hooks into 7 lifecycle events:
SessionStart ──→ 🔊 "I am ready." (theme: start)
UserPromptSubmit ──→ 🔊 "Understood." (theme: submit)
Stop ──→ 🔊 "Task complete." (theme: complete)
PostToolUseFailure ──→ 🔊 "That was a mistake." (theme: error)
Notification ──→ 🔊 "Hmm?" (theme: notification)
PreCompact ──→ 🔊 "Memory failing..." (theme: precompact)
SessionEnd ──→ 🔊 "Until next time." (theme: session_end)
Note: Tool permission prompts (the approve/deny popup) are not a hookable lifecycle event in Claude Code, so this plugin cannot play sounds for them.
Modes
| Mode | What it does |
|---|---|
| Mix (default) | Randomly picks from all 12 themes per event. Maximum chaos. |
| Single Theme | Sticks to one theme. For the focused individual. |
Trigger Levels
| Level | Events |
|---|---|
| Full (default) | All 7 events fire sounds |
| Minimal | Only start, complete, error, notification |
Config is stored at ~/.claude/sound-fx.local.json. Re-run /sound-fx:setup anytime to change.
Add Your Own Theme
No code changes needed. Just add a directory under assets/:
assets/my-theme/
├── manifest.json
├── MyThemeStart1.mp3
├── MyThemeComplete1.mp3
└── ...
manifest.json format:
{
"name": "My Theme",
"description": "What it sounds like",
"start": ["MyThemeStart1.mp3"],
"submit": [],
"complete": ["MyThemeComplete1.mp3"],
"error": [],
"notification": [],
"precompact": [],
"session_end": []
}
Empty arrays [] are fine — that event just won't play a sound for your theme.
Environment Variables
| Variable | Default | Description |
|---|---|---|
CLAUDE_SOUND_VOLUME | 60 | Volume level (0–100) |
CLAUDE_SOUND_PORT | 19876 | Relay server port |
License
MIT
Files in the repo
- .claude-plugin
- assets
- commands
- docs
- hooks
- opencode
- scripts
- .gitignore
- README.ja.md
- README.md
- README.zh-CN.md
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More plugins

Graphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
OmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering.
Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns
Teams-first Multi-agent orchestration for Claude Code