@jinana/opencode-my-custom-audio
v1.1.1
Published
Custom audio notifications for OpenCode using my kids' voice recordings
Maintainers
Readme
OpenCode My Custom Audio
Custom audio notifications plugin for OpenCode using my kids' voice recordings.
Features
- Plays custom voice recordings when OpenCode events occur
- Supports idle, cancelled, error, and tool completion sounds
- Custom sounds directory support for adding your own sounds
- Weighted random selection between default and custom sounds
- Toast notifications with event messages
Events Handled
session.idle- Work completesession.deleted- Session cancelledsession.error- Error occurredtool.execute.after- Tool execution completed
Installation
Option 1: npm link (for development)
# Link the package locally
cd /path/to/opencode-my-custom-audio
npm link
# Or install from GitHub
npm install jinana/opencode-my-custom-audioOption 2: Build from source
# Clone and build
git clone https://github.com/jinana/opencode-my-custom-audio.git
cd opencode-my-custom-audio
npm install
npm run buildOpenCode Configuration
Add the plugin to your OpenCode config at ~/.config/opencode/plugin.json:
{
"plugins": ["@jinana/opencode-my-custom-audio"],
"@jinana/opencode-my-custom-audio": {
"soundsDir": "~/.config/opencode/my-custom-audio/sounds",
"volume": 1.0,
"enabled": true,
"showToast": true,
"voiceWeights": {
"default": 50,
"custom": 50
}
}
}Or reference a local build:
{
"plugins": ["/path/to/opencode-my-custom-audio/dist/index.js"]
}Configuration Options
| Option | Type | Default | Description |
| ---------------------- | ------- | ------------------------------------------- | ------------------------------------- |
| soundsDir | string | ~/.config/opencode/my-custom-audio/sounds | Custom sounds directory |
| volume | number | 1.0 | Volume level (0.0 - 1.0) |
| enabled | boolean | true | Enable/disable the plugin |
| showToast | boolean | true | Show toast notifications |
| idleSound | string | - | Custom sound file for idle event |
| cancelledSound | string | - | Custom sound file for cancelled event |
| errorSound | string | - | Custom sound file for error event |
| toolSound | string | - | Custom sound file for tool event |
| voiceWeights.default | number | 50 | Weight for default sounds (%) |
| voiceWeights.custom | number | 50 | Weight for custom sounds (%) |
Custom Sounds
To add custom sounds, create a directory structure in your sounds directory:
~/.config/opencode/my-custom-audio/sounds/
├── idle/
│ └── your_idle_sound.wav
├── cancelled/
│ └── your_cancelled_sound.wav
├── error/
│ └── your_error_sound.wav
└── tool/
└── your_tool_sound.wavSupported formats: WAV, MP3, OGG
Default Sounds
The plugin comes bundled with these default sounds:
- Idle: Work complete voice
- Cancelled: Change my mind sound
- Error: Laugh sound
- Tool: Tools call / Orc sound
Requirements
- OpenCode
- Linux with PulseAudio (paplay) for sound playback
- or macOS (afplay)
- or Windows (not yet implemented)
Development
# Install dependencies
npm install
# Build
npm run build
# Lint
npm run lintLicense
MIT
