网淘吧来吧,欢迎您!

OmniFocus技能使用说明

2026-04-01 新闻来源:网淘吧 围观:5
电脑广告
手机广告

OmniFocus 任务管理

通过 JavaScript for Automation (JXA) 脚本自动化 OmniFocus 任务管理。

快速开始

所有脚本都位于scripts/目录中,并使用 JXA。运行方式:

OmniFocus

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:

  • 总计、未完成、收件箱
  • 已标记、已逾期、即将到期
  • 可用、已阻塞

使用指南

当响应用户查询时

  1. 列出任务在对任务进行操作前先确认目标
  2. 解析JSON输出以便进行结构化处理
  3. 展示结果以用户友好的格式(而非原始JSON)
  4. 确认操作在完成任务或修改任务前
  5. 优雅地处理错误(如任务未找到等)

常见模式

每日回顾:

# 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格式的结构化数据。向用户展示时:

  1. 解析JSON
  2. 清晰地格式化结果
  3. 汇总数量和关键信息
  4. 高亮紧急事项(已逾期、即将到期)

示例响应格式:

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文档上执行
  • 除添加、完成和更新操作外,脚本均为只读安全

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第393627名访客 今日有1篇新文章/评论