skein_remind
Personal reminders on issues — your own alarm clock, invisible to everyone else. When remindAt passes, the scheduler pings you with a bell notification and the issue shows up in your ringing-reminders lens; state is derived from remindAt, armed (future) vs ringing (due), and a past remindAt rings on the next scheduler tick.
Multiple reminders per issue are allowed, so snooze and dismiss need a target: pass reminderId (from set or list), or issueId when you have exactly one active reminder on that issue — with more than one the error lists the candidates and you retry with reminderId. Read-only actions: list.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "skein_remind"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | Only read by snooze: relative offset from now — 1h | 1d | 3d | 5d | 1w (or the general <n><unit>, unit h|d|w). Exactly one of by / until. | |
| note | No | Optional free-form text attached to this action: on set it is the new reminder's own note (recorded as last_reason), on dismiss it is recorded on the dismiss event. | |
| state | No | Only read by list: filter — ringing | armed | all (default all). | |
| until | No | Only read by snooze: absolute RFC3339 instant to snooze to. Exactly one of by / until. | |
| action | Yes | What to do: - "set" → arm a new reminder on an issue at `remindAt`; each call creates a distinct one. - "list" → your reminders across projects, most urgent first, plus the ringing-task badge count. - "snooze" → push a reminder's ring time forward (`by` or `until`) so it rings again. - "dismiss" → delete a reminder for good; it will never ring again. | |
| reason | No | Only read by snooze: optional free-form note, recorded as the reminder's last_reason. | |
| issueId | No | Full hierarchical issue id, e.g. "sk-62" or "demo-42". Required for set — the issue the reminder is set on. On snooze and dismiss it is the alternative to `reminderId`: it targets your single active reminder on that issue, and errors with the candidate list when there is more than one. | |
| project | No | Only read by list: project handle (alias, name, or UUID) narrowing the returned list; `ringingTaskCount` stays the full cross-project badge. | |
| remindAt | No | RFC3339 timestamp at which the reminder should ring, e.g. 2026-06-01T09:00:00Z (stored UTC). Required for set. | |
| reminderId | No | Reminder UUID, as returned by set or list. The precise target for snooze and dismiss; supply it instead of issueId. |