Hello Kanboard community,
My name is Brad Campbell, and I’ve been a daily Kanboard user for the past three years — which means I’ve been lurking here for almost exactly as long. It’s past time I introduced myself.
My story with Kanboard
A few years ago I made the decision to home-school my two junior-high-age kids while working full-time. Most parents don’t take that path — and if they did, they’d quickly be scrambling for a way to organize the chaos. What made it workable for us — genuinely, concretely workable — was Kanboard.
I set up a single shared project with a swimlane per child. Due dates, columns tracking assignment → submitted → graded, automatic actions for color-coding — my kids could see exactly what was expected of them and I could see exactly where things stood without being physically present for every moment of the school day. That combination of structure and async visibility is something most tools don’t offer, and Kanboard delivered it without getting in the way.
I’m not exaggerating when I say this setup made our home school work. It was the difference between chaos and something we could all rely on.
Why I’m here today
More recently I’ve started using Kanboard to manage a broader portfolio of personal projects — engineering work, research, long-horizon planning. As my use expanded I kept running into the same gaps: no way to see tasks across multiple projects at once, no cross-project dependency visualization, no milestones, no scriptable CLI for automation. I searched the plugin directory and found partial solutions but nothing that addressed the full picture.
So I built what I needed. Kanboard gave me something real over the past three years, and these tools exist because of that. Open-sourcing them is my way of giving something back.
What I’m releasing
1. AssignColorsByDayOfWeek — automatic action for day-of-week task coloring
This one is the oldest of the three — it’s been running in our home-school project for nearly three years, which is actually where it came from. We used color to encode the day of the week a task was due (Monday yellow, Tuesday green, and so on), which kept due date reasoning simple and made the board instantly scannable by two kids who weren’t yet thinking in calendar dates.
The plugin registers a single automatic action: on task creation, if the task has a due date, it sets the card color based on the day of week of that due date — not the creation date. Color-per-day is configurable per project using the standard automatic action UI, with a “No change” option for any day you want to leave alone. Timezone-aware. Small, stable, and genuinely used in production for years despite the version number.
2. Kanboard Portfolio Plugin — cross-project portfolio management
Kanboard already supports cross-project task links (blocks / is blocked by) — but provides no tooling to see or manage them. This plugin fills that gap.
Named portfolio groups with dashboards and health indicators; cross-project milestones with automatic progress tracking and at-risk detection; interactive D3.js dependency graph, blocked task lists, and critical path views; an aggregate board and task list across all portfolio projects with board-level blocking indicators (
on cards blocked by work in other projects); Gantt timeline and roadmap views; and a full JSON-RPC API including a structured status report endpoint designed for scripting and automation. Hook-only integration — no template overrides, minimal conflict surface.
This is a recent build. Testing, bug reports, and feedback are very much welcome.
3. kanboard-cli — standalone Python SDK and CLI
Kanboard ships a CLI of its own, but using it requires the full Kanboard project installed locally — or constantly logging into a server or execing into a container every time you want to run a command. I wanted something I could just run from my own machine against any Kanboard instance.
kanboard-cli is a standalone Python package: full coverage of the Kanboard JSON-RPC API across all 158 methods, installable with pip install kanboard-cli, no Kanboard installation required. It works as both an importable SDK (import kanboard, typed models, structured exceptions) and a kanboard command-line tool with subcommand groups for every resource, four output formats (table, json, csv, quiet), named profiles for multiple instances, shell completions, and a workflow plugin system for drop-in automation scripts. Both include a cross-project orchestration layer — portfolio management, milestones, dependency graph traversal, and critical-path computation — with a dual-backend design: local JSON file (no plugin required, offline-capable) or server-side via the Portfolio plugin.
Also recent. Feedback and testing very welcome.
What’s coming
I’m also actively working on a few more plugins. The one furthest along is an Epics plugin — a Jira-style epic layer that sits between projects and tasks. First-class Epic entities with a four-state lifecycle, hierarchical nesting, score-weighted progress rollup, dedicated board and tree views, and board card badges. When the Portfolio plugin is installed it gains cross-project scope, Gantt integration, and dependency graph coloring. I’ll post a proper introduction when it’s ready to share.
A note on maturity
The colors plugin has been quietly running in production for nearly three years — battle-tested even if the version number doesn’t suggest it. The Portfolio plugin and the CLI are recent; they’re functional and reasonably well-tested, but I’d genuinely appreciate community eyes on them. Issues and PRs are open on all three repos.
All three are MIT-licensed. If any of this is useful to you, or if you’ve been building in a similar direction, I’d love to hear from you.
Thank you for building and sustaining a tool that made a real difference for my family.
All three repositories are on my GitHub profile: github.com/geekmuse
MIT-licensed. Issues and PRs welcome on all repos.
— Brad