From mactools
查询、创建、完成 OmniFocus 4 任务和项目。仅当用户明确提及 OmniFocus 或 OmniFocus 特有概念(项目、透视、上下文)时使用。Use only when the user explicitly mentions OmniFocus or OmniFocus-specific concepts (projects, perspectives, contexts). Keywords: OmniFocus, 项目, inbox, flagged, perspectives.
npx claudepluginhub n0rvyn/indie-toolkit --plugin mactoolsThis skill is limited to using the following tools:
Connect to OmniFocus 4 on macOS and perform authorized operations: list tasks, create tasks, complete tasks, check inbox, view flagged tasks, manage projects, contexts, perspectives, and more.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
Connect to OmniFocus 4 on macOS and perform authorized operations: list tasks, create tasks, complete tasks, check inbox, view flagged tasks, manage projects, contexts, perspectives, and more.
BASE="${CLAUDE_PLUGIN_ROOT:-${CODEX_HOME:-$HOME/.codex}}"
SKILLS_ROOT="$BASE/skills"
[ -d "$SKILLS_ROOT/omnifocus/scripts" ] || SKILLS_ROOT="$BASE/indie-toolkit/mactools/skills"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py status
# List all incomplete tasks (limit 20)
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py list
# List tasks in specific project
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py list "Project Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py inbox
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py flagged
# Due within 7 days (default)
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due
# Due within custom days
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due 14
# Due today
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due today
# Due tomorrow
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due tomorrow
# Due this week
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due week
# Overdue tasks
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due overdue
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py projects
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py contexts
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-context "Task Name" "Context Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py clear-context "Task Name"
# Set with natural language
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-due "Task Name" "tomorrow"
# Set with relative format
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-due "Task Name" "+3d"
# Set with absolute date
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-due "Task Name" "2025-02-01"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py clear-due "Task Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-defer "Task Name" "+3d"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py clear-defer "Task Name"
# Daily
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-repeat "Task Name" "FREQ=DAILY"
# Weekly
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-repeat "Task Name" "FREQ=WEEKLY"
# Every 2 weeks
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-repeat "Task Name" "FREQ=WEEKLY;INTERVAL=2"
# Monthly
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-repeat "Task Name" "FREQ=MONTHLY"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py clear-repeat "Task Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py append-note "Task Name" "Additional note text"
# Create task in inbox
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py add "Task Name"
# Create task with options
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py add "Task Name" --project "Project" --context "Context" --due "tomorrow" --defer "+1d" --note "Task note"
# Create task with repetition
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py add "Daily Task" --repeat "FREQ=DAILY"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py complete "Task Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py flag "Task Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py delete "Task Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py show-project "Project Name"
# Create project in root
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py create-project "Project Name"
# Create project in folder
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py create-project "Project Name" "Folder Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py folders
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py create-folder "Folder Name"
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py perspectives
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py activate-perspective "Perspective Name"
今天 / today - Today明天 / tomorrow - Tomorrow后天 - Day after tomorrow下周 / next week - Next week+3d - 3 days from now+1w - 1 week from now+2m - 2 months from now (approx. 60 days)2025-02-01 - ISO format02/01/2025 - MM/DD/YYYY⚠️ 仅支持 MM/DD/YYYY 格式,避免 DD/MM 歧义。遇到模糊日期(如
01/02)时,向用户确认。
02-01 - February 1st (current year, MM-DD)02/01 - February 1st (current year, MM/DD)python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py status
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py inbox
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py flagged
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due today
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py projects
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py contexts
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due week
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py due overdue
# Quick add to inbox
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py add "Buy milk"
# Add with context and due date
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py add "Call John" --context "Phone" --due "tomorrow"
# Add recurring task
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py add "Daily standup" --project "Work" --repeat "FREQ=DAILY"
# List all contexts
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py contexts
# Start working in a context
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py activate-perspective "Context: Errands"
# Assign context to task
python3 ${SKILLS_ROOT}/omnifocus/scripts/omnifocus_cli.py set-context "Buy groceries" "Errands"
| Issue | Solution |
|---|---|
| "OmniFocus is not running" | Launch OmniFocus first |
| "Project not found" | Check exact project name with projects command |
| "Context not found" | Check exact context name with contexts command |
| "Multiple matching tasks" | Use more specific task name |
| Task not found | Task may already be completed or deleted |
| "Invalid date" | Check date format against Date Formats section |
| "Invalid range" | Use: today, tomorrow, week, overdue |