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 Clawdbot to add a task to Things, list inbox/today/upcoming, search tasks, or inspect projects/areas/tags.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
15 · 9.5k · 798 current installs · 806 all-time installs
byPeter Steinberger@steipete
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (manage Things 3: read DB, add/update via URL scheme) aligns with the runtime instructions (commands for inbox/today/upcoming/search/projects and add/update examples). The SKILL.md metadata also describes installing the 'things' CLI (go install) which is appropriate for this purpose. Minor mismatch: the registry metadata in the manifest showed no required binaries/env, but SKILL.md metadata declares a required binary 'things' and an install via a GitHub Go module — the SKILL.md claim is expected for this skill, the registry metadata appears incomplete.
Instruction Scope
Instructions are scoped to reading the local Things DB and invoking Things via URL scheme and the 'things' CLI. They do not instruct exfiltration to external endpoints. However, they explicitly require that the calling app (Terminal or Clawdbot.app) be granted macOS Full Disk Access to read the Things database; that is out-of-band OS permission but broad in scope and should be considered before granting.
Install Mechanism
No embedded install script in the registry; SKILL.md recommends installing the 'things' CLI via 'go install' from the GitHub module (github.com/ossianhempel/things3-cli). This is a standard, traceable approach (moderate trust surface). No downloads from arbitrary or untrusted URLs, no archive extraction specified.
Credentials
The skill mentions optional environment variables THINGSDB and THINGS_AUTH_TOKEN for pointing at the DB and avoiding repeated --auth-token flags. These are proportional and directly related to the skill's write/read capabilities. Registry metadata did not declare these optional envs, so the SKILL.md is the authoritative source — users should treat THINGS_AUTH_TOKEN as sensitive if used.
!
Persistence & Privilege
The skill is not marked always:true and does not request persistent agent-wide privileges, which is good. The operational requirement to grant Full Disk Access to the calling app (Clawdbot.app) is the main privilege concern: that macOS permission grants broad filesystem access to the agent process and thus increases its blast radius beyond just Things data. This requirement is explainable (Things DB lives in protected locations) but is a meaningful OS-level risk the user must accept.
Assessment
This skill appears to be what it says: a wrapper around the open-source things3-cli that reads the local Things database and adds/updates todos via the Things URL scheme. Before installing or enabling: 1) Confirm you trust the Clawdbot application/gateway because the skill asks you to give that app macOS Full Disk Access (this permission allows broad file access, not just Things data). 2) Review the things3-cli source (github.com/ossianhempel/things3-cli) before running go install to ensure you trust the code. 3) Treat THINGS_AUTH_TOKEN as sensitive — store it securely if you use it (the token is optional for read-only operations). 4) Note the small registry metadata mismatch: the SKILL.md expects the 'things' binary (and offers a go install), but the registry metadata omitted that requirement — rely on the SKILL.md and verify the binary is present. 5) Use --dry-run or read-only commands first to verify behavior before enabling write/update operations.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk973mbzw0jmfbgsy25aa6ej6td7yk0kj

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

Clawdis
OSmacOS
Binsthings

Install

Install things3-cli (go)
Bins: things
go install github.com/ossianhempel/things3-cli/cmd/things@latest

SKILL.md

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; Clawdbot.app for gateway runs).
  • Optional: set THINGSDB (or pass --db) to point at your ThingsData-* folder.
  • Optional: set THINGS_AUTH_TOKEN to avoid passing --auth-token for update ops.

Read-only (DB)

  • things inbox --limit 50
  • things today
  • things upcoming
  • things search "query"
  • things projects / things areas / things 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 line
    • Notes line 1
    • Notes line 2
    • EOF

Examples: modify a todo (needs auth token)

  • First: get the ID (UUID column): things search "milk" --limit 5
  • Auth: set THINGS_AUTH_TOKEN or pass --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 things3-cli right now (no “delete/move-to-trash” write command; things trash is read-only listing).
  • Options: use Things UI to delete/trash, or mark as --completed / --canceled via things update.

Notes

  • macOS-only.
  • --dry-run prints the URL and does not open Things.

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…