name: things-mac
things CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database). Use when a user asks OpenClaw to add a task to Things, list inbox/today/upcoming, search tasks, or inspect projects/areas/tags.
homepage: https://github.com/ossianhempel/things3-cli
metadata:
{
"openclaw":
{
"emoji": "✅",
"os": ["darwin"],
"requires": { "bins": ["things"] },
"install":
[
{
"id": "go",
"kind": "go",
"module": "github.com/ossianhempel/things3-cli/cmd/things@latest",
"bins": ["things"],
"label": "Install things3-cli (go)",
},
],
},
}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.