--- name: planka 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. author: Steve Cliff email: me@stevecliff.com last_updated: 2026-04-01 14:46:50 --- # Planka Skill Manage Planka project boards using the pcli CLI. Use when the user wants to interact with Planka boards, cards, lists, tasks, labels, or comments. ## Prerequisites Ensure environment variables are set: ```bash export PLANKA_URL="https://planka.example.com" export PLANKA_API_KEY="your-api-key" ``` Ensure `pcli` is in PATH and `jq` is installed. ## Global Flags All commands (apart from import/export) 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 pcli project create --name "Name" --type private # type: private or shared pcli project delete # Export/Import pcli project export [--board ] > backup.json pcli project import --file backup.json pcli project import < backup.json ``` Export outputs a portable JSON file (names, not IDs). Import creates all resources with fresh IDs. Import fails if the project+board name combination already exists on the target. Comments are exported with `(Original comment by )` prefix for attribution. **Note:** Export outputs its own envelope format (`{version, exportedAt, project}`) directly — not the standard `{data, error}` envelope. Import progress and errors go to stderr. ### Boards ```bash pcli board list pcli board get # includes lists and cards pcli board actions [--limit N] pcli board create --project --name "Board Name" [--position N] pcli board delete ``` ### Lists (Board Columns) ```bash pcli list create --board --name "Column Name" [--type active|closed] [--position N] pcli list get pcli list update [--name "..."] [--type active|closed] [--color "..."] [--position N] [--board ] pcli list delete ``` ### 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 complete Kanban board ```bash # Create board BOARD_ID=$(pcli board create --project --name "Development Board" | jq -r '.data.id') # Create columns pcli list create --board $BOARD_ID --name "Backlog" --type "active" --position 0 TODO_ID=$(pcli list create --board $BOARD_ID --name "To Do" --type "active" --position 65536 | jq -r '.data.id') PROGRESS_ID=$(pcli list create --board $BOARD_ID --name "In Progress" --type "active" --position 131072 | jq -r '.data.id') DONE_ID=$(pcli list create --board $BOARD_ID --name "Done" --type "closed" --position 196608 | jq -r '.data.id') # View the board pcli board get $BOARD_ID --format table ``` ### 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 ``` ### Export and import a project ```bash # Export entire project pcli project export "My Project" > project-backup.json # Export single board pcli project export "My Project" --board "Sprint Board" > board-backup.json # Import to another instance (or same instance if project+board combo doesn't exist) pcli project import --file project-backup.json ```