一键导入
things-jxa
Read and query Things 3 data (lists, todos, projects, tags, logbook). Not for writes. Use things:url to create/update, things:inbox for quick captures.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Read and query Things 3 data (lists, todos, projects, tags, logbook). Not for writes. Use things:url to create/update, things:inbox for quick captures.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Query Claude Code session history via a DuckDB index over `~/.claude/projects/`. Use when asked about Claude Code activity ("how many tokens today?", "what did I work on this week?") or instead of reading, grepping, or jq-ing session transcripts. Not for codebase search, git log queries, or arbitrary databases.
Creating and optimizing Claude Code Skills including activation patterns, content structure, and development workflows. Use when creating new skills, converting memory files to skills, debugging skill activation, or understanding skill architecture and best practices.
Triage and batch-implement Claude-tagged Things todos as PRs for the claude config repo, discover improvement candidates from session history, or watch open PRs to implement review feedback and close shipped todos. Use when the user wants to work on their Claude Code improvement backlog, process Things todos tagged claude-code, batch-implement configuration changes, mine session history for grounded config-change candidates (Discover mode), or watch this skill's open PRs for review feedback and merges (Watch mode).
Fetch, reply to, and resolve review threads on a GitHub pull request. Use when checking what review feedback needs addressing, whether threads are resolved, replying to review comments, or clearing AI-reviewer threads after acting on them.
Live tmux inbox for reviewing inbound pull requests across GitHub and GitLab. Use when reviewing multiple PRs, checking the review queue, batch reviews, or managing your review inbox. Pass --queue to spawn an already-ordered queue.
Review a pull request when requested by a peer. Use when reviewing PRs, providing code review feedback, or analyzing proposed changes. Supports GitHub and GitLab. Pass --triage to summarize a PR and estimate its review effort without reviewing it.
| name | things:jxa |
| description | Read and query Things 3 data (lists, todos, projects, tags, logbook). Not for writes. Use things:url to create/update, things:inbox for quick captures. |
| allowed-tools | ["Bash(bun ${CLAUDE_PLUGIN_ROOT}/scripts/format-output.ts:*)","Skill(mac:jxa-run)","Skill(mac:jxa-run Things3:*)","Read"] |
Read and query Things 3 data via JXA.
To run JXA, use the Skill tool to invoke mac:jxa-run. Do NOT run bun or osascript directly.
Invoke via: Skill(mac:jxa-run, args: "Things3 ${CLAUDE_PLUGIN_ROOT}/scripts/jxa/query-list.js TMTodayListSource")
Invoke via: Skill(mac:jxa-run, args: "Things3 -e 'var app = Application(\"Things3\"); JSON.stringify(app.lists.byId(\"TMTodayListSource\").toDos().length)'")
Pipe the returned JSON through the formatter for table display:
echo '<json>' | bun ${CLAUDE_PLUGIN_ROOT}/scripts/format-output.ts [--json] [--columns name,status]
| Script | Usage | Description |
|---|---|---|
find-todos.js | <tag|project> <name> [--logbook] | Find todos by tag (across Inbox/Today/Anytime/Upcoming/Someday) or project |
query-list.js | <list-id> | Query todos from any built-in list |
query-logbook.js | <start-iso> <end-iso> [--notes-contains <substring>] | Query logbook with early termination. Full scans of 10k+ items are slow. --notes-contains filters by notes substring and includes notes in output (e.g. to find Discovery: markers). |
query-metadata.js | <projects|areas|tags> | List projects, areas, or tags (tags omit todoCount for performance) |
export-markdown.js | [list-id] | Export a list to markdown checklist |
TMInboxListSource (Inbox), TMTodayListSource (Today), TMNextListSource (Anytime), TMCalendarListSource (Upcoming), TMSomedayListSource (Someday), TMLogbookListSource (Logbook)
Detect via midnight heuristic: creationDate at T00:00:00 local time = repeating instance. Templates have activationDate: null. See troubleshooting.md for examples.
open, completed, canceled
properties() for batch reads instead of individual gettersopen -g -a "Things3" to launch Things if not running