2.3 KiB
2.3 KiB
Why
Planka is a self-hosted Kanban board application with a REST API, but there is no CLI tool to interact with it programmatically. AI agents and automated workflows need a simple, scriptable interface to manage cards, tasks, and comments without using the web UI. A single Go binary (pcli) provides a lightweight, dependency-free tool that can be dropped into any CI/CD pipeline or agent environment.
What Changes
- New Go binary
pcliproviding a Cobra-based CLI to interact with the Planka API - Nested command structure:
pcli <resource> <action> [args] [flags] - Authentication via bearer token from environment variables (
PLANKA_URL,PLANKA_TOKEN) — no login flow, no on-disk token storage - JSON output by default with consistent
{"data": ..., "error": null}response envelope - Optional
--format=tablefor human-readable output - Read-only access to projects and boards
- Full CRUD for cards, comments, task lists, tasks, and labels
- Card operations: move, duplicate, assign/unassign users, add/remove labels
- Board and card activity log (actions) — read-only
card list --board <id>enriches responses withlistName(resolved from list data)- Lists treated as an implementation detail — not exposed as top-level commands
Capabilities
New Capabilities
api-client: HTTP client layer for Planka API — base client with auth, request/response handling, and per-resource methodscli-commands: Cobra command tree — project, board, card, comment, task-list, task, label subcommands with flags and argument parsingoutput-formatting: Response envelope and format switching — JSON default, table option, consistent error handlingcard-operations: Card-specific composite operations — move (list + position), duplicate, assign/unassign members, add/remove labels, enriched board-level card listing
Modified Capabilities
None — greenfield project.
Impact
- New repository structure:
main.go,cmd/,client/,model/,output/packages - Dependencies: Go module
github.com/dcgsteve/pcli, Cobra library, standard library HTTP client - External API: Depends on Planka v2.0 API (OpenAPI 3.0 spec in
planka-api.json) - Environment: Requires
PLANKA_URLandPLANKA_TOKENenvironment variables at runtime