关于 vikunja-vja
vikunja-vja 是通过 `vja` 命令行管理 Vikunja 实例任务的技能,涵盖任务与项目操作,并支持筛选及日期输入,适用于日常检查和安排任务。
主要功能
- 01创建、编辑、删除和克隆任务
- 02筛选并排序任务列表
- 03设置截止日期、提醒和优先级
- 04管理项目、标签和负责人
- 05切换完成状态并推迟截止日期
适用场景
- 01检查逾期和高优先级任务
- 02创建并分配带标签的任务
- 03批量推迟逾期任务
- 04按项目和标签整理任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ akhy/ agent-skills --skill vikunja-vja安装后在 Claude Code 中输入/vikunja-vja确认已加载。
详细介绍
Vikunja 任务技能
使用 vja CLI 管理 Vikunja 实例中的任务。
结构化输出时始终使用 --json 并通过管道传给 jq。标题参数是位置参数(不是 --title)。
任务
创建
vja add "Task title"
vja add "Task title" -n "Description" -d "tomorrow" -p 3 -l urgent -A alice
vja add "Task title" -d "next monday at 9:00" -r "1h before due_date" -o "My Project"
标志:
-n/--note— 描述-d/--due— 截止日期(自然语言:"in 3 days"、"2025-12-31")--start/--end— 开始/结束日期-p/--prio— 优先级(1=低 … 4=紧急)-l/--label— 标签名称(多个标签可重复使用:-l bug -l backend)-A/--assignee— 要分配任务的用户名-r/--reminder— 提醒("in 3 days at 18:00"、"1h before due_date")-o/--project— 项目名称或 ID-f/--star— 标记为收藏--force-create— 如果标签尚不存在,则创建标签
列出
vja ls --json | jq '.tasks[] | {id, title, due_date, priority}'
# Filter examples
vja ls --filter "done eq false" --json | jq '.tasks[] | {id, title}'
vja ls --filter "priority ge 3" --json | jq '.tasks[] | {id, title, priority}'
vja ls --filter "due_date before today" --json | jq '.tasks[] | {id, title, due_date}'
vja ls -l urgent --json | jq '.tasks[] | {id, title}'
vja ls -o "My Project" --json | jq '.tasks[] | {id, title}'
vja ls -u 3 --json | jq '.tasks[] | {id, title, urgency}' # urgency >= 3
vja ls --all --json | jq '.tasks[] | {id, title, done}' # include completed
vja ls --sort "-priority,due_date" --json | jq '.tasks[] | {id, title}'
筛选运算符:eq、ne、gt、lt、ge、le、before、after、contains。多个 --filter 标志会以 AND 方式组合。
查看
vja show <task_id> --json | jq '{id, title, description, due_date, priority, assignees, labels}'
编辑
vja edit <task_id> -i "New title"
vja edit <task_id> -n "Updated description"
vja edit <task_id> -a "Appended note" # append to existing description
vja edit <task_id> -d "next friday" -p 4
vja edit <task_id> -l bug -l backend # set labels
vja edit <task_id> -A alice # toggle assignee (adds if absent, removes if present)
vja edit <task_id> -c true # mark completed
vja edit <task_id> -f # star; --no-star to unstar
vja edit <task_id> -o "Other Project" # move to project
删除
vja delete <task_id> -q
切换已完成/未完成状态
vja toggle <task_id>
延后截止日期
vja defer <task_id> 2d # delay by 2 days (also shifts reminders)
vja defer <task_id> 1h30m
克隆
vja clone <task_id> "New task title"
在浏览器中打开
vja open <task_id>
项目
vja project ls --json | jq '.[] | {id, title, parent_project_id}'
vja project show <project_id> --json | jq .
vja project add "Project name"
vja project add "Sub-project" -o "Parent Project"
标签
vja label ls --json | jq '.[] | {id, title}'
vja label add "new-label"
用户
vja user show --json | jq '{id, username, email}'
工作流
每日回顾
# Overdue tasks
vja ls --filter "due_date before today" --filter "done eq false" --json \
| jq '.tasks[] | {id, title, due_date}'
# High-priority open tasks sorted by urgency
vja ls --filter "priority ge 3" --filter "done eq false" --sort "-urgency" --json \
| jq '.tasks[] | {id, title, priority, urgency, due_date}'
一步完成创建、分配和添加标签
vja add "Review PR #42" -p 3 -d "today" -A alice -l review --force-create
批量延后逾期任务
vja ls --filter "due_date before today" --filter "done eq false" --json \
| jq '.tasks[].id' \
| xargs -I{} vja defer {} 1d -q
完成任务并记录
vja toggle <task_id> -v --json | jq '{id, title, done}'
备注
- 日期支持通过 parsedatetime 解析自然语言:
"tomorrow"、"next monday"、"in 3 days at 9:00"、"2025-12-31" --json输出 Vikunja API JSON;--jsonvja输出 vja 的内部表示- 配置读取自
~/.config/vja/config.rc(或旧版~/.vjacli/vja.rc)
评论
支持 Markdown