
I built a Things 3 CLI for agents and automation
I built things3-cloud, a CLI for Things 3 (written in rust) that talks directly to the Things Cloud API!
The main reason I made it was so agents like Claude Code or Codex could interact with my Things tasks directly, without relying on local workarounds like AppleScript, Shortcuts, URL schemes, or reading the local database. it syncs its changes to the cloud immediately after each command. Though, to be fair, reverse-engineering the Things Cloud API is also its own kind of hacky.
I’ve been using it for the last few months and it has been pretty stable. It supports the main workflows I wanted from an agent or terminal:
things3 today
things3 find --query "rent" --deadline "<=2026-03-31"
things3 new "Follow up with team" --when today
things3 schedule <task-id> --deadline 2026-04-10
things3 mark <task-id> --done
It can create/edit tasks, manage projects/areas/tags, update checklists, search tasks, and sync through Things Cloud with a local cache for fast startup.
A few warnings: this uses an unofficial/reversed API, so use it at your own risk. Earlier on, I hit a few cases where an incorrect API payload confused the official clients and effectively froze Things Cloud access with a misleading “you need to upgrade” message. It was recoverable by disabling/re-enabling Things Cloud and replacing the cloud data from a local client, but it was definitely scary. I think I’ve squashed those issues now.
I’m also not 100% sure it will work for everyone’s cloud history. Older Things users may have older data in their cloud database that I didn’t encounter while reversing the protocol. If you try it and run into problems, please let me know.
Repo: https://github.com/evanpurkhiser/things3-cloud
Curious if other Things users have wanted something similar, especially for AI-agent workflows. Happy to answer questions in the comments.