Install
openclaw skills install movedoneManage Movedone kanban projects, columns, tasks, comments, and task links via the local HTTP API.
openclaw skills install 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