echook
π echook β AI-operated audio notifications for Claude Code, Cursor IDE & Codex CLI β 26 hooks, voice + chime themes, TTS, webhooks, rate-limit alerts, status line. Tell your AI agent to install β natural language forever after.
File Explorer
- marketplace.json
- chan-meng-logo.svg
- bug_report.md
- config.yml
- feature_request.md
- smoke.yml
- FUNDING.yml
- PULL_REQUEST_TEMPLATE.md
- .gitkeep
- chime-agent-response.mp3
- chime-batch-complete.mp3
- chime-config-change.mp3
- chime-cwd-changed.mp3
- chime-dir-added-repo-root.mp3
- chime-dir-added-slash.mp3
- chime-directory-added.mp3
- chime-elicitation-result.mp3
- chime-elicitation.mp3
- chime-end-clear.mp3
- chime-end-exit.mp3
- chime-end-logout.mp3
- chime-end-resume.mp3
- chime-fail-account-hold.mp3
- chime-fail-auth.mp3
- chime-fail-billing.mp3
- chime-fail-invalid-request.mp3
- chime-fail-max-tokens.mp3
- chime-fail-model-not-found.mp3
- chime-fail-oauth-org.mp3
- chime-fail-overloaded.mp3
- chime-fail-rate-limit.mp3
- chime-fail-server-error.mp3
- chime-fail-unknown.mp3
- chime-file-changed.mp3
- chime-file-read.mp3
- chime-instructions-loaded.mp3
- chime-mcp-done.mp3
- chime-mcp-starting.mp3
- chime-message-display.mp3
- chime-notif-agent-completed.mp3
- chime-notif-agent-needs-input.mp3
- chime-notif-auth-success.mp3
- chime-notif-computer-use-enter.mp3
- chime-notif-computer-use-exit.mp3
- chime-notif-elicitation-complete.mp3
- chime-notif-elicitation-dialog.mp3
- chime-notif-elicitation-response.mp3
- chime-notif-elicitation-url.mp3
- chime-notif-idle-prompt.mp3
- chime-notif-permission-prompt.mp3
- chime-notif-push.mp3
- chime-notif-quota-disabled.mp3
- chime-notif-quota-resumed.mp3
- chime-notif-quota-stale.mp3
- chime-notif-worker-permission.mp3
- chime-notification-info.mp3
- chime-notification-urgent.mp3
- chime-permission-denied.mp3
- chime-permission-request.mp3
- chime-post-compact.mp3
- chime-postcompact-auto.mp3
- chime-postcompact-manual.mp3
- chime-pre-compact.mp3
- chime-precompact-auto.mp3
- chime-precompact-manual.mp3
- chime-prompt-expanded.mp3
- chime-prompt-received.mp3
- chime-session-after-compact.mp3
- chime-session-cleared.mp3
- chime-session-end.mp3
- chime-session-forked.mp3
- chime-session-resumed.mp3
- chime-session-start.mp3
- chime-session-startup.mp3
- chime-setup-init.mp3
- chime-setup-maintenance.mp3
- chime-setup-ready.mp3
- chime-shell-done.mp3
- chime-shell-starting.mp3
- chime-stop-failure.mp3
- chime-subagent-complete.mp3
- chime-subagent-start.mp3
- chime-tab-edit.mp3
- chime-task-complete.mp3
- chime-task-created.mp3
- chime-task-progress.mp3
- chime-task-starting.mp3
- chime-team-task-done.mp3
- chime-teammate-idle.mp3
- chime-thinking-done.mp3
- chime-tool-failed.mp3
- chime-workspace-open.mp3
- chime-worktree-removed.mp3
- agent-response.mp3
- batch-complete.mp3
- config-change.mp3
- cwd-changed.mp3
- dir-added-repo-root.mp3
- dir-added-slash.mp3
- directory-added.mp3
- elicitation-result.mp3
- elicitation.mp3
- end-clear.mp3
- end-exit.mp3
- end-logout.mp3
- end-resume.mp3
- fail-account-hold.mp3
- fail-auth.mp3
- fail-billing.mp3
- fail-invalid-request.mp3
- fail-max-tokens.mp3
- fail-model-not-found.mp3
- fail-oauth-org.mp3
- fail-overloaded.mp3
- fail-rate-limit.mp3
- fail-server-error.mp3
- fail-unknown.mp3
- file-changed.mp3
- file-read.mp3
- instructions-loaded.mp3
- mcp-done.mp3
- mcp-starting.mp3
- message-display.mp3
- notif-agent-completed.mp3
- notif-agent-needs-input.mp3
- notif-auth-success.mp3
- notif-computer-use-enter.mp3
- notif-computer-use-exit.mp3
- notif-elicitation-complete.mp3
- notif-elicitation-dialog.mp3
- notif-elicitation-response.mp3
- notif-elicitation-url.mp3
- notif-idle-prompt.mp3
- notif-permission-prompt.mp3
- notif-push.mp3
- notif-quota-disabled.mp3
- notif-quota-resumed.mp3
- notif-quota-stale.mp3
- notif-worker-permission.mp3
- notification-info.mp3
- notification-urgent.mp3
- permission-denied.mp3
- permission-request.mp3
- post-compact.mp3
- postcompact-auto.mp3
- postcompact-manual.mp3
- pre-compact.mp3
- precompact-auto.mp3
- precompact-manual.mp3
- prompt-expanded.mp3
- prompt-received.mp3
- session-after-compact.mp3
- session-cleared.mp3
- session-end.mp3
- session-forked.mp3
- session-resumed.mp3
- session-start.mp3
- session-startup.mp3
- setup-init.mp3
- setup-maintenance.mp3
- setup-ready.mp3
- shell-done.mp3
- shell-starting.mp3
- stop-failure.mp3
- subagent-complete.mp3
- subagent-start.mp3
- tab-edit.mp3
- task-complete.mp3
- task-created.mp3
- task-progress.mp3
- task-starting.mp3
- team-task-done.mp3
- teammate-idle.mp3
- thinking-done.mp3
- tool-failed.mp3
- workspace-open.mp3
- worktree-removed.mp3
- audio-hooks
- audio-hooks-statusline
- audio-hooks-statusline.cmd
- audio-hooks-statusline.py
- audio-hooks-subagent-statusline.py
- audio-hooks.cmd
- audio-hooks.py
- hooks.json
- plugin-hooks.json
- _defaults_baseline.json
- audio_manifest.json
- default_preferences.json
- example_preferences_chimes.json
- example_preferences_mixed.json
- user_preferences.json
- user_preferences.schema.json
- hooks.json
- plugin-installed.png
- plugin-marketplace-detail.png
- skill-registration.png
- statusline-context-monitor.png
- 2026-05-01-painless-upgrades-plan.md
- 2026-05-01-painless-upgrades-design.md
- ARCHITECTURE.md
- CLI_REFERENCE.md
- EVENT_BEHAVIOR_NOTES.md
- INSTALLATION_GUIDE.md
- NATURAL_LANGUAGE_CONTROL.md
- STATUS_LINE.md
- TROUBLESHOOTING.md
- path_utils.sh
- hook_runner.py
- invoker.py
- user_preferences.py
- plugin.json
- plugin.json
- chime-agent-response.mp3
- chime-batch-complete.mp3
- chime-config-change.mp3
- chime-cwd-changed.mp3
- chime-dir-added-repo-root.mp3
- chime-dir-added-slash.mp3
- chime-directory-added.mp3
- chime-elicitation-result.mp3
- chime-elicitation.mp3
- chime-end-clear.mp3
- chime-end-exit.mp3
- chime-end-logout.mp3
- chime-end-resume.mp3
- chime-fail-account-hold.mp3
- chime-fail-auth.mp3
- chime-fail-billing.mp3
- chime-fail-invalid-request.mp3
- chime-fail-max-tokens.mp3
- chime-fail-model-not-found.mp3
- chime-fail-oauth-org.mp3
- chime-fail-overloaded.mp3
- chime-fail-rate-limit.mp3
- chime-fail-server-error.mp3
- chime-fail-unknown.mp3
- chime-file-changed.mp3
- chime-file-read.mp3
- chime-instructions-loaded.mp3
- chime-mcp-done.mp3
- chime-mcp-starting.mp3
- chime-message-display.mp3
- chime-notif-agent-completed.mp3
- chime-notif-agent-needs-input.mp3
- chime-notif-auth-success.mp3
- chime-notif-computer-use-enter.mp3
- chime-notif-computer-use-exit.mp3
- chime-notif-elicitation-complete.mp3
- chime-notif-elicitation-dialog.mp3
- chime-notif-elicitation-response.mp3
- chime-notif-elicitation-url.mp3
- chime-notif-idle-prompt.mp3
- chime-notif-permission-prompt.mp3
- chime-notif-push.mp3
- chime-notif-quota-disabled.mp3
- chime-notif-quota-resumed.mp3
- chime-notif-quota-stale.mp3
- chime-notif-worker-permission.mp3
- chime-notification-info.mp3
- chime-notification-urgent.mp3
- chime-permission-denied.mp3
- chime-permission-request.mp3
- chime-post-compact.mp3
- chime-postcompact-auto.mp3
- chime-postcompact-manual.mp3
- chime-pre-compact.mp3
- chime-precompact-auto.mp3
- chime-precompact-manual.mp3
- chime-prompt-expanded.mp3
- chime-prompt-received.mp3
- chime-session-after-compact.mp3
- chime-session-cleared.mp3
- chime-session-end.mp3
- chime-session-forked.mp3
- chime-session-resumed.mp3
- chime-session-start.mp3
- chime-session-startup.mp3
- chime-setup-init.mp3
- chime-setup-maintenance.mp3
- chime-setup-ready.mp3
- chime-shell-done.mp3
- chime-shell-starting.mp3
- chime-stop-failure.mp3
- chime-subagent-complete.mp3
- chime-subagent-start.mp3
- chime-tab-edit.mp3
- chime-task-complete.mp3
- chime-task-created.mp3
- chime-task-progress.mp3
- chime-task-starting.mp3
- chime-team-task-done.mp3
- chime-teammate-idle.mp3
- chime-thinking-done.mp3
- chime-tool-failed.mp3
- chime-workspace-open.mp3
- chime-worktree-removed.mp3
- agent-response.mp3
- batch-complete.mp3
- config-change.mp3
- cwd-changed.mp3
- dir-added-repo-root.mp3
- dir-added-slash.mp3
- directory-added.mp3
- elicitation-result.mp3
- elicitation.mp3
- end-clear.mp3
- end-exit.mp3
- end-logout.mp3
- end-resume.mp3
- fail-account-hold.mp3
- fail-auth.mp3
- fail-billing.mp3
- fail-invalid-request.mp3
- fail-max-tokens.mp3
- fail-model-not-found.mp3
- fail-oauth-org.mp3
- fail-overloaded.mp3
- fail-rate-limit.mp3
- fail-server-error.mp3
- fail-unknown.mp3
- file-changed.mp3
- file-read.mp3
- instructions-loaded.mp3
- mcp-done.mp3
- mcp-starting.mp3
- message-display.mp3
- notif-agent-completed.mp3
- notif-agent-needs-input.mp3
- notif-auth-success.mp3
- notif-computer-use-enter.mp3
- notif-computer-use-exit.mp3
- notif-elicitation-complete.mp3
- notif-elicitation-dialog.mp3
- notif-elicitation-response.mp3
- notif-elicitation-url.mp3
- notif-idle-prompt.mp3
- notif-permission-prompt.mp3
- notif-push.mp3
- notif-quota-disabled.mp3
- notif-quota-resumed.mp3
- notif-quota-stale.mp3
- notif-worker-permission.mp3
- notification-info.mp3
- notification-urgent.mp3
- permission-denied.mp3
- permission-request.mp3
- post-compact.mp3
- postcompact-auto.mp3
- postcompact-manual.mp3
- pre-compact.mp3
- precompact-auto.mp3
- precompact-manual.mp3
- prompt-expanded.mp3
- prompt-received.mp3
- session-after-compact.mp3
- session-cleared.mp3
- session-end.mp3
- session-forked.mp3
- session-resumed.mp3
- session-start.mp3
- session-startup.mp3
- setup-init.mp3
- setup-maintenance.mp3
- setup-ready.mp3
- shell-done.mp3
- shell-starting.mp3
- stop-failure.mp3
- subagent-complete.mp3
- subagent-start.mp3
- tab-edit.mp3
- task-complete.mp3
- task-created.mp3
- task-progress.mp3
- task-starting.mp3
- team-task-done.mp3
- teammate-idle.mp3
- thinking-done.mp3
- tool-failed.mp3
- workspace-open.mp3
- worktree-removed.mp3
- audio-hooks
- audio-hooks-statusline
- audio-hooks-statusline.cmd
- audio-hooks-statusline.py
- audio-hooks-subagent-statusline.py
- audio-hooks.cmd
- audio-hooks.py
- hooks.json
- plugin-hooks.json
- default_preferences.json
- hooks.json
- hook_runner.py
- hooks.json
- invoker.py
- user_preferences.py
- run.py
- SKILL.md
- echook-logo.svg
- test-path-utils.sh
- build-plugin.sh
- bump-version.sh
- generate-audio.py
- install-complete.sh
- install-windows.ps1
- uninstall.sh
- test_background_task_filter.py
- test_backup_cli.py
- test_backups.py
- test_codex_hooks.py
- test_codex_statusline.py
- test_cursor_bridge.py
- test_defaults_stability.py
- test_legacy_scripts_contract.py
- test_migration.py
- test_plugin_hooks_contract.py
- test_sanitize.py
- test_statusline.py
- test_terminal_sequence.py
- test_upgrade_command.py
- test_user_preferences.py
- test_variant_toggles.py
- .gitignore
- AGENTS.md
- CHANGELOG.md
- CLAUDE.md
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- GOVERNANCE.md
- LICENSE
- llms.txt
- README.md
- SECURITY.md
- SUPPORT.md
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Command Glossary
Commands referenced in this DOCs, explained below.
ffplay
View Details βΌ
ffplay
A simple and portable media player using the FFmpeg libraries and the SDL library.
ffplay {{path/to/file}}
Play a media file:
ffplay -nodisp {{path/to/file}}
Play audio from a media file without a GUI:
ffmpeg -i {{path/to/file}} -c {{copy}} -f {{media_format}} - | ffplay -
Play media passed by `ffmpeg` through `stdin`:
logout
View Details βΌ
logout
Exit a login shell.
logout
Exit a login shell:
logout {{exit_code}}
Exit a login shell and specify a return value:
python
View Details βΌ
python
Python language interpreter.
python
Start a REPL (interactive shell):
python {{path/to/file.py}}
Execute a specific Python file:
python -i {{path/to/file.py}}
Execute a specific Python file and start a REPL:
vim
View Details βΌ
vim
Vim (Vi IMproved), a command-line text editor, provides several modes for different kinds of text manipulation.
Pressing `<i>` in normal mode enters insert mode. Pressing `<Esc>` goes back to normal mode, which enables the use of Vim commands.
See also: `vimdiff`, `vimtutor`, `nvim`, `gvim`.
vim {{path/to/file}}
Open a file:
vim +{{line_number}} {{path/to/file}}
Open a file at a specified line number:
<:>help<Enter>
View Vim's help manual:
aplay
View Details βΌ
aplay
Sound player for ALSA soundcard driver.
aplay {{path/to/file}}
Play a specific file (sampling rate, bit depth, etc. will be automatically determined for the file format):
aplay {{[-d|--duration]}} 10 {{[-r|--rate]}} 2500 {{path/to/file}}
Play the first 10 seconds of a specific file at 2500 Hz:
aplay {{[-c|--channels]}} 1 {{[-t|--file-type]}} raw {{[-r|--rate]}} 22050 {{[-f|--format]}} mu_law {{path/to/file}}
Play the raw file as a 22050 Hz, mono, 8-bit, Mu-Law `.au` file:
mpg123
View Details βΌ
mpg123
Console MPEG audio player.
mpg123 {{path/to/file1.mp3 path/to/file2.mp3 ...}}
Play the specified mp3 files:
cat {{file.mp3}} | mpg123 -
Play the mp3 from `stdin`:
<f>
Jump forward to the next song:
afplay
View Details βΌ
afplay
Command-line audio player.
afplay {{path/to/file}}
Play a sound file (waits until playback ends):
afplay --rate {{2}} {{path/to/file}}
Play a sound file at 2x speed (playback rate):
afplay --rate {{0.5}} {{path/to/file}}
Play a sound file at half speed:
compact
View Details βΌ
compact
Display or change the compression state of files and directories on NTFS partitions.
compact
Display the compression status of files in the current directory:
compact /c {{path\to\file}}
Compress a specific file:
compact /u {{path\to\file}}
Uncompress a specific file:
