Things 3 Task Manager
Interact with Things 3 to manage your personal tasks on Mac. Create, read, update, and navigate tasks, projects, and lists using JXA and URL schemes.
name: Things description: Interacting with Things 3 task manager for Mac. Use when working with the user's personal todos, tasks, projects, areas, tags, or task lists (inbox, today, upcoming, etc.). Supports creating, reading, updating, and navigating tasks. allowed-tools: [Bash(osascript:), Bash(open:), Read]
Things 3 Task Manager
Interact with Things 3, the user's personal task manager for Mac.
Quick Start
Read operations: Use TypeScript with esbuild to write type-safe JXA code via scripts/run-jxa.sh
Write operations: Use things:// URL schemes (things:///add, things:///update, things:///json)
Auth token: security find-generic-password -a "$USER" -s "things-auth-token" -w (see @1password.md for setup)
Common Commands
Read today's todos:
scripts/run-jxa.sh 'const app = Application("Things3"); const today = app.lists.byId("TMTodayListSource"); JSON.stringify(today.toDos().map(t => ({id: t.id(), name: t.name()})), null, 2);'
Create a todo:
open "things:///add?title=Task%20name&when=today&tags=Work"
Update a todo:
auth_token=$(security find-generic-password -a "$USER" -s "things-auth-token" -w)
open "things:///update?id=ABC-123&auth-token=$auth_token&append-notes=Additional%20info"
Navigate to today:
open "things:///show?id=today"
Built-in List IDs
TMInboxListSource- InboxTMTodayListSource- TodayTMNextListSource- AnytimeTMCalendarListSource- UpcomingTMSomedayListSource- SomedayTMLogbookListSource- Logbook
When Values
today,tomorrow,eveninganytime,somedayyyyy-mm-dd(specific date)- Natural language: "in 3 days", "next week"
Status Values (JXA)
open- Active todocompleted- Completedcanceled- Canceled
Documentation
Load detailed guides as needed:
- setup.md - TypeScript/JXA development setup, array conversion, running scripts
- examples.md - Comprehensive usage examples for all operations
- jxa.md - Complete JXA object model and API reference
- url-scheme.md - URL scheme commands and parameters
- 1password.md - Auth token setup and keychain configuration
- troubleshooting.md - Common issues, best practices, repeating task detection
Essential Tips
- URL encoding: Always URL-encode parameters (spaces →
%20, newlines →%0a) - Verification: ALWAYS verify updates succeeded by reading back the todo with JXA
- Repeating tasks: Filter by comparing
creationDateto midnight (see troubleshooting.md) - TypeScript mode: Use
scripts/run-jxa.shfor type-safe JXA with autocomplete
Related skills
Task Prioritizer
Prioritizes your tasks using Eisenhower, ICE, and RICE frameworks.
Weekly Status Report Generator
Generate structured and concise weekly status reports.
Daily Standup Report
Generates structured and concise daily standup reports.