← 返回 Skills 市场
74
总下载
0
收藏
0
当前安装
3
版本数
在 OpenClaw 中安装
/install vikunja-usage
功能描述
任务管理工具:通过 Vikunja REST API v1 创建项目、任务、标签和评论,支持任务搜索、过滤、完成状态切换。Requires: curl。读取 $VIKUNJA_TOKEN 环境变量或 $AGENT_WORKSPACE/config/.vikunja-token 文件获取 token,支持多 agent。
使用说明 (SKILL.md)
Vikunja Task Manager
Vikunja 是一个轻量开源任务管理工具,部署于 http://localhost:3456,REST API v1。
凭证(多 Agent 支持)
Token 支持两种读取方式(按优先级):
- 环境变量
VIKUNJA_TOKEN(推荐,适合 agent 运行时注入) - Token 文件
$AGENT_WORKSPACE/config/.vikunja-token(每个 agent 有自己独立的 token 文件)
获取 Token:
RESP=$(curl -s -X POST http://localhost:3456/api/v1/login \
-H 'Content-Type: application/json' \
-d '{"username":"your-user","password":"your-pass"}')
TOKEN=$(echo "$RESP" | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
echo "$TOKEN"
存入 token 文件(每个 agent 不同路径):
mkdir -p "$AGENT_WORKSPACE/config"
echo "$TOKEN" > "$AGENT_WORKSPACE/config/.vikunja-token"
chmod 600 "$AGENT_WORKSPACE/config/.vikunja-token"
读取 Token:
get_token() {
[ -n "$VIKUNJA_TOKEN" ] && { echo "$VIKUNJA_TOKEN"; return; }
[ -f "$AGENT_WORKSPACE/config/.vikunja-token" ] && cat "$AGENT_WORKSPACE/config/.vikunja-token"
}
TOKEN=$(get_token)
多 Agent 场景:每个 agent 独立 login,token 互不干扰。Vikunja 本身 token 无过期时间,可长期使用。
项目(Projects)
# 列出项目
curl -s http://localhost:3456/api/v1/projects -H "Authorization: Bearer $TOKEN"
# 创建项目(PUT /projects)
curl -s -X PUT http://localhost:3456/api/v1/projects \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"title":"项目名","description":""}'
# 获取项目
curl -s http://localhost:3456/api/v1/projects/{id} -H "Authorization: Bearer $TOKEN"
# 更新项目(POST)
curl -s -X POST http://localhost:3456/api/v1/projects/{id} \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"title":"新标题"}'
# 删除项目
curl -s -X DELETE http://localhost:3456/api/v1/projects/{id} -H "Authorization: Bearer $TOKEN"
任务(Tasks)
⚠️ 创建用 PUT /projects/{id}/tasks,更新用 POST /tasks/{id}
# 在项目里创建任务(PUT,不是 POST)
curl -s -X PUT http://localhost:3456/api/v1/projects/{project_id}/tasks \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"title":"任务标题","description":"描述","priority":2}'
# 更新任务(POST,不是 PUT)
curl -s -X POST http://localhost:3456/api/v1/tasks/{task_id} \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"done":true,"priority":3}'
# 列出所有任务
curl -s http://localhost:3456/api/v1/tasks -H "Authorization: Bearer $TOKEN"
# 搜索标题
curl -s "http://localhost:3456/api/v1/tasks?s=关键词" -H "Authorization: Bearer $TOKEN"
# 过滤(done=false 只显示未完成)
curl -s "http://localhost:3456/api/v1/tasks?filter=done%20%3D%20false" \
-H "Authorization: Bearer $TOKEN"
# 列出某项目任务
curl -s http://localhost:3456/api/v1/projects/{project_id}/tasks \
-H "Authorization: Bearer $TOKEN"
# 删除任务
curl -s -X DELETE http://localhost:3456/api/v1/tasks/{id} -H "Authorization: Bearer $TOKEN"
评论(Comments)
# 添加评论(字段名是 comment,不是 text)
curl -s -X PUT http://localhost:3456/api/v1/tasks/{task_id}/comments \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"comment":"评论内容"}'
# 获取评论
curl -s http://localhost:3456/api/v1/tasks/{task_id}/comments \
-H "Authorization: Bearer $TOKEN"
标签(Labels)
# 创建标签
curl -s -X PUT http://localhost:3456/api/v1/labels \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"title":"in-progress","color":"#ff9900"}'
# 给任务打标签
curl -s -X PUT http://localhost:3456/api/v1/tasks/{task_id}/labels \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"labels": [{"id": 1}]}'
负责人(Assignees)
# 分配负责人
curl -s -X PUT http://localhost:3456/api/v1/tasks/{task_id}/assignees \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"user_id": 2}'
# 获取负责人
curl -s http://localhost:3456/api/v1/tasks/{task_id}/assignees \
-H "Authorization: Bearer $TOKEN"
信息查询
# 服务信息(版本、功能开关)
curl -s http://localhost:3456/api/v1/info -H "Authorization: Bearer $TOKEN"
Python 模板
import requests, os
BASE = "http://localhost:3456/api/v1"
TOKEN_FILE = os.path.join(os.getenv("AGENT_WORKSPACE", "."), "config", ".vikunja-token")
def get_token():
if os.getenv("VIKUNJA_TOKEN"):
return os.getenv("VIKUNJA_TOKEN")
with open(TOKEN_FILE) as f:
return f.read().strip()
def headers():
return {"Authorization": f"Bearer {get_token()}", "Content-Type": "application/json"}
def create_task(project_id, title, **kw):
return requests.put(f"{BASE}/projects/{project_id}/tasks",
json={"title": title, **kw}, headers=headers()).json()
def update_task(task_id, **kw):
return requests.post(f"{BASE}/tasks/{task_id}", json=kw, headers=headers()).json()
def search_tasks(q):
return requests.get(f"{BASE}/tasks", params={"s": q}, headers=headers()).json()
已知坑
- 创建任务用 PUT /projects/{id}/tasks,不是 POST
- 更新任务用 POST /tasks/{id},不是 PUT(PUT 报 405)
- 评论字段是
comment,不是text - 批量创建
POST /tasks/bulk文档有但实测不通,循环单条操作代替
Agent Rules
- 先尝试从
VIKUNJA_TOKEN环境变量读取 token;无则读$AGENT_WORKSPACE/config/.vikunja-token - Token 不硬编码,运行时从磁盘或环境变量读取
- 日志只含 metadata(操作类型、数量),无 token 值
- Token 文件权限 600
- Token 泄露后:重新 login 获取新 token 存入文件
能力标签
如何使用
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install vikunja-usage - 安装完成后,直接呼叫该 Skill 的名称或使用
/vikunja-usage触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.2
- Updated description to clarify supported features in Chinese and mention multi-agent token support.
- No functional or code logic changes; documentation only.
- No API changes. Usage, security, and workflow are unchanged.
v1.0.1
- Token 文件路径从 `$AGENT_WORKSPACE/.vikunja-token` 改为 `$AGENT_WORKSPACE/config/.vikunja-token`
- 所有相关的 Bash/Python 示例、文档说明同步为新 token 文件目录
- 无功能变更,仅路径与文档更新
- 继续支持 per-agent 独立 token 和多 agent 并发安全
v1.0.0
Initial release of Vikunja task manager skill.
- Supports creating and managing projects, tasks, labels, comments, and assignees via Vikunja REST API v1 at localhost:3456
- Task lookup, search, filtering, and done-toggle supported
- Reads per-agent token from VIKUNJA_TOKEN env or $AGENT_WORKSPACE/.vikunja-token (multi-agent safe)
- Requires curl; Python usage examples included
- Agent rules ensure no token hardcoding and secure token storage (permission 600)
元数据
常见问题
Vikunja Usage 是什么?
任务管理工具:通过 Vikunja REST API v1 创建项目、任务、标签和评论,支持任务搜索、过滤、完成状态切换。Requires: curl。读取 $VIKUNJA_TOKEN 环境变量或 $AGENT_WORKSPACE/config/.vikunja-token 文件获取 token,支持多 agent。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 74 次。
如何安装 Vikunja Usage?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install vikunja-usage」即可一键安装,无需额外配置。
Vikunja Usage 是免费的吗?
是的,Vikunja Usage 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Vikunja Usage 支持哪些平台?
Vikunja Usage 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Vikunja Usage?
由 AxelHu(@axelhu)开发并维护,当前版本 v1.0.2。
推荐 Skills