Create a Sound Pack
One command, or five manual steps. Both end at a valid CESP pack.
Fastest path: let your agent build it
peon-ping 2.36+Describe the vibe you want and peon create drafts the whole pack, then opens it in your browser so you can hear every sound before it becomes real.
peon create --name dawnlight --flavor sfx \
--vibe "calm, wordless: felt piano and glass chimes"Play each sound. When one is wrong, click reroll and type why, in plain language:
too harsh, want something softer
Your note goes to your own Claude Code, which rewrites that sound's generation prompt to honor it and re-renders with your own ElevenLabs key. Nothing is billed to anyone else. The pack records what changed and why, so it stays remixable instead of being a dead end.
Nothing is installable until you click approve. That is the point: a pack does not exist until a human has heard it. Requires peon-ping and an ElevenLabs key. Prefer to do it by hand? The five steps below still work, and the spec is the source of truth.
Want an agent to do this for you? Paste GENERATE.md into Claude Code, Codex, Cursor, or opencode. It interviews you, then does the whole thing: install, generate or gather the sounds, walk you through approving them, publish the repo, and open the registry PR.
Or build it by hand
1. Gather your sounds
You need audio files for at least a few CESP categories. Game voice lines, movie quotes, or original recordings all work. Aim for 2-3 sounds per category for variety.
Requirements:
- Formats:
.wav,.mp3, or.ogg - Max 1 MB per file, 50 MB total
- Filenames: letters, numbers, dots, hyphens, underscores only
- Short clips work best (1-5 seconds)
2. Create directory structure
my-pack/
openpeon.json
sounds/
greeting.mp3
done.mp3
error.mp3
attention.mp33. Write your manifest
Create an openpeon.json at the pack root. Here is a starter template:
{
"cesp_version": "1.0",
"name": "my-pack",
"display_name": "My Sound Pack",
"version": "1.0.0",
"description": "Short description of your pack",
"author": {
"name": "Your Name",
"github": "your-github-username"
},
"license": "CC-BY-NC-4.0",
"language": "en",
"categories": {
"session.start": {
"sounds": [
{ "file": "sounds/greeting.mp3", "label": "Hello!" }
]
},
"task.complete": {
"sounds": [
{ "file": "sounds/done.mp3", "label": "Task done" }
]
},
"task.error": {
"sounds": [
{ "file": "sounds/error.mp3", "label": "Oops" }
]
},
"input.required": {
"sounds": [
{ "file": "sounds/attention.mp3", "label": "Need input" }
]
}
}
}4. Publish to GitHub
Create a public GitHub repo for your pack (e.g., yourname/openpeon-mypack). Push your files and tag a release:
git init && git add -A && git commit -m "Initial commit"
git remote add origin https://github.com/yourname/openpeon-mypack.git
git push -u origin main
git tag v1.0.0 && git push origin v1.0.05. Register your pack
Submit your pack to the OpenPeon registry so it can be discovered and installed:
- Fork PeonPing/registry
- Add your pack entry to
index.json(keep alphabetical order) - Open a pull request — CI will validate your entry
See the registry contributing guide for the full entry format and submission details.
Need more details on the manifest format?
Read the full spec