网淘吧来吧,欢迎您!

OmniFocus Automation

2026-03-30 新闻来源:网淘吧 围观:16
电脑广告
手机广告

OmniFocus

通过JXA(JavaScript for Automation)控制OmniFocus。

要求

  • macOS系统,并已安装OmniFocus 3或4
  • OmniFocus必须正在运行(或将会自动启动)

快速参考

# Run via the wrapper script
./scripts/of <command> [args...]

# Or directly
osascript -l JavaScript ./scripts/omnifocus.js <command> [args...]

命令

列表/查询

命令描述
inbox列出收件箱任务
folders列出所有文件夹
projects [folder]列出项目,可按文件夹筛选
tasks <project>列出项目中的任务
tags列出所有标签
today今日到期或已逾期的任务
flagged已标记的未完成任务
搜索 <查询>按名称搜索任务
信息 <任务ID>完整的任务详情

创建

命令描述
添加 <名称> [项目]将任务添加到收件箱或项目
新建项目 <名称> [文件夹]创建项目
新建文件夹 <名称>创建顶级文件夹
新建标签 <名称>创建或获取标签

修改

命令描述
完成 <任务ID>标记为完成
取消完成 <任务ID>标记为未完成
删除 <任务ID>永久删除
重命名 <任务ID> <名称>重命名任务
备注 <任务ID> <文本>追加备注
设置备注 <任务ID> <文本>替换备注
推迟 <任务ID> <日期>设置推迟日期 (YYYY-MM-DD)
截止 <任务ID> <日期>设置截止日期
标记 <任务ID> [真|假]设置标记状态
添加标签 <任务ID> <标签>添加标签 (若不存在则创建)
移除标签 <任务ID> <标签>移除标签
移动 <任务ID> <项目>移动到项目

重复

# repeat <taskId> <method> <interval> <unit>
of repeat abc123 fixed 1 weeks
of repeat abc123 due-after-completion 2 days
of repeat abc123 defer-after-completion 1 months
of unrepeat abc123

方法:固定,完成后设置截止日期,完成后设置推迟日期
单位:,,,

OmniFocus Automation

输出格式

所有命令均返回JSON。成功响应包含"success": true。错误包含"error": "message"

{
  "success": true,
  "task": {
    "id": "abc123",
    "name": "Task name",
    "note": "Notes here",
    "flagged": false,
    "completed": false,
    "deferDate": "2026-01-30",
    "dueDate": "2026-02-01",
    "project": "Project Name",
    "tags": ["tag1", "tag2"],
    "repeat": {"method": "fixed", "rule": "RRULE:FREQ=WEEKLY;INTERVAL=1"}
  }
}

示例

# Add task to inbox
of add "Buy groceries"

# Add task to specific project
of add "Review docs" "Work Projects"

# Set due date and flag
of due abc123 2026-02-01
of flag abc123 true

# Add tags
of tag abc123 "urgent"
of tag abc123 "home"

# Create recurring task
of add "Weekly review" "Habits"
of repeat xyz789 fixed 1 weeks

# Search and complete
of search "groceries"
of complete abc123

# Get today's tasks
of today

备注

  • 任务ID是OmniFocus的内部ID(在所有任务响应中返回)
  • 日期使用ISO格式:YYYY-MM-DD
  • 项目和文件夹名称区分大小写
  • 标签在使用标签命令时,如果不存在会自动创建
  • 所有输出均为JSON,便于解析

技术细节

此技能主要使用JavaScript for Automation (JXA)执行多数操作,同时针对标签和重复操作采用AppleScript作为备用方案(这是由于已知的JXA在与这些特定OmniFocus API交互时存在类型转换问题)。

这种混合方法提供了:

  • 易于解析的JSON输出
  • 对标签名称中特殊字符的稳健转义处理
  • 附带清晰提示信息的错误处理机制

首次运行时:OmniFocus可能会请求允许自动化访问。请在系统设置 > 隐私与安全性 > 自动化中启用此权限。

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Table Image 下一篇:LLM Supervisor

相关文章

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