360 Secure SkillHub
360 安全技能中心

Vikunja Fast

通过 Vikunja REST API 与自带 vikunja.sh 脚本管理任务:列出全部、逾期、今日、本周任务,按 Vikunja 过滤语法查询,查看或标记任务完成,并以 emoji+到期日+ID 格式输出。需 VIKUNJA_URL 与 JWT(VIKUNJA_TOKEN,或用用户名密码登录换取)。

tmigone
tmigone
热度 92.20
最近更新 2026-05-11 15:50:48
分类:协作依赖:第三方 API / 代码执行应用场景:任务管理 / 工作流 / 日程安排

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add vikunja-fast
Metadata
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="<jwt>"

# Alternative: login with username/password (the helper CLI will request a JWT)
export VIKUNJA_USERNAME="<username>"
export VIKUNJA_PASSWORD="<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: "<jwt>"
        }
      }
    }
  }
}

Notes:

  • VIKUNJA_URL can be the base URL; the helper normalizes to /api/v1.
  • Vikunja auth expects a JWT bearer token for most API calls (Authorization: Bearer <jwt>).
  • If you only have a non-JWT token (often starts with 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.sh

Examples:

# 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:

  • Output formatting:
    • Each task should be formated as: <EMOJI> <DUE_DATE> - #<ID> <TASK>
    • Emoji comes from the project title when it starts with one; otherwise uses 🔨
    • Due dates are rendered as Mon/D (time + year removed)
  • This skill uses GET /tasks/all to fetch tasks across all projects

Mark task done

TASK_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