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}'
1 ステップで作成、割り当て、ラベル付け
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 対応