Start a long Claude Code task, walk away, and get a text when it's done or when it's waiting for you — a permission prompt, a question, a finished run. Texts go only to your own verified phone; there's no way to send to anyone else.
It's on your account screen. No account yet? Start a free trial (50 alerts or 30 days) — then add your mobile number on the account screen.
Put the key in your shell profile (~/.bashrc, ~/.zshrc), not in a project file, so it never ends up in a repo:
export UX_KEY="YOUR_API_KEY"
Open a new terminal (or source the file) before starting Claude Code, so it sees the key.
Claude Code has hooks: commands it runs on certain events. The Notification event fires when Claude Code is waiting for you — idle for your next instruction (idle_prompt) or asking permission (permission_prompt). Add this to ~/.claude/settings.json (your user settings, all projects; merge it into an existing "hooks" section if you have one):
{
"hooks": {
"Notification": [
{
"matcher": "idle_prompt",
"hooks": [
{ "type": "command",
"command": "curl -s -X POST https://useralertx.com/cgi-bin/itmessages.cgi -H \"X-Api-Key: $UX_KEY\" --data-urlencode \"body=Claude Code is waiting for you\" >/dev/null" }
]
},
{
"matcher": "permission_prompt",
"hooks": [
{ "type": "command",
"command": "curl -s -X POST https://useralertx.com/cgi-bin/itmessages.cgi -H \"X-Api-Key: $UX_KEY\" --data-urlencode \"body=Claude Code needs your permission\" >/dev/null" }
]
}
]
}
}
Why not the Stop hook? Stop fires at the end of every reply, so in a normal back-and-forth it would text you constantly and run into the per-hour limit below. Notification only fires when Claude Code actually needs you.
Add the UserAlertX connector so Claude Code can send an alert as a tool, with its own words:
claude mcp add --transport http useralertx https://useralertx.com/mcp --header "Authorization: Bearer $UX_KEY"
Then ask, in a prompt or in your project's CLAUDE.md:
When you finish a long task, text me a one-line summary via UserAlertX. Before deleting files or deploying, ask my approval via UserAlertX first.
The connector has send_sms_to_me plus request_approval / confirm_approval: Claude Code texts you a 6-digit code and goes ahead only after you give it back.
No connector? Claude Code can run the same one-line curl as above — just tell it to.
In a terminal:
curl -X POST https://useralertx.com/cgi-bin/itmessages.cgi \ -H "X-Api-Key: $UX_KEY" --data-urlencode "body=Hello from Claude Code"
The first text may be held until you reply START to the one-time text UserAlertX sends you — after that, alerts go straight through.