First-class bilingual
192+ keys in full parity between pt-BR and en-US. Toast, TUI, CLI, doctor, update notes — everything respects the chosen language.
Claude terminou
Pronto pra próxima · meu-projeto
Claude finished
Ready for next · my-project
Native Windows toasts when Claude finishes, asks for permission, or fails. Translated, project-aware, installed in two commands.
$ claude
● Thinking...
Claude needs your attention
Waiting for you to confirm a permission · my-project
You ask Claude to run something, switch tabs, forget. Five minutes later you remember. You come back — it's been waiting four minutes for you to confirm a permission. Those five minutes add up.
Silent terminal
Native toast fires
You respond in seconds
192+ keys in full parity between pt-BR and en-US. Toast, TUI, CLI, doctor, update notes — everything respects the chosen language.
Claude terminou
Pronto pra próxima · meu-projeto
Claude finished
Ready for next · my-project
Real coverage, running in ~600ms via Vitest.
Hot path is standalone. The plugin works even without the npm package.
Every settings.json mutation writes to a temp file and atomically renames. No race conditions between the TUI and the hook.
ringly init registers the Claude.Code.CLI AUMID and creates the Start Menu shortcut. Without it, Windows 10/11 silences the toast.
Sanitized payloads, strings truncated at 500 chars, paths at 1024. Defense in depth.
Notification, Stop, StopFailure, SubagentStop, SessionStart. Each one has its own toggle and translation.
/ringly-update shows a friendly summary of what changed (read from CHANGELOG) before asking for confirmation.
/ringly-update
Update Ringly from 0.5.2 to 0.6.0?
· Friendly CHANGELOG summary
· Messages in your language
Open source, atomic writes, 163 tests, zero dependencies on the hot path.
No polling, no background daemon. Just Claude Code's official hooks, read by a 3kb zero-dep dispatcher.
Notification, Stop, StopFailure, SubagentStop, or SessionStart — any of the five official hooks.
The plugin registers the hooks and fires a ~3kb Node script with zero dependencies.
Resolved at runtime: language, enabled events, sound, debug. No cache, no restart, always fresh.
Node module ringly/hook → CLI binary on PATH → embedded PowerShell fallback. Silent failure, never breaks the session.
ToastNotificationManager builds the XML and fires through the Claude.Code.CLI AUMID registered by ringly init.
Each event fires a toast with a different tone and urgency. Toggle them individually through ringly config.
Claude requested permission or input. Pops up when you need to intervene.
Claude needs your attention
Waiting for you to reply · my-project
Claude finished responding. Time to review.
Claude finished
Ready for your next instruction · my-project
An API error ended the session. Good to know right away.
Claude's session stopped
An API error ended the session · my-project
A subagent finished. Off by default — turn on if you use them heavily.
Subagent finished
code-reviewer completed · my-project
Background update check, throttled to once a day.
Ringly 0.6.0 available
Run /ringly-update inside Claude Code to update.
Every TUI string, CLI message, doctor check, toast body, and guided-update line — all in pt-BR / en-US parity. Detected by system locale or set explicitly via ringly config.
Claude terminou
Pronto pra próxima instrução · meu-projeto
Claude finished
Ready for your next instruction · my-project
✓ Toast exibido com sucesso
9 passou · 0 avisos · 0 falhou
✓ Toast shown successfully
9 passed · 0 warnings · 0 failed
◉ Ringly · config · Eventos
↑ ↓ navegar · espaço alternar · enter salvar
◉ Ringly · config · Events
↑ ↓ navigate · space toggle · enter save
Built with
Windows 10/11 silences toasts from apps without a registered AUMID. That's why the npm step is required — it does the register. Skip it and you get a beep at best.
Registers the Claude.Code.CLI AUMID on Windows, creates the Start Menu shortcut, writes the initial config, and prints the step 2 command for you to paste.
$ npm install -g ringly $ ringly init
Registers the Notification, Stop, StopFailure, SubagentStop, and SessionStart hooks. Uses the AUMID already registered in step 1.
/plugin marketplace add nickdevcode/Ringly /plugin install ringly@ringly
Skipping either step is the only way the native toast won't show up. It's a Windows requirement, not a design choice.
Two commands, a clean TUI, and your desktop tells you instead of you constantly glancing at it.