things-app
Things 3
Drive Things 3 (tasks, projects, areas) through whichever modality fits the environment. Prefer the things CLI whenever there's command-line access to Things — it reads and writes the local database directly, so it's fast and needs no network round-trip. Where there's no CLI access, the fallbacks are: a connected Things MCP (full read + write that syncs across devices, from anywhere), the things:/// URL scheme (any device with Things, write-only), and email-to-Things (unattended, Inbox-only capture).
A Things MCP — a self-hosted server, or an official one Cultured Code may ship — plays the role the CLI plays locally, but reachable from anywhere, so it's the first fallback when there's no command-line access. Match its tools by their things_* base names; the MCP host prepends its own namespace, so the full identifier varies by client.
Pick a modality first
| Modality | Read state? | Schedule & update? | Unattended? | From phone? |
|---|---|---|---|---|
CLI (things binary) |
Yes | Yes | On the Mac only | No |
URL scheme (things:///) |
No | Yes (update/json need auth token) |
No — someone must open the URL | Yes |
| Email-to-Things | No | No (Inbox capture only) | Yes | Yes (send an email) |
The real axis is attended vs unattended, not headless. A headless session someone is watching can still use the URL scheme — the agent prints the link, the user opens it. Only a routine with no one to act on its output is limited to email.
Decision rules: