Documentation

CLI commands

Full reference for the 8 ringly subcommands.

The ringly CLI has 8 subcommands. Run ringly help (or ringly --help) to see the list in your configured language.

ringly help

Prints the list of commands in the language set in pluginConfigs.ringly.options.language. Cyan box at the top, yellow warning that these commands run in the external terminal, list of the 7 subcommands with short descriptions.

ringly help
ringly --help
ringly -h

ringly init

Interactive installer (TUI). Performs everything from step 1: AUMID registration, Start Menu shortcut, initial settings.json write, and prints the step 2 command for you to paste into Claude Code.

ringly init

Flags

  • --non-interactive — apply defaults, no TUI (useful in CI)
  • --force — re-create shortcut and re-register AUMID even if already present

ringly config

Reconfigure interactively. Same TUI as init, minus the AUMID register. Arrow keys to navigate, space to toggle booleans, visual language picker. Writes atomically to settings.json with a timestamped backup.

ringly config

At the end, reminds you to run /reload-plugins in Claude Code so the active session picks up the new options.

ringly doctor

Diagnoses the local environment. Runs 9+ checks: Node version, platform, PowerShell, registered AUMID, valid settings.json, plugin installed, hooks registered, Start Menu shortcut, and test fire.

ringly doctor

Sample output:

✓ Node.js v22.14.0           (>= 20.0.0)
✓ Platform                   win32 x64
✓ PowerShell                 v5.1 detected
✓ AUMID registered           Claude.Code.CLI
✓ Claude Code settings       8 options set, en-US
✓ Plugin installed           ringly@0.6.0
✓ Hooks registered           5/5 active
✓ Start Menu shortcut        present
✓ Test fire                  toast displayed

9 passed · 0 warnings · 0 failed

ringly test

Fires a sample notification. Without flags, uses the Stop event and the configured language.

ringly test
ringly test --event Stop --lang en-US
ringly test --event Notification --title "Hello" --body "World"

Flags

  • --event <Stop|Notification|StopFailure|SubagentStop|SessionStart> — which event to simulate
  • --lang <auto|pt-BR|en-US> — force a language
  • --title <string> — override the title
  • --body <string> — override the body

Handy to debug whether something is blocking the toast (Focus Assist, wrong AUMID, etc.).

ringly update

Check npm and run the guided update.

ringly update              # interactive, visual box and confirmation
ringly update --check      # prints JSON {current, latest, hasUpdate, reachable, language, notes}
ringly update --yes        # skip prompt and install directly

--check is what the /ringly-update slash command consumes inside Claude Code. Detects EBUSY / EPERM / access is denied in the npm install stderr and swaps in a “close Claude Code and retry” message instead of dumping the raw error.

ringly uninstall

Removes the AUMID, Start Menu shortcut, and Ringly settings from settings.json (with automatic backup).

ringly uninstall
ringly uninstall --keep-config   # preserves pluginConfigs.ringly in settings.json

Does not uninstall the npm package itself (you’d do that with npm uninstall -g ringly) nor remove the plugin from Claude Code (use /plugin uninstall ringly).

ringly hook (internal)

Internal command used by the plugin dispatcher as a fallback when the Node module ringly/hook can’t be resolved. Accepts an event name as a positional argument and reads the JSON payload from stdin.

echo '{"hook_event_name":"Stop"}' | ringly hook Stop

Not documented in ringly help because it’s not meant for direct end-user use.

Edit on GitHub Last updated: 2026-05-26