name: tasknotes description: 通过TaskNotes插件API管理Obsidian中的任务。当用户想要创建任务、列出任务、按状态或项目查询、更新任务状态、删除任务或检查需要做什么时使用。
TaskNotes 技能
通过TaskNotes插件的HTTP API管理Obsidian任务。
要求
- TaskNotes插件 已安装在Obsidian中
- 在TaskNotes设置中启用HTTP API:
- 打开Obsidian设置 → TaskNotes
- 启用“HTTP API”开关
- 设置API端口(默认:8080)
- API令牌:留空表示无需认证,或设置令牌以提高安全性
- 环境变量 在保险库根目录的
.env文件中(如果使用认证):
如果TaskNotes未设置认证令牌,则不需要TASKNOTES_API_PORT=8080 TASKNOTES_API_KEY=your_token_here.env文件。
CLI 命令
# 列出所有任务
uv run scripts/tasks.py list
# 按状态列出(使用您配置的状态值)
uv run scripts/tasks.py list --status "进行中"
# 按项目列出
uv run scripts/tasks.py list --project "我的项目"
# 创建任务
uv run scripts/tasks.py create "任务标题" --project "我的项目" --priority high
# 创建带预定时间的任务
uv run scripts/tasks.py create "会议准备" --scheduled "2025-01-15T14:00:00"
# 更新任务状态
uv run scripts/tasks.py update "Tasks/task-file.md" --status done
# 添加/更新任务描述
uv run scripts/tasks.py update "Tasks/task-file.md" --details "此处为附加内容。"
# 删除任务
uv run scripts/tasks.py delete "Tasks/task-file.md"
# 获取可用选项(状态、优先级、项目)
uv run scripts/tasks.py options --table
# 人类可读的输出(添加 --table)
uv run scripts/tasks.py list --table
任务属性
状态和优先级值: 在您的TaskNotes插件设置中配置。运行options命令查看可用值:
uv run scripts/tasks.py options --table
其他字段:
projects- 项目链接数组,例如["[[项目名称]]"]contexts- 数组,例如["办公室", "精力充沛"]due- 截止日期 (YYYY-MM-DD)scheduled- 预定日期/时间 (YYYY-MM-DD 或 YYYY-MM-DDTHH:MM:SS)timeEstimate- 分钟数 (数字)tags- 标签数组details- 任务描述(写入markdown正文,而非frontmatter)
API 参考
基础URL: http://localhost:8080/api
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /tasks | 列出任务(支持过滤器) |
| POST | /tasks | 创建任务 |
| GET | /tasks/{id} | 获取单个任务 |
| PUT | /tasks/{id} | 更新任务 |
| DELETE | /tasks/{id} | 删除任务 |
| GET | /filter-options | 可用状态、优先级、项目 |
GET /tasks 的查询参数
status- 按状态过滤project- 按项目名称过滤priority- 按优先级过滤tag- 按标签过滤overdue- true/falsesort- 排序字段limit- 最大结果数offset- 分页偏移量
使用时机
- “为X创建一个任务” → 创建任务
- “显示我的任务” → 列出所有任务
- “显示进行中的任务” → 列出 --status 进行中
- “将X标记为完成” → 将任务状态更新为完成
- “我应该做什么” → 按状态列出任务
示例工作流
# 早晨:检查要做什么
uv run scripts/tasks.py list --status in-progress --table
uv run scripts/tasks.py list --limit 5 --table
# 创建链接到项目的任务
uv run scripts/tasks.py create "完成着陆页" \
--project "网站改版" \
--priority high
# 完成任务
uv run scripts/tasks.py update "Tasks/finish-landing-page.md" --status done