Vikunja Kanban
Vikunja kanban orchestrator — creates tasks in a Vikunja project directly via the Vikunja REST API and records each as a swamp data resource with its ID, title, labels, and status. Built as a homelab-native replacement for @webframp/hermes-kanban-orchestrator: no hermes binary, no shell-out — just an authenticated HTTP client talking to a self-hosted Vikunja instance.
New tasks are placed into a named kanban bucket (default "Backlog") of the target project — the kanban view is discovered automatically — so automation-created tasks land in a backlog column rather than the view's default working column. The bucket is resolved before the task is created, so an unknown bucket name fails with nothing created. Any project can be targeted per call via a projectId argument.
Methods
- new_task — Create a task in a Vikunja project (default or per-call projectId), placing it in a named bucket (bucketName) and optionally attaching an existing label by name (e.g. Urgent, High, Medium).
- list_recent — List the most recently created tasks in a project.
- audit — Read-only Definition-of-Ready audit of the whole board: empty/short descriptions, missing labels or label groups, unset priority, missing verdict/acceptance/source-link markers, stale cards per bucket role, WIP over the limit, buckets out of order.
- reorder — Sort every non-done bucket by priority then age. Dry run by default; apply moves one card at a time and re-reads until the board converges.
- due_report — Read-only: split the board's dated, not-done cards into overdue / due today / upcoming (lookaheadDays) with a link per card and a ready-to-send Markdown message, so a scheduled workflow can nudge on a card's due date.
- set_due_date — Set or clear one card's due date via a full-task read-modify-write, refusing done cards and asserting on read-back that the date took and the bucket did not change.
Global Arguments
| Argument | Type | Description |
|---|---|---|
| baseUrl | string | Base URL of the Vikunja instance, e.g. https://vikunja.example.com |
| webBaseUrl? | string | Base URL the web UI is reached at, used only to build task links in |
| apiToken | string | Vikunja personal API token (Bearer). Supply via a swamp vault |
| projectId | number | Default Vikunja project id tasks are created in and listed from (e.g. |
| viewId? | number | Optional explicit kanban view id for the default projectId. Normally |
| defaultBucketName | string | Bucket title (case-insensitive) that new_task places tasks into by |
| bucketRoles | object | Which bucket title (case-insensitive) plays which role on the board. |
| policy | object | Definition-of-Ready thresholds used by audit and the sort order used |
| timeoutMs | number | Per-request fetch timeout in milliseconds. |
| maxRetries | number | How many times to retry a request after an HTTP 429 rate-limit response. |
| userAgent | string | User-Agent header sent on all outbound requests. |
| Argument | Type | Description |
|---|---|---|
| apply | boolean | false (default) only reports the moves that would be made. true |
| buckets? | array | Bucket titles (case-insensitive) to reorder. Default: every bucket |
| maxIterations | number | Upper bound on single-card moves before reorder gives up. |
| Argument | Type | Description |
|---|---|---|
| lookaheadDays | number | Cards due within this many days after today are listed as upcoming. |
| now? | string | ISO 8601 instant to evaluate against instead of the clock (for tests |
| Argument | Type | Description |
|---|---|---|
| taskId | number | Vikunja task id. |
| dueDate | string | ISO 8601 instant to set as the due date (the day to look at the card |
| Argument | Type | Description |
|---|---|---|
| title | string | Task title. |
| description? | string | Optional task description/body. |
| dueDate? | string | Optional ISO 8601 due date, e.g. 2026-09-20T00:00:00Z. |
| priority? | number | Optional Vikunja numeric priority override (0=unset .. 5=DO NOW). |
| bucketName? | string | Kanban bucket title (case-insensitive) to place the task into, |
| skipIfTitleExists | boolean | If true (default), checks for a non-done task with the exact same |
| Argument | Type | Description |
|---|---|---|
| limit | number | Max results to return. |
| includeDone | boolean | Include tasks already marked done. |
Resources
Modified 1 models
Modified 1 models
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned