/install self-hosted-vikunja
Vikunja
Self-hosted Vikunja integration via REST API. The instance is configured in
references/vikunja.yaml (or ~/.config/vikunja.yaml).
Quick Start
# Authenticate once, then use the token for all requests
TOKEN=$(python3 "$(skill-dir)/scripts/vikunja.py" login)
# Add a task to the Inbox project (id=1)
python3 "$(skill-dir)/scripts/vikunja.py" task create "Walk the dog" --project 1 --due "2026-05-20T18:00:00Z" --priority 2
Configuration
Place ~/.config/vikunja.yaml with:
base_url: "http://192.168.1.230:3456"
username: "admin"
password: "admin123"
The helper script auto-detects this path. Override with env vars:
VIKUNJA_BASE_URL, VIKUNJA_USER, VIKUNJA_PASS.
Important API Quirks
- PUT creates resources (not POST)
- POST updates resources (not PUT)
- DELETE works for deleting tasks/projects
- Tasks are created under a project — each project must exist first
- Token expires; the script re-authenticates automatically on 401
Core Workflows
1. Create a Task
python3 "$(skill-dir)/scripts/vikunja.py" task create "Title" \
--project 1 \
--description "Details here" \
--due "2026-05-20T18:00:00" \
--start "2026-05-19T09:00:00" \
--priority 2 \
--label "work" \
--reminder "before 1h"
Supported flags: --project, --description, --due, --start, --end,
--priority, --label, --reminder, --repeat-every, --repeat-mode
(0=default, 1=monthly, 2=from-current), --color.
2. List Tasks
# All tasks
python3 "$(skill-dir)/scripts/vikunja.py" task list
# Tasks in a specific project
python3 "$(skill-dir)/scripts/vikunja.py" task list --project 1
# Only undone tasks, sorted by priority descending
python3 "$(skill-dir)/scripts/vikunja.py" task list --filter "done=false" --sort-by "priority" --order "desc"
Filter syntax: see API Reference for full query syntax.
3. Update a Task
# Mark as done
python3 "$(skill-dir)/scripts/vikunja.py" task update $TASK_ID --done
# Change due date
python3 "$(skill-dir)/scripts/vikunja.py" task update $TASK_ID --due "2026-05-21T10:00:00"
# Change priority
python3 "$(skill-dir)/scripts/vikunja.py" task update $TASK_ID --priority 3
4. Bulk Operations
# Mark multiple tasks done at once
python3 "$(skill-dir)/scripts/vikunja.py" tasks bulk-complete 12 15 18
5. Projects
# List all projects
python3 "$(skill-dir)/scripts/vikunja.py" project list
# Create a new project
python3 "$(skill-dir)/scripts/vikunja.py" project create "Side Projects" --identifier "SP" --color "#ff6600"
6. Labels
# List labels
python3 "$(skill-dir)/scripts/vikunja.py" label list
# Create a label
python3 "$(skill-dir)/scripts/vikunja.py" label create "urgent" --color "#ff0000"
# Assign label to task
python3 "$(skill-dir)/scripts/vikunja.py" task add-label $TASK_ID "urgent"
7. Delete
python3 "$(skill-dir)/scripts/vikunja.py" task delete $TASK_ID
python3 "$(skill-dir)/scripts/vikunja.py" project delete $PROJECT_ID
AI Usage Patterns
When the user says "schedule X for Y date", parse the date and create a task:
- "remind me to buy milk tomorrow at 6pm" → task title "Buy milk", due "2026-05-19T18:00:00"
- "every monday review expenses" → task with
--repeat-every 604800 --repeat-mode 0 - "add fix the login bug as high priority" → priority 3 or 4
For recurring tasks, compute repeat_after in seconds:
- daily = 86400, weekly = 604800, monthly = 2592000, yearly = 31536000
Version Notes
- Buckets/Kanban (
bucketcommands) require Vikunja v2.4+ — not available in v2.3.0 - Admin routes (
/api/v1/admin/) require Vikunja v2.4+ — not available in v2.3.0 - This skill works with Vikunja v2.3.0+ for all task/project/label operations
Error Handling
401→ re-login automatically403→ project access issue; list projects to check permissions404→ task/project not found; try listing to find it400→ invalid request body; check required fields (title is always required)- Log errors to
memory/vikunja-errors.logfor debugging
Resources
- Full API Reference — endpoint details, schemas, examples
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install self-hosted-vikunja - 安装完成后,直接呼叫该 Skill 的名称或使用
/self-hosted-vikunja触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Vikunja 是什么?
Interact with a self-hosted Vikunja task management instance via its REST API. Use when the user asks to create, update, delete, or list tasks/projects/label... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 116 次。
如何安装 Vikunja?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install self-hosted-vikunja」即可一键安装,无需额外配置。
Vikunja 是免费的吗?
是的,Vikunja 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Vikunja 支持哪些平台?
Vikunja 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Vikunja?
由 David(@bydavid)开发并维护,当前版本 v1.1.0。