| name | things:jxa |
| description | Read and query Things 3 data (lists, todos, projects, tags, logbook). Not for writes. Use things:url to create, update, or capture to the inbox. |
| allowed-tools | ["Bash(bun ${CLAUDE_PLUGIN_ROOT}/scripts/format-output.ts:*)","Skill(mac:jxa-run)","Skill(mac:jxa-run Things3:*)","Read"] |
Things JXA
Read and query Things 3 data via JXA.
Running JXA
To run JXA, use the Skill tool to invoke mac:jxa-run. Do NOT run bun or osascript directly.
Script file
Invoke via: Skill(mac:jxa-run, args: "Things3 ${CLAUDE_PLUGIN_ROOT}/scripts/jxa/query-list.js TMTodayListSource")
Inline expression
Invoke via: Skill(mac:jxa-run, args: "Things3 -e 'var app = Application(\"Things3\"); JSON.stringify(app.lists.byId(\"TMTodayListSource\").toDos().length)'")
Formatting output
Pipe the returned JSON through the formatter for table display:
echo '<json>' | bun ${CLAUDE_PLUGIN_ROOT}/scripts/format-output.ts [--json] [--columns name,status]
Scripts
| Script | Usage | Description |
|---|
find-todos.js | <tag|project> <name> [--logbook] | Find todos by tag (across Inbox/Today/Anytime/Upcoming/Someday) or project |
|