from praisonaiagents import Agentagent = Agent(name="kanban-agent", instructions="Manage kanban boards via CLI.")agent.start("Show the current kanban board and move completed tasks to Done.")
The user runs praisonai kanban commands to list boards, add tasks, and update status from the terminal.CLI commands for kanban task management through praisonai kanban subcommands.
Feature Status: The CLI commands documented here require wrapper implementation. The core SDK provides protocols only. See praisonaiagents.kanban.protocols for available interfaces.
# Human creates high-level taskpraisonai kanban create "Build user system" --assignee coordinator# Coordinator agent breaks it down (via agent tools)# Worker agents claim and complete subtasks (via agent tools)# Human monitors progresspraisonai kanban list --status running --json | jq '.tasks[] | .title'
Each kanban task now records every attempt (kanban_runs), supports a per-task retry/circuit-breaker (max_retries), and accepts idempotent creation (idempotency_key). See Attempt History & Retry.
# Create a task with retry limitspraisonai kanban create "Deploy to staging" --max-retries 3# Complete with structured handoffpraisonai kanban complete <task-id> --summary "Deployed v2.1.0" --metadata '{"sha": "abc123"}'# List runs for a taskpraisonai kanban runs <task-id>
The following command reference describes the expected CLI interface. Implementation depends on wrapper package.
list
create
show
move
comment
link
complete
block
unblock
boards
dispatch
reclaim
List kanban tasks with filtering options.
# List all taskspraisonai kanban list# Filter by statuspraisonai kanban list --status ready# Filter by assigneepraisonai kanban list --assignee developer# Specific boardpraisonai kanban list --board project-a# JSON outputpraisonai kanban list --json# Combine filterspraisonai kanban list --status todo --assignee agent --limit 10
Options:
--status, -s: Filter by status (triage, todo, ready, running, blocked, review, done, archived)
--assignee, -a: Filter by assignee username
--board, -b: Board name (default: “default”)
--limit, -l: Maximum tasks to show (default: 50)
--json: Output as JSON
Create a new kanban task.
# Basic taskpraisonai kanban create "Implement user authentication"# With detailspraisonai kanban create "Fix login bug" \ --body "Users can't log in with special characters" \ --assignee developer \ --status ready \ --priority 5# Different boardpraisonai kanban create "Review PR #123" --board project-a# JSON outputpraisonai kanban create "Setup CI/CD" --json
Arguments:
title: Task title (required)
Options:
--body, -b: Task description
--assignee, -a: Username to assign task to
--status, -s: Initial status (default: “todo”)
--priority, -p: Priority level (higher = more important, default: 0)
--board: Board name (default: “default”)
--json: Output as JSON
Display detailed task information.
# Show task detailspraisonai kanban show task_abc123# JSON output praisonai kanban show task_abc123 --json
Shows task details, comments, and dependency information.Arguments:
task_id: The task ID to display (required)
Options:
--json: Output as JSON
Move a task to a different status.
# Move to readypraisonai kanban move task_abc123 ready# Move to runningpraisonai kanban move task_abc123 running# Move to donepraisonai kanban move task_abc123 done
# Add progress commentpraisonai kanban comment task_abc123 "Authentication module 50% complete"# Different authorpraisonai kanban comment task_abc123 "Looks good to me" --author reviewer# JSON outputpraisonai kanban comment task_abc123 "Testing phase started" --json
Arguments:
task_id: The task ID to comment on (required)
text: Comment text (required)
Options:
--author, -a: Comment author (default: current user)
--json: Output as JSON
Create a dependency link between tasks.
# Create dependency (design must finish before implementation)praisonai kanban link task_design task_implement# JSON outputpraisonai kanban link task_parent task_child --json
Child task waits in its current column (todo/blocked) until all parents reach done/archived — then the dispatcher auto-promotes it to ready. See Dependency Auto-Promotion.Arguments:
parent_id: Parent task ID (must complete first)
child_id: Child task ID (depends on parent)
Options:
--json: Output as JSON
Mark a task as completed.
# Mark completepraisonai kanban complete task_abc123# With completion messagepraisonai kanban complete task_abc123 --comment "Authentication working perfectly"# JSON outputpraisonai kanban complete task_abc123 --json
Automatically moves task to “done” status.Arguments:
task_id: The task ID to complete (required)
Options:
--comment, -c: Completion comment
--json: Output as JSON
Mark a task as blocked with a reason.
# Block task with reasonpraisonai kanban block task_abc123 "Waiting for API credentials"# JSON outputpraisonai kanban block task_abc123 "Database migration needed" --json
Automatically moves task to “blocked” status and adds a comment with the reason.Arguments:
task_id: The task ID to block (required)
reason: Blocking reason (required)
Options:
--json: Output as JSON
Remove block and move task back to ready status.
# Unblock taskpraisonai kanban unblock task_abc123# With resolution commentpraisonai kanban unblock task_abc123 --comment "Got API credentials"
Arguments:
task_id: The task ID to unblock (required)
Options:
--comment, -c: Resolution comment
--json: Output as JSON
List and manage available boards.
# List all boardspraisonai kanban boards# Switch active boardpraisonai kanban boards --switch project-a# Create new boardpraisonai kanban boards --create new-project
On each tick the dispatcher first promotes any dependent tasks whose parents are all complete, then claims ready tasks. The dispatcher automatically claims “ready” tasks and spawns agent processes to work on them.Options:
--max-concurrent, -m: Maximum concurrent tasks (default: 3)
--poll-interval, -p: Seconds between polls (default: 5.0)
--status: Check if dispatcher is running
--stop: Stop the dispatcher
--daemon, -d: Run in background
Reclaim orphaned tasks from crashed workers.
# Reclaim all orphaned taskspraisonai kanban reclaim# Reclaim specific taskpraisonai kanban reclaim --task-id task_abc123# Force reclaim (ignore timeouts)praisonai kanban reclaim --force
Used to recover tasks that were claimed by agents that crashed or were interrupted.Options:
--task-id, -t: Specific task to reclaim
--force, -f: Force reclaim ignoring normal timeouts