Vikunja Fast
by @tmigone
Manage Vikunja projects and tasks (overdue/due/today), mark done, and get quick summaries via the Vikunja API.
clawhub install vikunja-fast📖 About This Skill
name: vikunja-fast description: Manage Vikunja projects and tasks (overdue/due/today), mark done, and get quick summaries via the Vikunja API. homepage: https://vikunja.io/ metadata: {"clawdbot":{"emoji":"📋","requires":{"bins":["curl","jq"],"env":["VIKUNJA_URL"],"optionalEnv":["VIKUNJA_TOKEN","VIKUNJA_USERNAME","VIKUNJA_PASSWORD"]},"primaryEnv":"VIKUNJA_TOKEN"}}
✅ Vikunja Fast Skill
Use Vikunja as the source of truth for tasks and completions, and interact with it from Clawdbot.
Setup
You can provide credentials either via environment variables or via Clawdbot’s skills config.
Option A: Environment variables
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=""Alternative: login with username/password (the helper CLI will request a JWT)
export VIKUNJA_USERNAME=""
export VIKUNJA_PASSWORD=""
Option B: Clawdbot skills config (recommended for the agent)
Edit ~/.clawdbot/clawdbot.json:
{
skills: {
entries: {
"vikunja-fast": {
enabled: true,
env: {
VIKUNJA_URL: "https://vikunja.xyz",
VIKUNJA_TOKEN: ""
}
}
}
}
}
Notes:
VIKUNJA_URL can be the base URL; the helper normalizes to /api/v1.Authorization: Bearer ).tk_...), use /login to obtain a JWT.Quick checks
Login (get 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
Who am I? (requires JWT)
curl -fsS "$VIKUNJA_URL/user" \
-H "Authorization: Bearer $VIKUNJA_TOKEN" | jq
List projects
curl -fsS "$VIKUNJA_URL/projects" \
-H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id, title}'
Commands
This skill ships with a tiny helper CLI:
{baseDir}/vikunja.shExamples:
# Overdue across all projects
{baseDir}/vikunja.sh overdueDue today
{baseDir}/vikunja.sh due-todayArbitrary 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 comes from the project title when it starts with one; otherwise uses 🔨
- Due dates are rendered as Mon/D (time + year removed)
GET /tasks/all to fetch tasks across all projectsMark task done
TASK_ID=123curl -fsS -X POST "$VIKUNJA_URL/tasks/$TASK_ID" \
-H "Authorization: Bearer $VIKUNJA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"done": true}' | jq
⚙️ Configuration
You can provide credentials either via environment variables or via Clawdbot’s skills config.
Option A: Environment variables
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=""Alternative: login with username/password (the helper CLI will request a JWT)
export VIKUNJA_USERNAME=""
export VIKUNJA_PASSWORD=""
Option B: Clawdbot skills config (recommended for the agent)
Edit ~/.clawdbot/clawdbot.json:
{
skills: {
entries: {
"vikunja-fast": {
enabled: true,
env: {
VIKUNJA_URL: "https://vikunja.xyz",
VIKUNJA_TOKEN: ""
}
}
}
}
}
Notes:
VIKUNJA_URL can be the base URL; the helper normalizes to /api/v1.Authorization: Bearer ).tk_...), use /login to obtain a JWT.