Todoist Watcher
@mgreten/todoist-watcherv2026.06.27.1
01README
Multi-machine Todoist task watcher and dispatcher: scans projects owned by the current machine for trigger-labelled tasks, respects per-project schedule windows, deduplicates work with TTL claims across machines, applies rate-limit backoff, and emits a structured dispatch list for a host executor.
02Models
@mgreten/todoist-watcherv2026.06.27.1todoist_watcher.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| machine | string | This machine's identity (used to claim tasks and filter projects) |
| tdPath | string | |
| tdTimeoutMs | number | |
| claimTtlSec | number | Auto-expire claims after this many seconds |
| timezone | string | IANA timezone for schedule window evaluation |
| projects | record | Todoist project name → config |
fn poll(dryRun: boolean)
Scan all projects owned by this machine for tasks with trigger labels.
| Argument | Type | Description |
|---|---|---|
| dryRun | boolean | Log dispatch list without claiming tasks |
fn claim(taskId: string, action: string)
Manually claim a task ID to prevent duplicate dispatch
| Argument | Type | Description |
|---|---|---|
| taskId | string | |
| action | string |
fn release(taskId: string)
Release a claim on a task (marks it as available for future polls)
| Argument | Type | Description |
|---|---|---|
| taskId | string |
fn recordRateLimit(taskId: string, provider: string)
Record a rate limit hit for backoff tracking
| Argument | Type | Description |
|---|---|---|
| taskId | string | |
| provider | string |
fn clearRateLimit(taskId: string)
Clear rate limit backoff for a task (on successful completion)
| Argument | Type | Description |
|---|---|---|
| taskId | string |
fn swapLabels(taskId: string, remove: array, add: array)
Atomically swap labels on a Todoist task (remove old, add new)
| Argument | Type | Description |
|---|---|---|
| taskId | string | |
| remove | array | |
| add | array |
fn comment(taskId: string, content: string)
Post a bot comment on a Todoist task
| Argument | Type | Description |
|---|---|---|
| taskId | string | |
| content | string |
Resources
pollResult(7d)— Structured output of a poll cycle — projects scanned, tasks found, dispatch list
claim(1d)— Task claim record for dedup across poll cycles and machines
rateLimit(1d)— Rate limit backoff state for a task/provider
03Previous Versions
2026.06.26.1Jun 27, 2026
Initial release: multi-machine Todoist task watcher and dispatcher (poll, claim, rate-limit backoff, label/comment helpers).
04Stats
A
100 / 100
Downloads
3
Archive size
15.9 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned
05Platforms