mcpField
V
vikunja-vja

vikunja-vja

github.com/akhy生产力141 次安装8 周前更新
代码仓库

关于 vikunja-vja

vikunja-vja 是通过 `vja` 命令行管理 Vikunja 实例任务的技能,涵盖任务与项目操作,并支持筛选及日期输入,适用于日常检查和安排任务。

主要功能

  1. 01创建、编辑、删除和克隆任务
  2. 02筛选并排序任务列表
  3. 03设置截止日期、提醒和优先级
  4. 04管理项目、标签和负责人
  5. 05切换完成状态并推迟截止日期

适用场景

  1. 01检查逾期和高优先级任务
  2. 02创建并分配带标签的任务
  3. 03批量推迟逾期任务
  4. 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