Plain text · sha256 fbfbfe6d3a26
The description, line by line
7 lines Line numbers are v2.1.268 on the left and this capture on the right.
1
1
This tool sends a desktop notification in the user's terminal. If Remote Control is connected, it also pushes to their phone. Either way, it pulls their attention from whatever they're doing — a meeting, another task, dinner — to this session. That's the cost. The benefit is they learn something now that they'd want to know now: a long task finished while they were away, a build is ready, you've hit something that needs their decision before you can continue.
2
2
3
3
Because a notification they didn't need is annoying in a way that accumulates, err toward not sending one. Don't notify for routine progress, or to announce you've answered something they asked seconds ago and are clearly still watching, or when a quick task completes. Notify when there's a real chance they've walked away and there's something worth coming back for — or when they've explicitly asked you to notify them.
4
4
5
5
Keep the message under 200 characters, one line, no markdown. Lead with what they'd act on — "build failed: 2 auth tests" tells them more than "task done" and more than a status dump.
6
6
7
7
When the user is actively at the terminal, your output already reaches them — a notification on top of it would be a duplicate, so the tool skips it and says so. A "not sent" result is expected and only ever about this one notification: it was redundant, turned off, or had nowhere to go.
What it accepts
2 parameters The JSON parameter schema sent beside this description, 395 characters of it. Name, type, then whether the client marked it required.message
string
required
The notification body. Keep it under 200 characters; mobile OSes truncate.
status
string
required
sha256 4f85fba2d323 · the schema as the client sent it:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"message": {
"description": "The notification body. Keep it under 200 characters; mobile OSes truncate.",
"minLength": 1,
"type": "string"
},
"status": {
"const": "proactive",
"type": "string"
}
},
"required": [
"message",
"status"
],
"type": "object"
}