{"skill":{"slug":"rtm","displayName":"Remember The Milk","summary":"Manage Remember The Milk tasks — list, add, complete, delete, search, prioritize, tag, move, and annotate tasks with notes. Use when the user asks about tasks, todos, to-do lists, reminders, or Remember The Milk.","description":"---\nname: rtm\ndescription: Manage Remember The Milk tasks — list, add, complete, delete, search, prioritize, tag, move, and annotate tasks with notes. Use when the user asks about tasks, todos, to-do lists, reminders, or Remember The Milk.\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🐄\",\n        \"requires\":\n          {\n            \"env\": [\"RTM_API_KEY\", \"RTM_SHARED_SECRET\"],\n          },\n        \"credentials\":\n          {\n            \"env\": [\"RTM_API_KEY\", \"RTM_SHARED_SECRET\"],\n            \"files\": [\"~/.rtm_token\"],\n          },\n      },\n  }\n---\n\n# Remember The Milk\n\nCLI tool at `scripts/rtm.py` for full RTM task management. Stdlib only — no pip dependencies.\n\n## Setup\n\n1. Get API credentials at https://www.rememberthemilk.com/services/api/keys.rtm\n2. Set env vars `RTM_API_KEY` and `RTM_SHARED_SECRET` (via OpenClaw config `skills.entries.rtm.env`)\n3. Run `scripts/rtm.py auth` — opens a URL, authorize, press Enter. Token saves to `~/.rtm_token`\n\n**Sub-agents:** Env vars are not inherited. Pass them explicitly:\n```bash\nRTM_API_KEY=... RTM_SHARED_SECRET=... python3 scripts/rtm.py <command>\n```\n\n## Security\n\n- **Env vars:** `RTM_API_KEY` and `RTM_SHARED_SECRET` are required at runtime. Configure via OpenClaw skill env, not hardcoded.\n- **Auth token:** Stored as plain text at `~/.rtm_token` after interactive auth. This file grants full access to the linked RTM account. Protect it accordingly — restrict file permissions (`chmod 600`) or remove after use if not needed persistently.\n- **Network:** All API calls go to `api.rememberthemilk.com` and `www.rememberthemilk.com` only. No other outbound connections.\n- **Permissions:** The auth flow requests `delete` permission (RTM's highest tier) to support task deletion. Use a dedicated API key with minimum needed scope if preferred.\n\n## Commands\n\n```bash\n# Auth (interactive, one-time)\nscripts/rtm.py auth\n\n# Lists\nscripts/rtm.py lists              # show active lists\nscripts/rtm.py lists --all        # include archived\n\n# Tasks\nscripts/rtm.py tasks                          # all incomplete\nscripts/rtm.py tasks --list LIST_ID           # filter by list\nscripts/rtm.py tasks --filter \"priority:1\"    # RTM filter syntax\nscripts/rtm.py tasks --no-notes               # hide notes\n\n# Add (--parse enables Smart Add for dates/tags/priority)\nscripts/rtm.py add \"Buy groceries\" --list LIST_ID --parse\n# Smart Add: \"Buy milk ^tomorrow #shopping !1\" sets due, tag, priority\n\n# Complete / Delete\nscripts/rtm.py complete LIST_ID SERIES_ID TASK_ID\nscripts/rtm.py delete LIST_ID SERIES_ID TASK_ID\n\n# Priority (1=high, 2=medium, 3=low, N=none)\nscripts/rtm.py set-priority LIST_ID SERIES_ID TASK_ID 1\n\n# Due date (natural language parsed by RTM)\nscripts/rtm.py set-due LIST_ID SERIES_ID TASK_ID \"next friday\"\n\n# Move between lists\nscripts/rtm.py move FROM_LIST_ID TO_LIST_ID SERIES_ID TASK_ID\n\n# Tags\nscripts/rtm.py add-tags LIST_ID SERIES_ID TASK_ID \"tag1,tag2\"\n\n# Search (RTM filter syntax)\nscripts/rtm.py search \"tag:work AND status:incomplete\"\n\n# Notes\nscripts/rtm.py notes-add LIST_ID SERIES_ID TASK_ID \"text\" --title \"Title\"\nscripts/rtm.py notes-delete NOTE_ID\n```\n\n## Task output format\n\nTask output includes IDs needed for write operations:\n```\n  Task Name [P1] (due: 2025-03-15) #tag1 #tag2\n    list=12345 series=67890 task=11111\n    📝 Note Title (note_id=99999)\n    Note body text here\n```\n\n## RTM filter syntax\n\nCommon filters: `status:incomplete`, `priority:1`, `tag:tagname`, `due:today`, `dueBefore:tomorrow`, `list:Inbox`, `isTagged:true`, `addedWithin:\"1 week\"`. Combine with `AND`, `OR`, `NOT`.\n\nFull reference: https://www.rememberthemilk.com/help/answers/search/advanced.rtm\n\n## Reliability\n\n- All API calls have a 15-second timeout with automatic retry (up to 3 attempts with backoff)\n- Transient network errors are retried; permanent API errors exit immediately\n- Write operations (add, complete, delete, etc.) auto-create timelines\n","tags":{"latest":"1.1.0"},"stats":{"comments":2,"downloads":1305,"installsAllTime":49,"installsCurrent":0,"stars":3,"versions":2},"createdAt":1770882898380,"updatedAt":1778488070529},"latestVersion":{"version":"1.1.0","createdAt":1770883220993,"changelog":"Address security review: declare required env vars and token file in metadata, add security section documenting credential handling, token storage, network scope, and permission level.","license":null},"metadata":{"setup":[{"key":"RTM_API_KEY","required":true},{"key":"RTM_SHARED_SECRET","required":true}],"os":null,"systems":null},"owner":{"handle":"maxdraki","userId":"s17f6d2p4zq3jvbz02rapseaj5885ej5","displayName":"maxdraki","image":"https://avatars.githubusercontent.com/u/3703338?v=4"},"moderation":null}