~/.claude/settings.json:
{
"hooks": {
"Notification": [{
"matcher": "idle_prompt",
"hooks": [{
"type": "command",
"command": "vmux notify --title 'Claude Code' --body 'Waiting for input'"
}]
}],
"Stop": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "vmux notify --title 'Claude Code' --body 'Task complete' --level info"
}]
}]
}
}~/.codex/config.toml:
notify = ["bash", "-c", "vmux notify --title Codex --body 'Done'"]~/.gemini/settings.json:
{
"hooks": {
"on_complete": "vmux notify --title 'Gemini CLI' --body 'Task finished'"
}
}Any agent or script can send notifications:
# Simple notification
vmux notify --title "Build" --body "Complete"
# Error notification
vmux notify --title "Test" --body "3 tests failed" --level error
# After long-running command
npm test && vmux notify --title "Tests" --body "All passed" \
|| vmux notify --title "Tests" --body "Failed" --level error- Install the vmux VS Code extension
- Ensure
vmuxis in your PATH:npm install -g vmux # or the extension bundles it at: ~/.vscode/extensions/roboco-io.vmux-*/dist/cli.js - Open a terminal in VS Code — the extension auto-injects
VMUX_SOCKET - Configure your agent's hook as shown above