Install
openclaw skills install vikunja-fastManage Vikunja projects and tasks (overdue/due/today), mark done, and get quick summaries via the Vikunja API.
openclaw skills install vikunja-fastUse Vikunja as the source of truth for tasks and completions, and interact with it from Clawdbot.
You can provide credentials either via environment variables or via Clawdbot’s skills config.
Set these environment variables in the same environment where the gateway runs:
export VIKUNJA_URL="https://vikunja.xyz"
# Recommended: use a JWT (starts with "eyJ")
export VIKUNJA_TOKEN="<jwt>"
# Alternative: login with username/password (the helper CLI will request a JWT)
export VIKUNJA_USERNAME="<username>"
export VIKUNJA_PASSWORD="<password>"
Edit ~/.clawdbot/clawdbot.json:
{
skills: {
entries: {
"vikunja-fast": {
enabled: true,
env: {
VIKUNJA_URL: "https://vikunja.xyz",
VIKUNJA_TOKEN: "<jwt>"
}
}
}
}
}
Notes:
VIKUNJA_URL can be the base URL; the helper normalizes to /api/v1.Authorization: Bearer <jwt>).tk_...), use /login to obtain a JWT.curl -fsS -X POST "$VIKUNJA_URL/login" \
-H "Content-Type: application/json" \
-d '{"username":"YOUR_USERNAME","password":"YOUR_PASSWORD","long_token":true}' | jq
curl -fsS "$VIKUNJA_URL/user" \
-H "Authorization: Bearer $VIKUNJA_TOKEN" | jq
curl -fsS "$VIKUNJA_URL/projects" \
-H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id, title}'
This skill ships with a tiny helper CLI:
{baseDir}/vikunja.shExamples:
# Overdue across all projects
{baseDir}/vikunja.sh overdue
# Due today
{baseDir}/vikunja.sh due-today
# Arbitrary filter (Vikunja filter syntax)
{baseDir}/vikunja.sh list --filter 'done = false && due_date < now'
# Show / complete a task
{baseDir}/vikunja.sh show 123
{baseDir}/vikunja.sh done 123
Notes:
<EMOJI> <DUE_DATE> - #<ID> <TASK>🔨Mon/D (time + year removed)GET /tasks/all to fetch tasks across all projectsTASK_ID=123
curl -fsS -X POST "$VIKUNJA_URL/tasks/$TASK_ID" \
-H "Authorization: Bearer $VIKUNJA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"done": true}' | jq