with one click
things-setup
Connect Things 3 to Dex for bi-directional task sync
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Connect Things 3 to Dex for bi-directional task sync
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Process synced Granola meetings to update person pages, extract tasks, and organize meeting notes
Capture solved problems as categorized documentation with YAML frontmatter for fast lookup
Personal career coach with 4 modes: weekly reports, monthly reflections, self-reviews, promotion assessments
Generate a DexDiff methodology document from your vault customisations: package how you use Dex so others can replicate it
Rigorous whole-system checkup — verifies every Dex feature honestly (working / off / broken / couldn't-check), self-heals what is provably safe, and guides the user only where Dex cannot fix itself. Replaces /health-check.
Interactive post-onboarding tour with adaptive pathways based on available data
| name | things-setup |
| description | Connect Things 3 to Dex for bi-directional task sync |
| manifest | {"id":"things","auth":"none","category":"task_sync","platform":"macos","mcp_server":"things3-mcp"} |
Connect Things 3 to Dex for bi-directional task sync. No account needed. Everything stays on your Mac. Works offline.
Once connected, Dex can:
/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 cross-platform task sync, consider:
- /todoist-setup (works everywhere)
- /trello-setup (web-based)
Stop here.System/integrations/config.yamlthings.enabled: true, skip to Step 7 (Reconfigure)Run a quick AppleScript test:
osascript -e 'tell application "System Events" to (name of processes) contains "Things3"'
Or check if the app exists:
ls /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:{
"things3-mcp": {
"command": "npx",
"args": ["-y", "things3-mcp"],
"env": {}
}
}
Run a quick test to verify AppleScript access:
List Things Areas:
osascript -e 'tell application "Things3" to get name of areas'
List Things Projects:
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):
osascript -e 'tell application "Things3" to make new area with properties {name:"[pillar name]"}'
Then ask about sync behavior:
One more question: How should task sync work?
1. **Auto-sync** — Tasks sync automatically between Dex and Things
2. **Ask each time** — I'll confirm before syncing each task
Most people prefer auto-sync. Which do you want?
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.
things:
enabled: true
configured_at: YYYY-MM-DD
mcp_server: things3-mcp
auth_type: none
task_sync: true
sync_mode: auto
area_mapping:
[pillar_id]: [Things Area name] # one entry per pillar
features:
task_sync: true
external_task_merge: true
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 changes now:
- **/daily-plan** syncs tasks from Things into your morning plan
- **Task creation** in Dex mirrors to Things (P0/P1 → Today, P2/P3 → Anytime)
- **Task completion** syncs both ways — finish in either app
- **Pillars → Areas** keep your Things organized by Dex structure
No accounts. No tokens. No expiration. Works offline.
Tip: Tasks you create directly in Things will appear in your next /daily-plan.
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 a task is edited in both Dex and Things between syncs:
If the user runs /things-setup when already configured:
System/integrations/config.yamlIf user wants to disconnect:
System/integrations/config.yaml:
things:
enabled: false
/things-setup anytime to reconnect."