Bitterbot-desktop things-mac
Manage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database). Use when a user asks Bitterbot to add a task to Things, list inbox/today/upcoming, search tasks, or inspect projects/areas/tags.
install
source · Clone the upstream repo
git clone https://github.com/Bitterbot-AI/bitterbot-desktop
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Bitterbot-AI/bitterbot-desktop "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/things-mac" ~/.claude/skills/bitterbot-ai-bitterbot-desktop-things-mac && rm -rf "$T"
manifest:
skills/things-mac/SKILL.mdsource content
Things 3 CLI
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
- Install (recommended, Apple Silicon):
GOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latest - If DB reads fail: grant Full Disk Access to the calling app (Terminal for manual runs;
for gateway runs).Bitterbot.app - Optional: set
(or passTHINGSDB
) to point at your--db
folder.ThingsData-* - Optional: set
to avoid passingTHINGS_AUTH_TOKEN
for update ops.--auth-token
Read-only (DB)
things inbox --limit 50things todaythings upcomingthings search "query"
/things projects
/things areasthings tags
Write (URL scheme)
- Prefer safe preview:
things --dry-run add "Title" - Add:
things add "Title" --notes "..." --when today --deadline 2026-01-02 - Bring Things to front:
things --foreground add "Title"
Examples: add a todo
- Basic:
things add "Buy milk" - With notes:
things add "Buy milk" --notes "2% + bananas" - Into a project/area:
things add "Book flights" --list "Travel" - Into a project heading:
things add "Pack charger" --list "Travel" --heading "Before" - With tags:
things add "Call dentist" --tags "health,phone" - Checklist:
things add "Trip prep" --checklist-item "Passport" --checklist-item "Tickets" - From STDIN (multi-line => title + notes):
cat <<'EOF' | things add -Title lineNotes line 1Notes line 2EOF
Examples: modify a todo (needs auth token)
- First: get the ID (UUID column):
things search "milk" --limit 5 - Auth: set
or passTHINGS_AUTH_TOKEN--auth-token <TOKEN> - Title:
things update --id <UUID> --auth-token <TOKEN> "New title" - Notes replace:
things update --id <UUID> --auth-token <TOKEN> --notes "New notes" - Notes append/prepend:
/things update --id <UUID> --auth-token <TOKEN> --append-notes "..."--prepend-notes "..." - Move lists:
things update --id <UUID> --auth-token <TOKEN> --list "Travel" --heading "Before" - Tags replace/add:
/things update --id <UUID> --auth-token <TOKEN> --tags "a,b"things update --id <UUID> --auth-token <TOKEN> --add-tags "a,b" - Complete/cancel (soft-delete-ish):
/things update --id <UUID> --auth-token <TOKEN> --completed--canceled - Safe preview:
things --dry-run update --id <UUID> --auth-token <TOKEN> --completed
Delete a todo?
- Not supported by
right now (no “delete/move-to-trash” write command;things3-cli
is read-only listing).things trash - Options: use Things UI to delete/trash, or mark as
/--completed
via--canceled
.things update
Notes
- macOS-only.
prints the URL and does not open Things.--dry-run