OpenPeonOpenPeon

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.mp3

3. Write your manifest

Create an openpeon.json at the pack root. Here is a starter template:

openpeon.json
{
  "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.0

5. Register your pack

Submit your pack to the OpenPeon registry so it can be discovered and installed:

  1. Fork PeonPing/registry
  2. Add your pack entry to index.json (keep alphabetical order)
  3. 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