| name | managing-things3 |
| description | Reads and manages to-dos and projects in Things3 on macOS through AppleScript. Use when the user asks about Things3, their to-do list, tasks, projects, or task management. |
Managing Things3
Use the AppleScript scripts in scripts/ to read and manage to-dos, projects, and tags in Things3. These scripts require Things3 Automation permissions in System Settings > Privacy & Security > Automation.
View Today and Inbox
bash scripts/show-today.sh
bash scripts/show-inbox.sh
Shows all to-dos in the Today list or Inbox with project, tags, due dates, and notes preview.
List to-dos with filters
bash scripts/list-todos.sh --status open --limit 50
bash scripts/list-todos.sh --list "Today" --status open
bash scripts/list-todos.sh --list "Upcoming" --status open
bash scripts/list-todos.sh --list "Logbook" --status completed
bash scripts/list-todos.sh --project "Website Redesign" --status open
bash scripts/list-todos.sh --tag "urgent" --status open
bash scripts/list-todos.sh --project "Website Redesign" --tag "urgent" --status open
Built-in lists: Inbox, Today, Upcoming, Anytime, Someday, Logbook, Trash.
Search to-dos
bash scripts/search-todos.sh --query "meeting"
bash scripts/search-todos.sh --query "client" --include-completed
Searches to-dos by matching text in the name or notes fields.
Create to-dos
bash scripts/create-todo.sh --name "Call John"
bash scripts/create-todo.sh \
--name "Review PR" \
--notes "Check the authentication logic"
bash scripts/create-todo.sh \
--name "Submit report" \
--due "2026-07-25"
bash scripts/create-todo.sh \
--name "Fix bug" \
--tags "urgent,bug"
bash scripts/create-todo.sh \
--name "Design homepage" \
--project "Website Redesign"
bash scripts/create-todo.sh \
--name "Prepare slides" \
--schedule "2026-07-22"
bash scripts/create-todo.sh \
--name "Quick task" \
--list "Today"
bash scripts/create-todo.sh \
--name "Quarterly review" \
--notes "Prepare Q3 performance metrics" \
--due "2026-07-30" \
--tags "work,important" \
--project "Performance Review" \
--schedule "2026-07-28"
Complete to-dos
bash scripts/complete-todo.sh --id "to-do-id"
Marks a to-do as completed. Use the ID shown in list/search output.
Update to-dos
bash scripts/update-todo.sh --id "to-do-id" --set-name "New title"
bash scripts/update-todo.sh --id "to-do-id" --set-notes "Updated notes"
bash scripts/update-todo.sh --id "to-do-id" --set-due "2026-08-01"
bash scripts/update-todo.sh --id "to-do-id" --set-schedule "2026-07-25"
bash scripts/update-todo.sh --id "to-do-id" --set-status canceled
bash scripts/update-todo.sh --id "to-do-id" --clear-due
Move to-dos
bash scripts/move-todo.sh --id "to-do-id" --to-list "Today"
bash scripts/move-todo.sh --id "to-do-id" --to-project "New Project"
Moves a to-do to a different built-in list (Inbox, Today, Upcoming, Anytime, Someday, Logbook, Trash) or project.
Manage projects
bash scripts/list-projects.sh
bash scripts/create-project.sh --name "New Project" --area "Work"
bash scripts/update-project.sh --id "project-id" --set-name "Updated title" --set-notes "Project notes"
List tags
bash scripts/list-tags.sh
Lists all available tags in Things3.
Permissions
The first time these scripts run, macOS will prompt for Things3 Automation access. Grant access in System Settings > Privacy & Security > Automation > Things3.
Notes
- All to-do and project IDs are shown in list/search output
- Due dates use YYYY-MM-DD format
- Schedule values:
today, evening, tomorrow, someday, anytime, or YYYY-MM-DD
- Tags are comma-separated for the --tags parameter
- Use the status parameter to filter:
open, completed, canceled
complete-todo supports --dry-run to preview what would be completed
create-todo can use --project-id for more reliable project assignment than --project name
update-todo can use --name instead of --id to find by exact name
Prerequisites
- Things3 must be installed and running
- macOS Automation permission for Things3 in System Settings > Privacy & Security > Automation