← 返回 Skills 市场
uminai-dev

Flux Board

作者 uminai · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ pending
33
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install flux-kanban-agent
功能描述
Manage Flux kanban boards, cards, columns, and labels through the Flux REST API. Create and move cards, assign members, toggle labels, search, and build boar...
使用说明 (SKILL.md)

Flux

Flux is a kanban board management platform. Use this skill to build automations, manage cards, and organize work through the Flux REST API.

Setup

  • FLUX_API_KEY (required) — an API key beginning with flux_. Every request is authenticated with it.
  • FLUX_BASE_URL (optional) — the origin of the Flux instance, e.g. https://flux.umin.ai. Defaults to https://flux.umin.ai.

Authentication

Send the key as a Bearer token on every request:

Authorization: Bearer flux_YOUR_KEY

API keys carry granular scopes, so a request may succeed for reads but be rejected for writes if the key lacks the scope. A 401 means the key is missing or invalid; a 403 means the key is valid but not permitted for that action.

Core concepts

  • Active workspace — most board/card endpoints operate on the active workspace tied to the key. List workspaces with GET /api/workspaces, change it with POST /api/workspaces/switch.
  • Two ID formats — boards accept either a UUID or a short URL id (shortId, e.g. av-tX6qQ). Cards have an internal UUID and a human id (humanId, e.g. TB-1) used in URLs. Use the UUID for write operations unless an endpoint says otherwise.
  • Cache key gotcha — a board is keyed by its shortId, not by card.boardId (which is a UUID). Don't assume the two are interchangeable when matching a card to its board.
  • Soft deletes — every DELETE is reversible. Deleted records are hidden, not destroyed, and can be restored via POST /api/undo.
  • Idempotency — include X-Idempotency-Key: \x3Cuuid> on every write (POST/PATCH/PUT/ DELETE). On retry, Flux returns the original result instead of duplicating the action.
  • Dates — all timestamps are ISO 8601.

Endpoints

Workspaces

Method Path Body / Query Notes
GET /api/workspaces List your workspaces → { workspaces: [{ id, name, slug }] }
POST /api/workspaces { name } Create a workspace
POST /api/workspaces/switch { workspaceId } Set the active workspace

Boards

Method Path Body / Query Notes
GET /api/boards Boards in the active workspace → { boards: [{ id, shortId, title, columns }] }
GET /api/boards/all Boards across all workspaces
POST /api/boards { title, workspaceId? } Create a board
GET /api/boards/{boardId} accepts shortId or UUID Full board → { board, cards: { [cardId]: card }, boardLabels, members }
PATCH /api/boards/{boardId} { title?, settings?, doneColumnId? } Update a board
DELETE /api/boards/{boardId} Soft-delete a board

Columns

Method Path Body / Query Notes
POST /api/columns { boardId, title } Create a column
PATCH /api/columns { columnId, title?, isDone? } Update a column
DELETE /api/columns?columnId={id} Delete a column
PUT /api/columns/reorder { boardId, columnIds: [ordered UUIDs] } Reorder columns

Cards

Method Path Body / Query Notes
POST /api/cards { boardId, columnId, title, description? } Create a card
PATCH /api/cards { cardId, title?, description?, columnId?, assignees?, dueDate?, coverUrl?, archivedAt? } Update a card. assignees is an array of user IDs and replaces the whole set.
DELETE /api/cards?cardId={id} Soft-delete a card
GET /api/cards/{cardId} Full detail: checklist, comments, attachments, labels, assignees
PUT /api/cards/reorder { boardId, moves: [{ cardId, columnId, position }] } Move/reorder cards

Card sub-resources

Checklist

Method Path Body / Query
POST /api/cards/{cardId}/checklist { text }
PATCH /api/cards/{cardId}/checklist { itemId, text?, done?, position? }
DELETE /api/cards/{cardId}/checklist?itemId={id}

Comments

Method Path Body / Query
POST /api/cards/{cardId}/comments { content, parentId? }
PATCH /api/cards/{cardId}/comments { commentId, content }
DELETE /api/cards/{cardId}/comments?commentId={id}

Labels on a card (toggle a board-level label onto the card)

Method Path Body / Query
POST /api/cards/{cardId}/labels { labelId }
DELETE /api/cards/{cardId}/labels?labelId={id}

Attachments

Method Path Body / Query Notes
POST /api/cards/{cardId}/attachments/upload-url { fileName, mimeType } Returns a presigned S3 upload URL
POST /api/cards/{cardId}/attachments { fileName, fileUrl, s3Key?, mimeType? } Register the attachment after uploading
DELETE /api/cards/{cardId}/attachments?attachmentId={id} Delete an attachment

Labels (board-level definitions)

Method Path Body / Query
POST /api/boards/{boardId}/labels { text, color }
PATCH /api/boards/{boardId}/labels { labelId, text?, color? }
DELETE /api/boards/{boardId}/labels?labelId={id}

Search & undo

Method Path Body / Query Notes
GET /api/search?q={query}&workspaceId={id?}&type={card|board?} Full-text search
POST /api/undo { boardId } Undo the last action on a board

Common workflows

Create a card on a board

  1. GET /api/boards — find the board by title, note its shortId.
  2. GET /api/boards/{shortId} — read board.columns to pick the target columnId.
  3. POST /api/cards with { boardId, columnId, title }.

Move a card to another column

  1. GET /api/boards/{shortId} — find the source/target columnIds and the card.
  2. PUT /api/cards/reorder with { boardId, moves: [{ cardId, columnId, position: 0 }] } (position: 0 drops it at the top of the target column).

Assign members to a card

  1. GET /api/boards/{shortId} — the response members array lists user IDs.
  2. PATCH /api/cards with { cardId, assignees: [userId1, userId2] }. Assignees are replaced wholesale — send the full desired list, not a delta. Note: the write field is assignees; board reads expose the same data as assigneeIds. Sending assigneeIds to PATCH is silently ignored and returns 422 "No updates provided".

Add a label to a card

  1. GET /api/boards/{shortId} — the response boardLabels array lists label IDs. (Create the label first with POST /api/boards/{boardId}/labels if it doesn't exist.)
  2. POST /api/cards/{cardId}/labels with { labelId }.

Notes & gotchas

  • Always send X-Idempotency-Key: \x3Cuuid> on writes to make retries safe.
  • All deletes are soft and reversible via POST /api/undo.
  • Board IDs accept both UUID and shortId; card IDs have a UUID and a humanId (TB-1).
  • Resolve a board's columns and labels before creating or moving cards — you need their IDs from GET /api/boards/{shortId}.
  • A 403 on a write usually means the API key lacks the required scope, not that the resource is missing.
能力标签
requires-oauth-tokenrequires-sensitive-credentials
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install flux-kanban-agent
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /flux-kanban-agent 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of the Flux Kanban Agent skill. - Manage Flux kanban boards, cards, columns, and labels via the Flux REST API. - Supports creating, moving, and updating cards; assigning members; toggling labels; and building board automations. - Includes workspace, board, column, card, checklist, comment, label, attachment, search, and undo endpoints. - Authentication via API key (`FLUX_API_KEY`) with optional custom base URL. - Provides detailed setup instructions, workflows, and important usage notes.
元数据
Slug flux-kanban-agent
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Flux Board 是什么?

Manage Flux kanban boards, cards, columns, and labels through the Flux REST API. Create and move cards, assign members, toggle labels, search, and build boar... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 33 次。

如何安装 Flux Board?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install flux-kanban-agent」即可一键安装,无需额外配置。

Flux Board 是免费的吗?

是的,Flux Board 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Flux Board 支持哪些平台?

Flux Board 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Flux Board?

由 uminai(@uminai-dev)开发并维护,当前版本 v1.0.0。

💬 留言讨论