/install agkan
agkan
Overview
agkan is an SQLite-based CLI task management tool. It is optimized for collaboration with AI agents.
7 Statuses: icebox → backlog → ready → in_progress → review → done → closed
Quick Reference
Agent Guide
# Display a comprehensive guide for AI agents (overview, commands, workflows)
agkan agent-guide
Task Operations
# Create task
agkan task add "Title" "Body"
agkan task add "Title" --status ready --author "agent"
agkan task add "Subtask" --parent 1
agkan task add "Title" --file ./spec.md # Read body from file
agkan task add "Title" --blocked-by 1,2 # Set tasks that block this task
agkan task add "Title" --blocks 3,4 # Set tasks that this task blocks
agkan task add "Title" --assignees "alice,bob" # Set task assignees (comma-separated)
# List tasks
agkan task list # All tasks
agkan task list --status in_progress
agkan task list --tree # Hierarchical view
agkan task list --root-only # Root tasks only
agkan task list --tag 1,2 # Filter by tags
agkan task list --dep-tree # Dependency (blocking) tree view
agkan task list --sort title # Sort by field (id / title / status / created_at / updated_at), default: created_at
agkan task list --order asc # Sort order (asc / desc), default: desc
agkan task list --assignees "alice,bob" # Filter by assignees (comma-separated)
agkan task list --all # Include all statuses (including done and closed)
# Get details
agkan task get \x3Cid>
# Search
agkan task find "keyword"
agkan task find "keyword" --all # Include done/closed
# Update (positional argument form - backward compatible)
agkan task update \x3Cid> status in_progress
# Update (named option form - v1.6.0+)
agkan task update \x3Cid> --status in_progress
agkan task update \x3Cid> --title "New Title"
agkan task update \x3Cid> --body "New body text"
agkan task update \x3Cid> --author "agent"
agkan task update \x3Cid> --assignees "alice,bob"
agkan task update \x3Cid> --file ./spec.md # Read body from file
agkan task update \x3Cid> --status done --title "Updated Title" # Multiple options
# Count
agkan task count
agkan task count --status ready --quiet # Output numbers only
# Update parent-child relationship
agkan task update-parent \x3Cid> \x3Cparent_id>
agkan task update-parent \x3Cid> null # Remove parent
# Delete task
agkan task delete \x3Cid>
Blocking Relationships
# task1 blocks task2 (task2 cannot be started until task1 is complete)
agkan task block add \x3Cblocker-id> \x3Cblocked-id>
agkan task block remove \x3Cblocker-id> \x3Cblocked-id>
agkan task block list \x3Cid>
Tag Operations
# Tag management
agkan tag add "frontend"
agkan tag list
agkan tag delete \x3Ctag-id-or-name>
agkan tag rename \x3Cid-or-name> \x3Cnew-name>
# Tag tasks
agkan tag attach \x3Ctask-id> \x3Ctag-id-or-name>
agkan tag detach \x3Ctask-id> \x3Ctag-id-or-name>
agkan tag show \x3Ctask-id>
Metadata Operations
# Set metadata
agkan task meta set \x3Ctask-id> \x3Ckey> \x3Cvalue>
# Get metadata
agkan task meta get \x3Ctask-id> \x3Ckey>
# List metadata
agkan task meta list \x3Ctask-id>
# Delete metadata
agkan task meta delete \x3Ctask-id> \x3Ckey>
Priority (priority)
Task priority is managed with the priority key:
agkan task meta set \x3Ctask-id> priority \x3Cvalue>
| Value | Meaning |
|---|---|
critical |
Requires immediate attention. Blocking issue |
high |
Should be prioritized |
medium |
Normal priority (default) |
low |
Work on if there is time |
When to set priority: Priority is set during the planning phase (agkan-planning-subtask), at the same time the task is moved from backlog to ready. This is the responsibility of the planning skill. Skills that select tasks for execution (e.g., agkan-run) read this value to determine which task to work on next.
Tag Priority
When selecting or tagging tasks, use the following priority order:
| Priority | Tag Name |
|---|---|
| 1 | bug |
| 2 | security |
| 3 | improvement |
| 4 | test |
| 5 | performance |
| 6 | refactor |
| 7 | docs |
This is the canonical definition. All skills refer to this table.
JSON Output
Use the --json flag when machine processing is needed:
agkan task list --json
agkan task get 1 --json
agkan task count --json
agkan tag list --json
# Combine with jq
agkan task list --status ready --json | jq '.tasks[].id'
JSON Output Schema
agkan task list --json
{
"totalCount": 10,
"filters": {
"status": "ready | null",
"author": "string | null",
"tagIds": [1, 2],
"rootOnly": false
},
"tasks": [
{
"id": 1,
"title": "Task Title",
"body": "Body | null",
"author": "string | null",
"status": "icebox | backlog | ready | in_progress | review | done | closed",
"parent_id": "number | null",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"parent": "object | null",
"tags": [{ "id": 1, "name": "bug" }],
"metadata": [{ "key": "priority", "value": "high" }]
}
]
}
agkan task get \x3Cid> --json
{
"success": true,
"task": {
"id": 1,
"title": "Task Title",
"body": "Body | null",
"author": "string | null",
"status": "backlog | ready | in_progress | review | done | closed",
"parent_id": "number | null",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
},
"parent": "object | null",
"children": [],
"blockedBy": [{ "id": 2, "title": "..." }],
"blocking": [{ "id": 3, "title": "..." }],
"tags": [{ "id": 1, "name": "bug" }],
"attachments": []
}
agkan task count --json
{
"counts": {
"icebox": 0,
"backlog": 0,
"ready": 2,
"in_progress": 1,
"review": 0,
"done": 8,
"closed": 5
},
"total": 16
}
agkan task find \x3Ckeyword> --json
{
"keyword": "Search keyword",
"excludeDoneClosed": true,
"totalCount": 3,
"tasks": [
{
"id": 1,
"title": "Task Title",
"body": "Body | null",
"author": "string | null",
"status": "ready",
"parent_id": "number | null",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"parent": "object | null",
"tags": [],
"metadata": []
}
]
}
agkan task block list \x3Cid> --json
{
"task": {
"id": 1,
"title": "Task Title",
"status": "ready"
},
"blockedBy": [{ "id": 2, "title": "...", "status": "in_progress" }],
"blocking": [{ "id": 3, "title": "...", "status": "ready" }]
}
agkan task meta list \x3Cid> --json
{
"success": true,
"data": [
{ "key": "priority", "value": "high" }
]
}
agkan tag list --json
{
"totalCount": 3,
"tags": [
{
"id": 1,
"name": "bug",
"created_at": "2026-01-01T00:00:00.000Z",
"taskCount": 2
}
]
}
Typical Workflows
Icebox Review (agkan-icebox)
Icebox holds ideas and candidates that are not yet ready for planning. Review them periodically to decide whether to promote or close each one.
# Review icebox tasks
agkan task list --status icebox
# Promote to backlog when requirements become clear
agkan task update \x3Cid> status backlog
# Close if no longer needed
agkan task update \x3Cid> status closed
Icebox → Backlog conditions:
- Requirements or background are now clear enough to plan
- External blockers have been resolved
- Circumstances have changed and the task is now relevant
Icebox → Closed conditions:
- The need no longer exists
- A duplicate already exists in a later stage
- Superseded by another approach
Receiving Tasks as an Agent
# Check assigned tasks
agkan task list --status ready
agkan task get \x3Cid>
# Start work
agkan task update \x3Cid> status in_progress
# Complete
agkan task update \x3Cid> status done
Structuring Tasks
# Create parent task
agkan task add "Feature Implementation" --status ready
# Add subtasks
agkan task add "Design" --parent 1 --status ready
agkan task add "Implementation" --parent 1 --status backlog
agkan task add "Testing" --parent 1 --status backlog
# Set dependencies (Design → Implementation → Testing)
agkan task block add 2 3
agkan task block add 3 4
# View overall structure
agkan task list --tree
Configuration
Place .agkan.yml in the project root to customize the DB path:
path: ./.agkan/data.db
Or use environment variable: AGENT_KANBAN_DB_PATH=/custom/path/data.db
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install agkan - After installation, invoke the skill by name or use
/agkan - Provide required inputs per the skill's parameter spec and get structured output
What is Agkan?
Use when managing tasks with the agkan CLI tool - creating, listing, updating tasks, managing tags, blocking relationships, or tracking project progress with... It is an AI Agent Skill for Claude Code / OpenClaw, with 298 downloads so far.
How do I install Agkan?
Run "/install agkan" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Agkan free?
Yes, Agkan is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Agkan support?
Agkan is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Agkan?
It is built and maintained by GENDOSU (@gendosu); the current version is v0.1.0.