things-mac — Claude Code skill for Things 3 tasks
Use the things CLI to inspect Things 3 lists and search tasks on macOS, or ask an agent to add and update todos.
npx skills add openclaw/openclaw --skill things-mac -a claude-codeWhat things-mac does
The skill can read the inbox, today and upcoming lists, search todos, and show projects, areas and tags. It can add tasks with notes, deadlines, tags or checklist items, and place them in a project or heading.
Reads come from the local Things database. If they fail, grant Full Disk Access to the app running the CLI. Writes use the Things URL scheme, and --dry-run previews an action without opening Things. Updates require THINGS_AUTH_TOKEN or --auth-token. The CLI cannot delete todos; it can mark them completed or canceled.
This is for macOS and requires the things command. Install it if you want an agent to manage Things tasks; use the Things app when you need to delete one.
What it helps with
- search Things todos by query
- check the inbox and today's tasks
- add a tagged todo to a project
- change a todo's notes or deadline
- mark a todo completed or canceled
Example prompts for the agent
- Search Things for todos matching “milk” and show their IDs.
- Add “Book flights” to the “Travel” project with the “trip” tag.
- Show my Things inbox and today's tasks.
How to install things-mac
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill things-mac -a claude-code2Manually: put the files in place
~/.claude/skills/things-mac/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/things-mac/
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill things-mac -a codex2Manually: put the files in place
.agents/skills/things-mac/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill things-mac -a cursor2Manually: put the files in place
.cursor/skills/things-mac/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openclaw/openclaw things-mac2Manually: put the files in place
.github/skills/things-mac/SKILL.md1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill things-mac -a gemini-cli2Platform CLI
gemini skills install https://github.com/openclaw/openclaw --path skills/things-macManually: put the files in place
.devin/skills/things-mac/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill things-mac -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set45
The whole set →Similar
Questions about things-mac
How do I install things-mac in Claude Code?
Run npx skills add openclaw/openclaw --skill things-mac -a claude-code. The things CLI and macOS are required.
What does things-mac do?
It reads Things 3 data and lets an agent add or update todos through the things command.
What permissions does Things database access need?
If database reads fail, grant Full Disk Access to the app running things, such as Terminal or OpenClaw.app.
Source text
SKILL.md · MIT
---
name: things-mac
description: "Add, update, list, search, or inspect Things 3 todos, inbox, today, projects, areas, and tags on macOS."
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)",
},
],
},
}
---
# 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; `OpenClaw.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.
© openclaw · MIT · openclaw/openclaw