---
slug: "pi-ding"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/ninlds/pi-ding@main/README.md"
repo: "https://github.com/ninlds/pi-ding"
source_file: "README.md"
branch: "main"
---
# pi-ding

A [pi](https://github.com/badlogic/pi-mono) extension that plays a sound when the agent finishes processing a prompt (when it’s ready for the next input).

## Install

```bash
pi install npm:pi-ding
```

After installing, restart `pi` or run `/reload` inside pi.

## Configure (recommended)

pi-ding stores its config inside pi’s settings files, so you can configure once and then just run `pi`.

Settings locations (project overrides global):

- Global: `~/.pi/agent/settings.json`
- Project: `<project>/.pi/settings.json`

Add a `ding` key:

```json
{
  "ding": {
    "enabled": true,
    "player": "mpv",
    "args": ["--no-video", "--really-quiet"],
    "path": "~/sounds/done.mkv"
  }
}
```

Notes:
- `args` is optional.
- If `player` is omitted, pi-ding tries common players automatically (`mpv`, `ffplay`, `paplay`, `afplay`, `aplay`).
- Supported audio formats depend on the chosen player.

### Easiest way: edit from inside pi

Inside pi:
- `/ding edit` → edits **project** config (`.pi/settings.json`)
- `/ding edit global` → edits **global** config (`~/.pi/agent/settings.json`)

## Commands (inside pi)

- `/ding` — toggle enabled (saved to **project** settings by default)
- `/ding on` / `/ding off` — set enabled
- `/ding test` — play sound immediately
- `/ding info` — show debug info (effective config, resolved file, players)
- `/ding reload` — reload settings from disk

## Optional CLI overrides

You typically won’t need these once config exists, but they can override settings for a single run:

```bash
pi --no-ding
pi --ding-player mpv --ding-path "./done.mkv"
pi --ding-args '["--no-video","--really-quiet"]'
```

## License

MIT
