OmniFocus技能使用说明
2026-04-01
新闻来源:网淘吧
围观:5
电脑广告
手机广告
OmniFocus 任务管理
通过 JavaScript for Automation (JXA) 脚本自动化 OmniFocus 任务管理。
快速开始
所有脚本都位于scripts/目录中,并使用 JXA。运行方式:

osascript -l JavaScript scripts/<script-name>.js [args]
关键脚本:
add_task.js- 添加任务到收件箱list_tasks.js- 使用过滤器列出任务search_tasks.js- 按关键词搜索任务complete_task.js- 按名称完成任务update_task.js- 更新任务属性get_stats.js- 获取 OmniFocus 统计信息
核心操作
添加任务
osascript -l JavaScript scripts/add_task.js "Task name" ["Note"] ["YYYY-MM-DD"]
示例:
osascript -l JavaScript scripts/add_task.js "Buy groceries"
osascript -l JavaScript scripts/add_task.js "Review doc" "Check sections 1-3"
osascript -l JavaScript scripts/add_task.js "Submit report" "Q1" "2026-01-31"
返回:任务 ID
列出任务
osascript -l JavaScript scripts/list_tasks.js [filter] [limit]
筛选条件:
收件箱- 收件箱任务可用- 可用(未阻塞)任务(默认)已标记- 已标记任务即将到期- 3天内到期逾期- 已过期全部- 所有未完成任务
返回:包含任务详情(名称、ID、备注、到期日期、标记状态、项目、标签)的JSON数组
搜索任务
osascript -l JavaScript scripts/search_tasks.js "keyword" [limit]
搜索任务名称和备注。不区分大小写。
返回:匹配任务的JSON数组
完成任务
osascript -l JavaScript scripts/complete_task.js "Task name"
先搜索收件箱,再搜索所有任务。完成第一个匹配项。
更新任务
osascript -l JavaScript scripts/update_task.js "Task name" [--note "text"] [--due "YYYY-MM-DD"] [--flag true/false]
示例:
osascript -l JavaScript scripts/update_task.js "Review" --note "Added notes"
osascript -l JavaScript scripts/update_task.js "Submit" --due "2026-02-01"
osascript -l JavaScript scripts/update_task.js "Important" --flag true
获取统计数据
osascript -l JavaScript scripts/get_stats.js
返回:包含计数的JSON:
- 总计、未完成、收件箱
- 已标记、已逾期、即将到期
- 可用、已阻塞
使用指南
当响应用户查询时
- 列出任务在对任务进行操作前先确认目标
- 解析JSON输出以便进行结构化处理
- 展示结果以用户友好的格式(而非原始JSON)
- 确认操作在完成任务或修改任务前
- 优雅地处理错误(如任务未找到等)
常见模式
每日回顾:
# Statistics overview
osascript -l JavaScript scripts/get_stats.js
# What needs attention
osascript -l JavaScript scripts/list_tasks.js overdue
osascript -l JavaScript scripts/list_tasks.js due-soon
任务查询:
# "What's in my inbox?"
osascript -l JavaScript scripts/list_tasks.js inbox
# "What are my next actions?"
osascript -l JavaScript scripts/list_tasks.js available 10
# "Show my flagged tasks"
osascript -l JavaScript scripts/list_tasks.js flagged
任务管理:
# "Add a task to call John"
osascript -l JavaScript scripts/add_task.js "Call John"
# "Find tasks about the project"
osascript -l JavaScript scripts/search_tasks.js "project"
# "Mark 'Buy milk' as complete"
osascript -l JavaScript scripts/complete_task.js "Buy milk"
# "Flag the review task"
osascript -l JavaScript scripts/update_task.js "Review" --flag true
输出处理
脚本返回JSON格式的结构化数据。向用户展示时:
- 解析JSON
- 清晰地格式化结果
- 汇总数量和关键信息
- 高亮紧急事项(已逾期、即将到期)
示例响应格式:
Found 3 overdue tasks:
• Submit Q1 report (due Jan 20)
• Review contract (due Jan 23)
• Call vendor (due Jan 24)
And 5 tasks due in the next 3 days:
• [list tasks]
Would you like me to flag or update any of these?
错误处理
常见错误:
- 任务未找到- 请仔细核对名称或先进行搜索
- 无任务- 空结果,请清晰地报告
- 无效日期- 请使用YYYY-MM-DD格式
- OmniFocus未运行- 脚本需要OmniFocus运行
多步骤操作
先查找再操作:
# 1. Search for task
RESULTS=$(osascript -l JavaScript scripts/search_tasks.js "meeting")
# 2. Parse and identify target task name
# 3. Complete the task
osascript -l JavaScript scripts/complete_task.js "Team meeting notes"
技术参考
有关详细的API信息和高级用法,请参阅:
- JXA API参考:
references/jxa-api.md- 对象模型与方法 - 自动化指南:
参考资料/自动化指南.md- 详细的脚本文档与工作流程
在以下情况下阅读这些文件:
- 构建复杂查询时
- 理解OmniFocus数据模型时
- 实现自定义工作流程时
- 调试脚本时
要求
- macOS系统
- 已安装并运行OmniFocus
- 脚本具有执行权限(chmod +x)
注意事项
- 脚本使用JXA(JavaScript自动化),而非AppleScript
- 任务匹配:精确名称区分大小写,搜索不区分大小写
- 日期格式:YYYY-MM-DD(ISO 8601)
- 所有操作均在默认OmniFocus文档上执行
- 除添加、完成和更新操作外,脚本均为只读安全
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~