About
things-cli is a small Go CLI for Things3 on macOS, written by Ryan Lewis.
How it works
- Reads go through
modernc.org/sqlite(pure Go, no cgo) withPRAGMA query_only = ON, so the CLI cannot mutate the Things database. - Writes go through the official
things:///addandthings:///updateURL schemes for creating and editing tasks, and through AppleScript for completing and cancelling them. This is the same interface Things exposes to Shortcuts and other automation tools. - Task resolution accepts a UUID, a title (with interactive disambiguation when multiple tasks match), or a numeric index into the last listing.
Your data never leaves the machine. Things3 stays the source of truth.
AI-friendly
Every command speaks JSON (-j / --json). A bundled agent skill ships inside the binary — install it once for Claude Code, Codex CLI, or Pi and your agent learns when to reach for things instead of guessing at AppleScript.
1
2
things skill install claude
things skill show
Credits
Things3 is built and maintained by Cultured Code. things-cli is an independent, unaffiliated third-party tool that talks to the official things:/// URL scheme and reads the on-disk SQLite database — same interfaces Cultured Code expose to Shortcuts and other automation.
Source
The full command reference and contributing guide live on GitHub. Issues and pull requests welcome.