Ding when your coding agent finishes.
English-only. Done-only (not permission spam). Any terminal. Optional Zellij layouts (DIY). Modular install. Clean uninstall.
agent turn completes → agent-ding → "MyProject · Done"
Paste this into any coding agent and ask it to set up agent-ding:
https://github.com/levi-qiao/agent-ding/blob/main/docs/for-agents.md
Or open the repo — agents should read AGENTS.md first.
The agent will interview you, detect installed tools, install only what you want, wire done-only hooks with absolute paths, and leave a clean ./uninstall.sh.
git clone https://github.com/levi-qiao/agent-ding.git
cd agent-ding
./setup.sh # interview on a real terminal
# or non-interactive:
./install.sh --only notify --with-hooks
./uninstall.sh
./uninstall.sh --purgeagent-ding claude
agent-ding grok "fixed the flaky test"Works with whatever you already use:
| Piece | Role | Required? |
|---|---|---|
| Ghostty / iTerm / Terminal / WezTerm / kitty / … | Terminal host | Use any |
| Zellij (or plain splits) | Multi-pane | Optional |
| Claude / Grok / Agy / Codex | Coding agents | Optional hooks |
| terminal-notifier (macOS) | Brand toast icons | brew install terminal-notifier |
| Package | Standalone | Purpose |
|---|---|---|
| notify | ✅ | agent-ding CLI + icons |
| layouts | ✅ | Sample Zellij KDL — DIY |
| shell | ✅ | Optional ai / groks |
| ghostty | ✅ | Optional config snippet |
Optional: zellij-attention for tab ✅.
./install.sh --only notify
./install.sh --only layouts
./install.sh --only notify --with-hooks
./install.sh --only notify --with-zellij-attention
./install.sh --allState: ~/.local/share/agent-ding/install-state.json → used by uninstall.
Grok users: Grok can load Claude's hooks (
compat.claude.hooks).agent-dingdetects the host (GROK_AGENT, hook env, process tree) and remaps a wrongclaudearg to Grok so you never get a Claude Code toast inside Grok. Still install a Grok-native Stop →agent-ding grokunder~/.grok/hooks/(preferred).
Prefer absolute path (agent hook PATH often lacks ~/.local/bin):
"command": "/Users/YOU/.local/bin/agent-ding claude"| Agent | Done trigger | Where |
|---|---|---|
| Claude | Stop |
~/.claude/settings.json |
| Grok | Stop (primary) |
~/.grok/hooks/agent-ding.json |
| Codex | often built-in notify |
leave alone unless owner wants agent-ding |
| Agy | no stable hook yet | icons only |
./install.sh --with-hooks writes absolute paths when Claude/Grok configs exist.
Sample layouts are templates. Edit freely or skip layouts and only install notify.
See packages/layouts/DIY.md.
Toast click brings the terminal app forward. Exact Zellij pane focus is not reliable; use tab marks if needed.
./uninstall.sh
./uninstall.sh --dry-run
./uninstall.sh --purgeMIT. Brand marks identify local notification senders only; trademarks stay with their owners.