Things 3 via things CLI: add, list, search, update, delete, verify.
69
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Critical
Do not install without reviewing
Use this for Things 3 tasks on Peter's Macs. Prefer things for Things-backed
todos; use $reminders only when the user asks for Apple Reminders.
thingshttps://github.com/ossianhempel/things3-cliGOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latestAuth for update URL operations:
source ~/.profile >/dev/null 2>&1 || true
things authTHINGS_AUTH_TOKEN should come from ~/.profile or 1Password. Never print it.
things update --dry-run must redact it as auth-token=***.
Use JSON for scripted reads and verification:
things tasks --format json --limit 20
things today --format json
things search "query" --format jsonThings DB reads may need Full Disk Access for the calling app. Writes should go
through Things URL Scheme or AppleScript via things; do not write the SQLite DB
directly.
Default: add, then search/read back.
things add "Book LHR-SFO nonstop business flight" --notes "Nonstop only." --when tomorrow --tags travel
things tasks --search "LHR-SFO" --format jsonUseful flags:
--notes "text"--when today|tomorrow|evening|anytime|someday|YYYY-MM-DD--deadline YYYY-MM-DD--list "Project or Area"--tags tag1,tag2--checklist-item "text" repeatable--dry-run to inspect the things:/// URL without mutating.Find the UUID first, then mutate by id:
things tasks --search "flight" --format json
things update --id <uuid> "New title" --notes "Updated notes"
things tasks --search "New title" --format json
things delete --id <uuid> --confirm <uuid>
things tasks --search "New title" --format json
things trash --search "New title" --format jsonAlways read back after writes. Delete moves items to Things Trash; verify normal search is empty and trash search contains the item when cleanup matters.
--dry-run before bulk updates/deletes.date; do not guess.UNKNOWN if the app is
absent or not visible there.update needs THINGS_AUTH_TOKEN; add does not.--tags is plural for add/update; tasks --tag is singular for filtering.today JSON may show start: Anytime plus a real start_date; use command
membership/read-back, not one field alone, to verify Today placement.bb36883
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.