Install
openclaw skills install @kaichaosun/movedoneManage Movedone kanban projects, columns, tasks, comments, and task links via the local HTTP API.
openclaw skills install @kaichaosun/movedoneManage Movedone kanban projects, columns, tasks, comments, and task links directly from OpenClaw.
Settings > OpenClawexport MOVEDONE_BASE_URL="http://127.0.0.1:5613"
export MOVEDONE_AUTH_TOKEN="your-bearer-token"
All commands use curl to hit the local Movedone HTTP API.
curl -s "$MOVEDONE_BASE_URL/projects" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s -X POST "$MOVEDONE_BASE_URL/projects" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Launch Plan","defaultTemplate":true}'
curl -s "$MOVEDONE_BASE_URL/projects/{project_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s -X PATCH "$MOVEDONE_BASE_URL/projects/{project_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Renamed Project"}'
curl -s -X DELETE "$MOVEDONE_BASE_URL/projects/{project_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s -X POST "$MOVEDONE_BASE_URL/projects/{project_id}/columns" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Blocked"}'
curl -s -X PATCH "$MOVEDONE_BASE_URL/columns/{column_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"In Review"}'
curl -s -X DELETE "$MOVEDONE_BASE_URL/columns/{column_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s "$MOVEDONE_BASE_URL/tasks/search?projectId={project_id}&query=bug" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s "$MOVEDONE_BASE_URL/tasks/{task_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s -X POST "$MOVEDONE_BASE_URL/tasks" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"columnId":"{column_id}",
"title":"Write release notes",
"description":"Summarize the user-facing changes.",
"priority":"high",
"tags":["release","docs"]
}'
curl -s -X PATCH "$MOVEDONE_BASE_URL/tasks/{task_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title":"Write final release notes",
"description":"Include HTTP API updates.",
"priority":"medium",
"tags":["release","docs"],
"aiStatus":"ready"
}'
curl -s -X POST "$MOVEDONE_BASE_URL/tasks/{task_id}/move" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"toColumnId":"{target_column_id}",
"newPosition": 2
}'
curl -s -X DELETE "$MOVEDONE_BASE_URL/tasks/{task_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s "$MOVEDONE_BASE_URL/tasks/{task_id}/comments" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s -X POST "$MOVEDONE_BASE_URL/tasks/{task_id}/comments" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "X-Agent-Name: OpenClaw" \
-d '{"content":"Finished the API integration and started verification."}'
curl -s "$MOVEDONE_BASE_URL/tasks/{task_id}/links" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
curl -s -X POST "$MOVEDONE_BASE_URL/tasks/{task_id}/links" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"targetTaskId":"{target_task_id}",
"linkType":"depends_on"
}'
curl -s -X DELETE "$MOVEDONE_BASE_URL/tasks/{task_id}/links/{target_task_id}" \
-H "Authorization: Bearer $MOVEDONE_AUTH_TOKEN" \
-H "Content-Type: application/json"
X-Agent-Name header to identify the agent when adding comments (defaults to "Agent" if omitted)add_comment to append progress notes, status updates, working commentary, or intermediate results; do not overwrite the task description for that purposedepends_on, blocks, and related