--- name: kanban description: Manage Planka project boards using the pcli CLI. Use when the user wants to interact with Planka boards, cards, lists, tasks, labels, or comments. compatibility: Requires pcli binary in PATH and PLANKA_URL + PLANKA_API_KEY environment variables set metadata: author: steve-cliff version: "1.0" --- # pcli - Planka CLI CLI for the Planka project management API. All commands return JSON by default with envelope `{"data": ..., "error": null}`. Use `jq` to extract fields. ## Prerequisites Ensure environment variables are set: ```bash export PLANKA_URL="https://planka.example.com" export PLANKA_API_KEY="your-api-key" ``` Ensure `jq` and `pcli` are installed and in the path. ## Global Flags All commands accept: `--format json|table`, `--url `, `--api-key `, `--log-level debug|info|warn|error` ## Commands ### Status Overview ```bash pcli status ``` Returns summary of all boards, lists, and card counts (open/closed per list). ### Projects ```bash pcli project list pcli project get ``` ### Boards ```bash pcli board list pcli board get # includes lists and cards pcli board actions [--limit N] ``` ### Cards ```bash # List (one of --board or --list required, mutually exclusive) pcli card list --board [--limit N] pcli card list --list [--limit N] # CRUD pcli card get pcli card create --list --name "Name" [--description "..."] [--type project|story] [--position N] [--due-date "ISO8601"] [--due-completed] pcli card update [--name "..."] [--description "..."] [--type ...] [--position N] [--due-date "..."] [--due-completed] pcli card delete pcli card duplicate --name "Copy" [--position N] pcli card move --list [--position N] # Members pcli card assign --user pcli card unassign --user # Labels pcli card add-label --label pcli card remove-label --label # Actions pcli card actions [--limit N] ``` ### Comments ```bash pcli comment list --card [--limit N] pcli comment create --card --text "..." pcli comment update --text "..." pcli comment delete ``` ### Task Lists ```bash pcli task-list create --card --name "Checklist" [--position N] [--show-on-front] [--hide-completed] pcli task-list get pcli task-list update [--name "..."] [--position N] [--show-on-front] [--hide-completed] pcli task-list delete ``` ### Tasks ```bash pcli task create --task-list --name "Item" [--position N] [--completed] pcli task update [--name "..."] [--position N] [--completed] pcli task delete ``` ### Labels ```bash pcli label create --board --name "Bug" --color "berry-red" [--position N] pcli label update [--name "..."] [--color "..."] [--position N] pcli label delete ``` ## Extracting IDs from Output All responses use `{"data": ..., "error": null}`. Extract IDs with jq: ```bash # Single object pcli card create --list --name "X" | jq -r '.data.id' # Array pcli card list --board | jq -r '.data[].id' ``` ## Common Workflows ### Create a card with a checklist ```bash CARD_ID=$(pcli card create --list --name "Task" | jq -r '.data.id') TL_ID=$(pcli task-list create --card $CARD_ID --name "Steps" | jq -r '.data.id') pcli task create --task-list $TL_ID --name "Step 1" pcli task create --task-list $TL_ID --name "Step 2" ``` ### Move all cards between lists ```bash pcli card list --list | jq -r '.data[].id' | while read id; do pcli card move $id --list done ```