Token导航 LogoToken导航TokenDH.com
效率敏感数据clawhub未标认证来源可访问clear审计提醒

vikunja-task-apivikunja task API 文档

Agent Skill

用于辅助 API 设计、接口文档、请求响应结构和服务集成说明。它适合让 Agent 梳理 endpoint、生成 OpenAPI 草稿、检查字段命名、整理错误码或辅助前后端联调。使用时需要确认真实业务语义、鉴权方式、分页和错误处理规则;涉及生成接口文档时,应避免凭空补字段,最好从现有代码、schema 或接口样例中提取事实。

总安装

5,127

周安装

218

GitHub Stars

公开资料未说明

下载量

1,796
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:vikunja-task-api(vikunja task API 文档)
来源仓库:https://github.com/ashanzzz/vikunja-task-api
安装命令:
openclaw skills install vikunja-task-api
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install vikunja-task-api

简介

完整集成 Vikunja v2 API,覆盖项目、任务、附件与批量操作。

  • 支持视图定制、评论系统与团队协作高级功能调用。
  • 适用于复杂项目管理与自动化工作流构建场景。vikunja-task-api 属于效率类 Skill,可作为该场景下的辅助能力补充。
  • 需确保 API 版本兼容性与权限范围设置正确。
  • 通过 clawhub 安装并用于 OpenClaw 的效率提升工具集。

SKILL.md

name
vikunja-task-api
version
2.3.0
description
|
Install
clawhub install ashanzzz-vikunja-task-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 Task API Skill

Install

clawhub install ashanzzz-vikunja-task-api

Then set environment variables:

VariableRequiredDescription
VIKUNJA_URLYesVikunja 实例地址,如 http://192.168.8.11:3456
VIKUNJA_TOKENRecommendedAPI Token(优先)或用户名/密码
VIKUNJA_USERNAMEAlt用户名(TOKEN 未设置时使用)
VIKUNJA_PASSWORDAlt密码(TOKEN 未设置时使用)
For detailed setup, see the Setup After Install section below.

Quick Setup

In your OpenClaw workspace, add to secure/api-fillin.env:

VIKUNJA_URL=http://your-vikunja-instance:3456
VIKUNJA_TOKEN=tk_xxxxxxxxxxxxx   # Optional: API token (recommended)
# VIKUNJA_USERNAME=your_username  # Optional: for login-based auth
# VIKUNJA_PASSWORD=your_password  # Optional: for login-based auth

2. Verify Connectivity

curl -s $VIKUNJA_URL/api/v1/info | jq

3. Install via ClawHub (if available)

clawhub install vikunja-task-api

Or manually clone into your skills directory:

git clone https://github.com/ashanzzz/openclaw-person-skills.git
export CLAWHUB_WORKDIR=$(pwd)/openclaw-person-skills

Installation (Human User)

Prerequisites

  • Vikunja instance (self-hosted or cloud) — get it at https://vikunja.io/download
  • API token from Vikunja: Settings → API Tokens → Create new token
  • curl and jq installed on your system

Setup Steps

Step 1: Get your Vikunja URL

Note your Vikunja instance base URL, e.g.:

  • Self-hosted: http://192.168.1.100:3456
  • Cloud: https://vikunja.example.com

Step 2: Generate an API Token

  1. Log in to Vikunja
  2. Go to Settings → API Tokens
  3. Click Create new token
  4. Copy the token (starts with tk_)

Step 3: Test the Connection

export VIKUNJA_URL="http://your-vikunja-instance:3456"
export VIKUNJA_TOKEN="tk_your_token_here"

# Test (should return instance info)
curl -s "$VIKUNJA_URL/api/v1/info" | jq

# List your projects
curl -s "$VIKUNJA_URL/api/v1/projects" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id,title}'

Step 4: Optional — Install the Helper Script

Save vikunja.sh to a directory in your PATH for convenient CLI access:

curl -sL https://raw.githubusercontent.com/ashanzzz/openclaw-person-skills/main/skills/vikunja-task-api/vikunja.sh \
  -o /usr/local/bin/vikunja && chmod +x /usr/local/bin/vikunja

Then configure:

echo 'export VIKUNJA_URL="http://your-vikunja-instance:3456"' >> ~/.bashrc
echo 'export VIKUNJA_TOKEN="tk_your_token"' >> ~/.bashrc
source ~/.bashrc

Usage examples:

vikunja list                    # List all open tasks
vikunja due-today               # Tasks due today
vikunja create 9 "New task"    # Create task in project 9
vikunja done 123                # Mark task 123 as done
vikunja show 123                # Show task details

Use Vikunja as the source of truth for all task management. This skill supersedes any internal working-buffer tracking for user-visible tasks.

API Base

  • Base URL: $VIKUNJA_URL/api/v1 (auto-normalized, no trailing slash)
  • Auth: Authorization: Bearer <token> (JWT or API token)
  • Token acquisition: POST /login with username + password

Authentication

Login (get JWT)

curl -X POST "$VIKUNJA_URL/api/v1/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"USER","password":"PASS"}' | jq '.token'

API Token (recommended for automation)

Create a token in Vikunja UI: Settings → API Tokens. Then use:

export VIKUNJA_TOKEN="tk_xxxx"

Critical HTTP Method Rules (Must Remember!)

OperationMethodEndpoint
Create projectPUT/projects
Update projectPOST/projects/{id}
Delete projectDELETE/projects/{id}
Create taskPUT/projects/{id}/tasks
Update taskPOST/tasks/{id}
Delete taskDELETE/tasks/{id}
Bulk update tasksPOST/tasks/bulk
Get all tasksGET/tasks
Move task to bucketPOST/projects/{project}/views/{view}/buckets/{bucket}/tasks
Create labelPUT/labels
Update labelPUT/labels/{id}
Delete labelDELETE/labels/{id}

Core Endpoints

Projects

# List all projects
curl -s "$VIKUNJA_URL/api/v1/projects" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id,title,owner}'

# Create project (PUT, not POST!)
curl -X PUT "$VIKUNJA_URL/api/v1/projects" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Project Name","description":"","identifier":"","hex_color":""}' | jq '{id,title}'

# Get project details
curl -s "$VIKUNJA_URL/api/v1/projects/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Update project (POST)
curl -X POST "$VIKUNJA_URL/api/v1/projects/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"New Title","hex_color":"#ff0000"}' | jq '{id,title}'

# Delete project
curl -X DELETE "$VIKUNJA_URL/api/v1/projects/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

# Duplicate project
curl -X PUT "$VIKUNJA_URL/api/v1/projects/{id}/duplicate" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '{id,title}'

Tasks

# Get all open tasks (filter: done = false)
curl -s "$VIKUNJA_URL/api/v1/tasks" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  | jq '.[] | select(.done == false) | {id,title,due_date,project_id}'

# Get tasks by project
curl -s "$VIKUNJA_URL/api/v1/projects/{id}/tasks" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  | jq '.[] | {id,title,done,due_date}'

# Create task in project (PUT, not POST!)
curl -X PUT "$VIKUNJA_URL/api/v1/projects/{project_id}/tasks" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Task Title","description":"","due_date":"2026-04-30T23:59:00Z"}' | jq '{id,title}'

# Get task details
curl -s "$VIKUNJA_URL/api/v1/tasks/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Update task (POST) — including mark done
curl -X POST "$VIKUNJA_URL/api/v1/tasks/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"done":true,"title":"Updated Title"}' | jq '{id,done,done_at}'

# Delete task
curl -X DELETE "$VIKUNJA_URL/api/v1/tasks/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

# Bulk update tasks
curl -X POST "$VIKUNJA_URL/api/v1/tasks/bulk" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"tasks":[{"id":1,"done":true},{"id":2,"done":true}]}' | jq

# Update task position (for drag-and-drop reordering)
curl -X POST "$VIKUNJA_URL/api/v1/tasks/{id}/position" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"position":0,"bucket_id":5}' | jq

# Duplicate task
curl -X PUT "$VIKUNJA_URL/api/v1/tasks/{id}/duplicate" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"project_id":9}' | jq '{id,title}'

Task Assignees

# Get assignees
curl -s "$VIKUNJA_URL/api/v1/tasks/{id}/assignees" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Add assignee
curl -X PUT "$VIKUNJA_URL/api/v1/tasks/{id}/assignees" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"user_id":1}' | jq

# Bulk add assignees
curl -X POST "$VIKUNJA_URL/api/v1/tasks/{id}/assignees/bulk" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"user_ids":[1,2,3]}' | jq

# Remove assignee
curl -X DELETE "$VIKUNJA_URL/api/v1/tasks/{id}/assignees/{user_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Task Labels

# Get labels on a task
curl -s "$VIKUNJA_URL/api/v1/tasks/{id}/labels" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Add label to task
curl -X PUT "$VIKUNJA_URL/api/v1/tasks/{id}/labels" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"label_id":5}' | jq

# Bulk update labels on task
curl -X POST "$VIKUNJA_URL/api/v1/tasks/{id}/labels/bulk" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"labels":[{"label_id":5},{"label_id":8}]}' | jq

# Remove label from task
curl -X DELETE "$VIKUNJA_URL/api/v1/tasks/{id}/labels/{label_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Task Comments

# Get comments
curl -s "$VIKUNJA_URL/api/v1/tasks/{id}/comments" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Create comment
curl -X PUT "$VIKUNJA_URL/api/v1/tasks/{id}/comments" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"comment":"This is a comment"}' | jq '{id,comment}'

# Update comment
curl -X POST "$VIKUNJA_URL/api/v1/tasks/{id}/comments/{comment_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"comment":"Updated comment"}' | jq

# Delete comment
curl -X DELETE "$VIKUNJA_URL/api/v1/tasks/{id}/comments/{comment_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Task Attachments

# List attachments
curl -s "$VIKUNJA_URL/api/v1/tasks/{id}/attachments" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Upload attachment
curl -X PUT "$VIKUNJA_URL/api/v1/tasks/{id}/attachments" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -F "file=@/path/to/file.pdf" | jq

# Delete attachment
curl -X DELETE "$VIKUNJA_URL/api/v1/tasks/{id}/attachments/{attachment_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Task Relations

# Create relation between two tasks
curl -X PUT "$VIKUNJA_URL/api/v1/tasks/{id}/relations" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"other_task_id":10,"relation_kind":"subtask|blocks|depends_on|related"}' | jq

# Remove relation
curl -X DELETE "$VIKUNJA_URL/api/v1/tasks/{id}/relations/{relation_kind}/{other_task_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Labels (standalone)

# List all labels
curl -s "$VIKUNJA_URL/api/v1/labels" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id,title,hex_color}'

# Create label
curl -X PUT "$VIKUNJA_URL/api/v1/labels" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Bug","hex_color":"#ff0000"}' | jq '{id,title}'

# Update label
curl -X PUT "$VIKUNJA_URL/api/v1/labels/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Feature","hex_color":"#00ff00"}' | jq

# Delete label
curl -X DELETE "$VIKUNJA_URL/api/v1/labels/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Project Views & Kanban Buckets

# List project views
curl -s "$VIKUNJA_URL/api/v1/projects/{id}/views" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id,title,kind}'

# List kanban buckets
curl -s "$VIKUNJA_URL/api/v1/projects/{id}/views/{view_id}/buckets" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id,title}'

# Create bucket
curl -X PUT "$VIKUNJA_URL/api/v1/projects/{id}/views/{view_id}/buckets" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"To Do"}' | jq '{id,title}'

# Update bucket
curl -X POST "$VIKUNJA_URL/api/v1/projects/{project_id}/views/{view_id}/buckets/{bucket_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"In Progress"}' | jq

# Delete bucket
curl -X DELETE "$VIKUNJA_URL/api/v1/projects/{project_id}/views/{view_id}/buckets/{bucket_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

# Move task to bucket (kanban drag-and-drop)
curl -X POST "$VIKUNJA_URL/api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"task_id":123,"position":0}' | jq

Project Members

# List project users
curl -s "$VIKUNJA_URL/api/v1/projects/{id}/users" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Add user to project
curl -X PUT "$VIKUNJA_URL/api/v1/projects/{id}/users" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"user_id":1,"rights":1}' | jq   # rights: 0=read, 1=write, 2=admin

# Update user rights
curl -X POST "$VIKUNJA_URL/api/v1/projects/{project_id}/users/{user_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rights":2}' | jq

# Remove user from project
curl -X DELETE "$VIKUNJA_URL/api/v1/projects/{project_id}/users/{user_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Teams

# List all teams
curl -s "$VIKUNJA_URL/api/v1/teams" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id,name}'

# Create team
curl -X PUT "$VIKUNJA_URL/api/v1/teams" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Engineering"}' | jq '{id,name}'

# Get team details
curl -s "$VIKUNJA_URL/api/v1/teams/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Add member to team
curl -X PUT "$VIKUNJA_URL/api/v1/teams/{id}/members" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"username":"user@example.com"}' | jq

Project Shares (link sharing)

# List shares
curl -s "$VIKUNJA_URL/api/v1/projects/{id}/shares" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Create share link
curl -X PUT "$VIKUNJA_URL/api/v1/projects/{id}/shares" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"right":1}' | jq  # right: 0=read, 1=write

# Delete share
curl -X DELETE "$VIKUNJA_URL/api/v1/projects/{id}/shares/{share_id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Saved Filters

# Create saved filter
curl -X PUT "$VIKUNJA_URL/api/v1/filters" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"My Filter","filter":"done = false","project_id":0}' | jq '{id,title}'

# Get saved filter
curl -s "$VIKUNJA_URL/api/v1/filters/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Update saved filter
curl -X POST "$VIKUNJA_URL/api/v1/filters/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"filter":"done = false && due_date < now"}' | jq

# Delete saved filter
curl -X DELETE "$VIKUNJA_URL/api/v1/filters/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Notifications

# Get notifications
curl -s "$VIKUNJA_URL/api/v1/notifications" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq '.[] | {id,title,message}'

# Mark all as read
curl -X POST "$VIKUNJA_URL/api/v1/notifications" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

# Mark one as (un)read
curl -X POST "$VIKUNJA_URL/api/v1/notifications/{id}" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_read":true}' | jq

Reactions

# Add reaction to entity (task, comment, etc.)
curl -X PUT "$VIKUNJA_URL/api/v1/{kind}/{id}/reactions" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"reaction":"👍"}' | jq

# Get reactions
curl -s "$VIKUNJA_URL/api/v1/{kind}/{id}/reactions" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN" | jq

# Remove reaction
curl -X POST "$VIKUNJA_URL/api/v1/{kind}/{id}/reactions/delete" \
  -H "Authorization: Bearer $VIKUNJA_TOKEN"

Service Info

# Get instance info (no auth required)
curl -s "$VIKUNJA_URL/api/v1/info" | jq

Filtering Syntax

Vikunja uses a powerful filter language:

done = false
done = false && due_date < now
done = false && project_id = 9
done = false && due_date >= now/d && due_date < now/d + 1d
done = false && due_date < now + 1w
labels contains "Bug"
title contains "urgent"
priority > 0
assignee = <user_id>

Full docs: https://vikunja.io/docs/filters/

Helper CLI (vikunja.sh)

# List open tasks
vikunja.sh list --filter 'done = false'

# Overdue tasks
vikunja.sh overdue

# Due today
vikunja.sh due-today

# Show task
vikunja.sh show 123

# Mark done
vikunja.sh done 123

# Create task
vikunja.sh create 9 "New Task"

# Delete task
vikunja.sh delete 123

Task Display Format

Each task output:

<EMOJI> <DUE_DATE> - #<ID> <TASK>
  • Emoji: first char of project title (first non-alphanumeric token for CJK/English)
  • Default emoji: 🔨
  • No due date: (no due)

Task Model (Complete Field Reference)

{
  "id": 123,
  "title": "Task Title",
  "description": "",
  "done": false,
  "done_at": null,
  "due_date": "2026-04-30T15:59:00Z",
  "project_id": 9,
  "repeat_after": 0,
  "priority": 0,
  "start_date": "0001-01-01T00:00:00Z",
  "end_date": "0001-01-01T00:00:00Z",
  "hex_color": "",
  "percent_done": 0,
  "created": "2026-03-31T12:00:00Z",
  "updated": "2026-03-31T12:00:00Z",
  "cover_image_url": null,
  "custom_fields": [],
  "缕": []
}

Important:

  • due_date = 0001-01-01T00:00:00Z = no deadline
  • priority: 0=none, 1=low, 2=medium, 3=high
  • repeat_after: seconds until respawn (0 = not recurring)

Pagination

Endpoints that return lists support pagination via page and per_page query params.

Headers returned:

  • x-pagination-total-pages
  • x-pagination-result-count

Setup

# Recommended: write to secure/api-fillin.env
VIKUNJA_URL=http://192.168.8.11:3456
VIKUNJA_TOKEN=tk_xxxx

Differences from Typical REST APIs

Vikunja uses non-standard methods for create operations:

  • PUT for create (projects, tasks, labels, comments, filters)
  • POST for update
  • DELETE for delete

This is because Vikunja's create endpoints return the created object with an ID, allowing you to immediately work with it — similar to a POST but idempotent.

Complete API Group Summary

GroupKey Endpoints
AuthPOST /login
ProjectsCRUD: PUT/GET/POST/DELETE /projects
TasksCRUD: PUT(create in project), GET/POST/DELETE /tasks
Task AssigneesGET/PUT/POST/DELETE /tasks/{id}/assignees
Task LabelsGET/PUT/POST /tasks/{id}/labels
Task CommentsGET/PUT/POST/DELETE /tasks/{id}/comments
Task AttachmentsGET/PUT/DELETE /tasks/{id}/attachments
Task RelationsPUT/DELETE /tasks/{id}/relations
Task PositionPOST /tasks/{id}/position
LabelsCRUD: PUT/GET/PUT/DELETE /labels
Views & BucketsGET /projects/{id}/views, CRUD /buckets
Project MembersGET/PUT/POST/DELETE /projects/{id}/users
TeamsCRUD: PUT/GET/POST/DELETE /teams
Project SharesGET/PUT/DELETE /projects/{id}/shares
Saved FiltersCRUD: PUT/GET/POST/DELETE /filters
NotificationsGET/POST /notifications
ReactionsGET/PUT/POST /reactions
User SettingsVarious /user/settings/*
WebhooksCRUD /webhooks
ServiceGET /info (no auth)

Full OpenAPI spec: $VIKUNJA_URL/api/v1/docs.json

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

75.97%
按下载量换算1,364

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills