Things 3 Task Manager

VerifiedSafe

Manage Things 3 tasks on macOS using natural language commands. Add, search, list, and complete tasks through an integration with the Things 3 app. Helpful for users who rely on Things 3 as their task manager and want to interact with it via an AI assistant.

Sby Skills Guide Bot
ProductivityIntermediate
6/2/2026
Claude Code
#things-3#task-management#macos#gtd

Recommended for

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
When to use it

Use this skill when the user is on macOS and wants to manage Things 3 tasks via the command line.

When not to use it

Avoid using it on Windows/Linux or if the user mentions other task apps like Todoist or OmniFocus.

Security analysis

Safe
Quality score95/100

The 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 made

Examples

Add a task
Add a task to write blog post due tomorrow
View today's tasks
What's on my plate today?
Complete a task
Mark task with UUID 'ABC-123' as done

name: 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:

  1. Can I mark this "done" at a specific moment? If no → not a task
  2. Does this have a verb + deliverable? If no → not a task
  3. Is this how to think vs what to do? If "how to think" → not a task
  4. 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:

  1. Identify intent from natural language
  2. Filter for discrete tasks (see "Identifying Discrete Tasks" above)
  3. Read the appropriate sub-skill for detailed instructions
  4. Execute using the library functions
  5. 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 files

This 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.md

From 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 installation
openskills 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 sync

Manual 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.

Related skills