
A command-line interface for Things 3 that lets you read your local database and manipulate todos through the Things URL scheme. You can search, list projects and tags, add todos with notes and checklists, and update existing items if you set up an auth token. The read operations hit the SQLite database directly, so you'll need to grant Full Disk Access to your terminal or OpenClaw. The update commands use Things' URL scheme instead, which means they're safer but require an extra token dance. It's macOS only and written in Go. Honestly most useful if you're already deep in the terminal and want to script todo captures without reaching for the GUI.
$ npx -y skills add steipete/clawdis --skill things-mac --agent claude-codeInstalls into .claude/skills of the current project.
Use things to read your local Things database (inbox/today/search/projects/areas/tags) and to add/update todos via the Things URL scheme.
Setup
GOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latestOpenClaw.app for gateway runs).THINGSDB (or pass --db) to point at your ThingsData-* folder.THINGS_AUTH_TOKEN to avoid passing --auth-token for update ops.Read-only (DB)
things inbox --limit 50things todaythings upcomingthings search "query"things projects / things areas / things tagsWrite (URL scheme)
things --dry-run add "Title"things add "Title" --notes "..." --when today --deadline 2026-01-02things --foreground add "Title"Examples: add a todo
things add "Buy milk"things add "Buy milk" --notes "2% + bananas"things add "Book flights" --list "Travel"things add "Pack charger" --list "Travel" --heading "Before"things add "Call dentist" --tags "health,phone"things add "Trip prep" --checklist-item "Passport" --checklist-item "Tickets"cat <<'EOF' | things add -Title lineNotes line 1Notes line 2EOFExamples: modify a todo (needs auth token)
things search "milk" --limit 5THINGS_AUTH_TOKEN or pass --auth-token <TOKEN>things update --id <UUID> --auth-token <TOKEN> "New title"things update --id <UUID> --auth-token <TOKEN> --notes "New notes"things update --id <UUID> --auth-token <TOKEN> --append-notes "..." / --prepend-notes "..."things update --id <UUID> --auth-token <TOKEN> --list "Travel" --heading "Before"things update --id <UUID> --auth-token <TOKEN> --tags "a,b" / things update --id <UUID> --auth-token <TOKEN> --add-tags "a,b"things update --id <UUID> --auth-token <TOKEN> --completed / --canceledthings --dry-run update --id <UUID> --auth-token <TOKEN> --completedDelete a todo?
things3-cli right now (no "delete/move-to-trash" write command; things trash is read-only listing).--completed / --canceled via things update.Notes
--dry-run prints the URL and does not open Things.Sponsors