Things 3 Task Management
This skill enables interaction with Things 3 on macOS using AppleScript. It provides scripts for creating, reading, updating, and deleting tasks, projects, areas, and tags.
Prerequisites
- •Things 3 must be installed on macOS
- •AppleScript permissions must be granted to the terminal
Core Concepts
Built-in Lists
Things 3 has these built-in lists:
- •Inbox - Default landing spot for new tasks
- •Today - Tasks scheduled for today
- •Upcoming - Tasks with future dates
- •Anytime - Tasks available anytime (no specific date)
- •Someday - Tasks for later consideration
- •Logbook - Completed tasks
- •Trash - Deleted items
Task Properties
To-dos can have:
- •
name- Task title (required) - •
notes- Additional details - •
due date- When the task is due - •
when date- When to start/show the task - •
tag names- Comma-separated tags - •
status- open, completed, or canceled
Organization Hierarchy
- •Areas - High-level life categories (Work, Personal, Health)
- •Projects - Collections of related tasks with a goal
- •To-dos - Individual actionable items
Available Scripts
All scripts are in scripts/ directory and output JSON for easy parsing.
Task Operations
create-todo.sh
Create a new to-do in Things 3.
~/.claude/skills/things3/scripts/create-todo.sh "Task name" ["notes"] ["due:YYYY-MM-DD"] ["tags:tag1,tag2"] ["list:Today|Inbox|..."] ["project:ProjectName"]
list-todos.sh
List to-dos from a specific list or project.
~/.claude/skills/things3/scripts/list-todos.sh [list_name] # list_name: Today, Inbox, Upcoming, Anytime, Someday, or project/area name
update-todo.sh
Update properties of an existing to-do.
~/.claude/skills/things3/scripts/update-todo.sh "task name or id" ["name:New Name"] ["notes:New notes"] ["tags:tag1,tag2"]
complete-todo.sh
Mark a to-do as complete.
~/.claude/skills/things3/scripts/complete-todo.sh "task name or id"
delete-todo.sh
Move a to-do to trash.
~/.claude/skills/things3/scripts/delete-todo.sh "task name or id"
move-todo.sh
Move a to-do to a different list, project, or area.
~/.claude/skills/things3/scripts/move-todo.sh "task name or id" "destination" # destination: Today, Inbox, Someday, project name, or area name
schedule-todo.sh
Schedule a to-do for a specific date.
~/.claude/skills/things3/scripts/schedule-todo.sh "task name or id" "YYYY-MM-DD"
Project & Area Operations
create-project.sh
Create a new project.
~/.claude/skills/things3/scripts/create-project.sh "Project Name" ["notes"] ["area:AreaName"] ["tags:tag1,tag2"]
create-area.sh
Create a new area.
~/.claude/skills/things3/scripts/create-area.sh "Area Name"
Tag Operations
create-tag.sh
Create a new tag.
~/.claude/skills/things3/scripts/create-tag.sh "Tag Name" ["parent:ParentTagName"]
UI Operations
show-todo.sh
Show and select a to-do in Things 3 UI.
~/.claude/skills/things3/scripts/show-todo.sh "task name or id"
Common Workflows
Add a task to Today
~/.claude/skills/things3/scripts/create-todo.sh "Review quarterly report" "Check sales figures" "list:Today"
Create a project with tasks
# Create the project ~/.claude/skills/things3/scripts/create-project.sh "Website Redesign" "Complete by Q2" # Add tasks to it ~/.claude/skills/things3/scripts/create-todo.sh "Design mockups" "" "" "" "project:Website Redesign" ~/.claude/skills/things3/scripts/create-todo.sh "Review with stakeholders" "" "" "" "project:Website Redesign"
Schedule a task for next week
~/.claude/skills/things3/scripts/create-todo.sh "Prepare presentation" "" "due:2025-01-03"
Complete and clean up
~/.claude/skills/things3/scripts/complete-todo.sh "Review quarterly report"
Error Handling
All scripts return JSON with:
- •
success: boolean indicating operation result - •
message: description of what happened - •
data: relevant data (task info, list of tasks, etc.)
Example success:
{"success": true, "message": "Task created", "data": {"name": "My Task", "id": "ABC123"}}
Example error:
{"success": false, "message": "Task not found", "data": null}
Additional Resources
Reference Files
- •
references/applescript-api.md- Complete Things 3 AppleScript API documentation