Automated summary
Manage Things 3 tasks using natural language commands on macOS.
Strengths
- Native integration with the Things 3 app
- Allows adding, searching, listing, and completing tasks
- Smart detection of real tasks vs abstract concepts
Limitations
- macOS only
- Requires Things 3 app to be installed
- Relies on sub-skills for specific operations
Use this skill when the user is on macOS and wants to manage Things 3 tasks via the command line.
Avoid using it on Windows/Linux or if the user mentions other task apps like Todoist or OmniFocus.
Security analysis
SafeThe skill uses local Bash and Python to interact with the Things 3 macOS app via database reads and URL schemes. No network calls, destructive commands, or exfiltration. All operations are user-initiated and scoped to the local machine.
No concerns found
How this analysis is madeExamples
Add a task to write blog post due tomorrowWhat's on my plate today?Mark task with UUID 'ABC-123' as donename: things-3-manager description: "macOS only: Manage Things 3 tasks - add, search, list, and complete tasks using natural language. Requires Things 3 app installed." version: 2.0.0 location: user allowed-tools: [Bash, Read, Write]
Things 3 Task Management (macOS Only)
Manage your Things 3 tasks through natural language. This skill dispatches to focused sub-skills for specific operations.
Platform: macOS only (Things 3 is a Mac app)
When to Apply
Use this skill when:
- User is on macOS with Things 3 installed
- User wants to add/create tasks or projects
- User wants to view today's tasks or inbox
- User wants to search for tasks
- User wants to complete/mark tasks as done
Do NOT use when:
- User is on Windows/Linux (Things 3 not available)
- User mentions other task apps (Todoist, OmniFocus, etc.)
Sub-Skills
| Intent | Sub-Skill | Example |
|--------|-----------|---------|
| Add tasks | skills/add-task.md | "Add task to write blog post" |
| View today | skills/list-today.md | "What's on my plate today?" |
| View inbox | skills/list-inbox.md | "Show my inbox" |
| Search tasks | skills/search.md | "Find tasks tagged urgent" |
| Complete tasks | skills/complete-task.md | "Mark task ABC-123 done" |
Quick Reference
Library Imports
import os, sys
sys.path.insert(0, os.path.expanduser('~/.claude/skills/things/lib'))
from reader import ThingsReader # Database queries
from writer import ThingsWriter # URL scheme operations
from helpers import ThingsFormatter # Display formatting
Common Operations
# List tasks
tasks = ThingsReader.get_today()
tasks = ThingsReader.get_inbox()
tasks = ThingsReader.search(query="blog", status="incomplete")
# Add task
ThingsWriter.add_task(title="New task", when="today", tags=["work"])
# Complete task
ThingsWriter.complete_task("task-uuid")
# Format output
print(ThingsFormatter.format_task_list(tasks, verbose=True, show_uuid=True))
Setup
See README.md for installation and configuration instructions.
Quick install:
cd ~/.claude/skills/things && pip3 install -r requirements.txt
Identifying Discrete Tasks
IMPORTANT: Not everything that looks like an action item should become a Things task. Apply these filters:
✅ Create Tasks For
Discrete actions with clear completion:
- "Deliver plan by Jan 17"
- "Schedule meeting with X"
- "Send email to Y about Z"
- "Review document and provide feedback"
- "Update spreadsheet with Q4 data"
- "Create presentation for board meeting"
Characteristics of real tasks:
- Has a verb + specific object
- Can be marked "done" at a point in time
- Usually has a deadline or timeframe
- Represents single deliverable or interaction
❌ Do NOT Create Tasks For
Strategic mindsets / ongoing approaches:
- "Own entire product mentality"
- "Feel pain when platform inconsistent"
- "Think about cross-product-line value"
- "Be more responsive"
- "Pick more fights"
Framing guidance / communication style:
- "Frame work using X framing"
- "Apply Y test measurement"
- "Use Z terminology when discussing"
- "Position work as competitive necessity"
Conceptual frameworks:
- "Prioritize by user exposure"
- "Focus on crawl-walk-run"
- "Consider frequency × breadth"
Why these aren't tasks:
- No discrete completion point
- Ongoing mental models or approaches
- How to think/communicate, not what to do
- Can't check off as "done"
Examples from Real Meetings
From "Jeff - deliver these 7 things":
| Item | Real Task? | Reasoning | |------|-----------|-----------| | "Deliver plan by Jan 17" | ✅ Yes | Discrete deliverable with deadline | | "Frame all work using X framing" | ❌ No | Communication style, not action | | "Apply Jeff Bell Test measurement" | ❌ No | Ongoing evaluation approach | | "Own entire product mentality" | ❌ No | Mindset shift, not discrete action | | "Schedule 3-hour working session" | ✅ Yes | Specific action with completion | | "Prioritize by user exposure" | ❌ No | Prioritization framework | | "Figure out skeleton key scope" | ⚠️ Maybe | Could be discrete if time-boxed research task |
When Uncertain
Ask yourself:
- Can I mark this "done" at a specific moment? If no → not a task
- Does this have a verb + deliverable? If no → not a task
- Is this how to think vs what to do? If "how to think" → not a task
- Would completing this once be sufficient? If no (ongoing) → not a task
Exceptions:
- "Figure out X" CAN be a task if it's time-boxed research with deliverable (e.g., "Spend 2 hours figuring out skeleton key scope, write up findings")
- "Review X and decide Y" CAN be a task (discrete decision point)
Dispatching
When user requests Things 3 operations:
- Identify intent from natural language
- Filter for discrete tasks (see "Identifying Discrete Tasks" above)
- Read the appropriate sub-skill for detailed instructions
- Execute using the library functions
- Report results clearly to user
Intent Mapping
| User Says | Intent | Action |
|-----------|--------|--------|
| "Add...", "Create task...", "New task..." | Add | Read skills/add-task.md |
| "What's today?", "Show today", "My tasks" | List Today | Read skills/list-today.md |
| "Inbox", "What needs organizing?" | List Inbox | Read skills/list-inbox.md |
| "Find...", "Search...", "Show tasks with..." | Search | Read skills/search.md |
| "Complete...", "Done...", "Finished..." | Complete | Read skills/complete-task.md |
Limitations
- macOS only - Things 3 database only exists on Mac
- No iOS sync - Cannot access Things on mobile
- Auth token needed for completing tasks (see README.md)
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/things-3-task-manager-mm5t8b7t/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/things-3-task-manager-mm5t8b7t' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/things-3-task-manager-mm5t8b7t/download' --output '.skill-downloads/things-3-task-manager-mm5t8b7t/SKILL.md.part' && mv '.skill-downloads/things-3-task-manager-mm5t8b7t/SKILL.md.part' '.skill-downloads/things-3-task-manager-mm5t8b7t/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: Quick Reference
Library Imports
import os, sys
sys.path.insert(0, os.path.expanduser('~/.claude/skills/things/lib'))
from reader import ThingsReader # Database queries
from writer import ThingsWriter # URL scheme operations
from helpers import ThingsFormatter # Display formatting
Common Operations
# List tasks
tasks = ThingsReader.get_today()
tasks = ThingsReader.get_inbox()
tasks = ThingsReader.search(query="blog", status="incomplete")
# Add task
ThingsWriter.add_task(title="New task", when="today", tags=["work"])
# Complete task
ThingsWriter.complete_task("task-uuid")
# Format output
print(ThingsFormatter.format_task_list(tasks, verbose=True, show_uuid=True))
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/things-3-task-manager-mm5t8b7t/SKILL.md' && test -s '.skill-downloads/things-3-task-manager-mm5t8b7t/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/things-3-manager' && cp -R '.skill-downloads/things-3-task-manager-mm5t8b7t' '.claude/skills/things-3-manager'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/things-3-task-manager-mm5t8b7t'openskills read 'things-3-task-manager-mm5t8b7t'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/things-3-task-manager-mm5t8b7t/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
PDF Reader
Productivity
Read and extract text from PDF files, including documents, reports, contracts, and spreadsheets. Works with local files, URLs, and WhatsApp attachments. Use whenever PDF content is needed, even if not explicitly requested.
Discord Messaging Workflows
Productivity
Use the message tool to send, edit, and moderate Discord messages with interactive components.
Interactive Verdict Preview
Productivity
Generate an interactive HTML preview of keep/drop verdicts for maintainer review, then process the pasted feedback JSON.