Kanban
The project's own task board (Trello/Jira-style), on by default. Manage it from the app or ask the AI via MCP.
Kanban is a task board for the project itself (columns + prioritized cards) — it's not a feature for your app's end users, it's for you (and the AI, via MCP) to track what's left to do, test, and review. It ships on by default in Quick mode (turn it off with kasy remove kanban if you don't want it).
The board lives inside the Admin Console (/admin/kanban) — only an admin (same role field as the Admin Console) sees and edits it from the app. From the CLI/MCP you can manage it without any of that.
Implementation
Via MCP: just ask — "what's left to do on this project?", "create a task to review checkout", "move task X to Done". The assistant calls the kanban tool (full CRUD for columns and tasks) without opening the app. See Kasy MCP.
-
It's already on in Quick mode. To toggle it manually:
kasy add kanban # turn on (Firebase and Supabase; API REST not supported) kasy remove kanban # turn offVia MCP: "turn Kanban on/off for this project" (
add_feature/remove_feature) — different from thekanbantool above, which edits the board itself, not the module. -
From the app, as admin: Settings → double-tap the version number → Admin Console → Kanban tab. Only whoever has
role: adminon their own database record sees that tab — see how to become admin in Admin Console. -
From a terminal, without needing to be admin in the app (uses a developer-level credential, not the end user's):
kasy kanban list # the whole board kasy kanban create-column --name "Blocked" kasy kanban create-task --title "Review checkout" --column-id <id> --priority high kasy kanban move-task --id <id> --column-id <destination-id> kasy kanban --help # every actionOn Firebase it uses your own
gcloudlogin (the same onekasy new/kasy preparealready set up); on Supabase it uses the linked project'sservice_role_key(supabase loginneeds to be done). No new password to store anywhere.
Information
Why it never asks you to log in as admin
Editing the board from the app requires role: admin because, in that context, it's the end user themselves issuing the write — the backend's rules (Firestore isAdmin() / Supabase RLS is_admin()) block anyone who isn't an admin. The CLI and MCP don't go through that path at all: they talk to the database directly with a developer-level credential (your gcloud login, or Supabase's service_role_key), which already bypasses those rules — that's why the AI can manage the board without you ever having to promote yourself to admin first.
Shape
| Entity | Fields |
|---|---|
Column (kanban_columns) | id, name, order |
Task (kanban_tasks) | id, title, description (optional), columnId, order, priority (low|medium|high|urgent|empty) |
Reads are open to any signed-in app user; writes are admin-only (from the app) or via CLI/MCP (no such requirement there).
Backend support
| Backend | Board | Note |
|---|---|---|
| Firebase | Yes | Firestore, via your gcloud login |
| Supabase | Yes | Postgres, via service_role_key |
| API REST | No | No generic way to obtain an admin credential for an arbitrary custom backend |
Last updated on 08/02/2026

