Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Connect Things 3 (macOS only) so Dex reads and updates your Things tasks. Use when the user says 'I use Things', 'sync my Things inbox', or pastes a `things://` link. Not for Todoist (`todoist-setup`) or Trello (`trello-setup`).
.claude/skills/davekilleen-things-setup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 71% | 0% |
Connect Things 3 so Dex can work with your Things tasks whenever you ask. No account needed. Everything stays on your Mac. Works offline.
What this enables (on request): Once connected, say "sync with Things" — Dex pushes new tasks to the right Things Area (mapped from your pillars), marks completions via AppleScript, and pulls tasks you completed or added to Things Inbox. Everything stays local — no network calls, no accounts. Sync runs on demand when you ask.
Once connected, you can ask Dex to:
/things-setup/integrate-mcp if Things is mentionedThings 3 is macOS only. Verify:
process.platform === 'darwin' or uname check) Things 3 is a macOS-only app. It won't work on this platform.
For a cross-platform task app connection, consider:
Stop here.
System/integrations/config.yamlthings.enabled: true, skip to Step 7 (Reconfigure)Run a quick AppleScript test:
bashosascript -e 'tell application "System Events" to (name of processes) contains "Things3"'
Or check if the app exists:
bashls /Applications/Things3.app 2>/dev/null || ls "$HOME/Applications/Things3.app" 2>/dev/null
If Things 3 is not found:
I can't find Things 3 on your Mac.
Things 3 is available from the Mac App Store:
https://apps.apple.com/app/things-3/id904280696
Once installed, run /things-setup again.Stop here.
If found:
Things 3 detected. This is the simplest integration to set up — no accounts or API keys needed.
Everything stays on your Mac and works offline. Ready?Wait for confirmation.
Check the user's MCP configuration. If things3-mcp is not listed:
I need to add the Things 3 connector to your Dex configuration.
This uses a lightweight AppleScript bridge — no accounts, no API keys.
It talks directly to Things 3 on your Mac..mcp.json:json{ "things3-mcp": { "command": "npx", "args": ["-y", "things3-mcp"], "env": {} } }
Run a quick test to verify AppleScript access:
bash osascript -e 'tell application "Things3" to get name of areas'
bash osascript -e 'tell application "Things3" to get name of projects'
If macOS prompts for AppleScript permission:
macOS is asking for permission to control Things 3. Click "OK" to allow.
This is a one-time prompt. Things 3 uses AppleScript for local communication —
no network access is involved.Show results:
Connection test passed.
Your Things 3 setup:
- Areas: [list of areas]
- Projects: [list of projects]If the test fails, jump to Troubleshooting.
First, read System/pillars.yaml and extract the user's pillar id and name fields. If pillars are empty/not yet configured, prompt the user to run /quarter-plan first.
Map Dex pillars to Things Areas:
Now let's map your Dex pillars to Things Areas.
Your Dex pillars (from System/pillars.yaml):
[list each pillar name, numbered]
Your Things Areas:
[list from Step 5]
I'll suggest a mapping — adjust if needed:
| Dex Pillar | Things Area |
|------------|-------------|
| [pillar 1 name] | [best match or "[pillar 1 name]"] |
| [pillar 2 name] | [best match or "[pillar 2 name]"] |
...
Does this mapping look right? I can create any missing Areas in Things.If areas don't exist, offer to create them (run once per missing pillar):
bashosascript -e 'tell application "Things3" to make new area with properties {name:"[pillar name]"}'
Write to System/integrations/config.yaml — update the things section. Build area_mapping dynamically from the user's pillars: use each pillar's id as the key and the confirmed Things Area name as the value (used when the user asks Dex to file something in Things under the right Area).
yamlthings: enabled: true configured_at: YYYY-MM-DD mcp_server: things3-mcp auth_type: none area_mapping: [pillar_id]: [Things Area name] # one entry per pillar
If the file already exists, only update the things: section. Preserve other integration configs.
Now that Things is connected, highlight what changes:
Things 3 is connected.
Here's what you can do now:
- **Ask about Things anytime** — "What's in my Today list?", "Put that in
Things", "Mark the deck task done in Things"
- **Bring it into planning** — during /daily-plan, ask me to include your
Things tasks and I will
- **Right Area, automatically** — when I file something in Things for you,
your pillars map to your Things Areas
- **Sync on demand** — say "sync Dex with Things" and Dex pushes pending tasks, marks
completions, and reviews anything new in your Things Inbox
No accounts. No tokens. No expiration. Works offline.
**Sync is on demand** — say "sync with Things" anytime. No background polling.Things 3 must be installed from the Mac App Store. It's a paid app (~$49.99). Once installed, run /things-setup again.
macOS may block AppleScript access. To fix:
Things 3 must be running for AppleScript to work. Open Things 3, then retry.
If no Areas appear during setup:
If the user runs /things-setup when already configured:
System/integrations/config.yamlIf user wants to disconnect:
System/integrations/config.yaml:yaml things: enabled: false
/things-setup anytime to reconnect."Other measured skills in the registry, with their headline benchmark lift.