usharik.dev

← All articles

Kandev: running AI coding agents from a task board, even from bed

Published · Alex Usharovski

Not long ago, my work with AI coding agents looked like this: a cloud VM, tmux on it, five or six windows inside. In one, Claude Code is fixing an Android app; in another, Codex is reading a diff; in a third, Gemini is researching something; in the rest, I no longer remember what. It worked. But more and more often I caught myself not writing code, not even thinking about the problem, just walking from window to window to see which agent was waiting for me.

Now all of that lives in Kandev. Here is which of my problems it solved, how to set it up, and why I picked it over the other options.

What was wrong

The agents were not the problem. Everything around them was.

What Kandev is

Kandev is a task board, like Trello or Jira, where the assignees are AI agents. It is open source (AGPL-3.0), self-hosted, with no telemetry. The backend is a single Go binary; the interface opens in a browser.

What it looks like in practice:

On paper it is an ordinary task tracker. In practice it changed my working day quite a bit.

Development from bed

The most useful part turned out to be something I did not expect. Kandev runs on a cloud VM and opens in a browser, so I can run development from anywhere. Including from my phone, lying in bed.

In the evening I write a couple of tasks on my phone. Not code, just plain human text, sometimes with typos; the agents understand them perfectly well. In the morning I look at the "Review" column: what is done, what the agent checked, where it is unsure. I answer questions, ask for fixes, approve. I open the laptop when I need to look at something closely or think about architecture.

The phone does not get a cut-down version: same diff, same chat, same plan. The agent does not care where the reply came from, and all the compiling and testing happens on a machine with 32 GB of memory, not on the phone.

I did not start working around the clock; if anything, the opposite. Before, answering a one-word question from an agent meant walking over to the computer. Now I answer and go back to whatever I was doing.

How to set it up

I will describe my setup: a Linux VM in the cloud, reachable only through Tailscale. If you only want Kandev on your own laptop, the first step is enough.

1. Install. I used npm. Kandev itself is a Go binary with the interface built in; it does not need Node.js to run:

npm install -g kandev@latest
kandev

Without Node.js you can use brew install kdlbs/kandev/kandev (macOS and Linux) or Scoop on Windows. On first start, Kandev creates a workspace, a "Development" workflow and two executors: local and Worktree.

2. A service. On a server, Kandev should live on its own, not inside my SSH session:

# a systemd user service
kandev service install
# keep running when logged out
sudo loginctl enable-linger "$USER"

3. Access from outside, for me only. The VM is in my Tailscale network, and Tailscale Serve gives Kandev an HTTPS address that only my devices can reach. First, bind Kandev to localhost and pin the port: by default it listens on all interfaces, and if port 38429 is taken it picks a random one. For the service that is two lines in override.conf (systemctl --user edit kandev):

[Service]
Environment=KANDEV_SERVER_HOST=127.0.0.1
Environment=KANDEV_BACKEND_PORT=38429

Then Tailscale Serve:

tailscale serve --bg --https=8443 http://127.0.0.1:38429

My phone has the Tailscale app, and an address like https://<machine>.<tailnet>.ts.net:8443 opens like any website. Agents in Kandev run commands on the server, and anyone who reaches Kandev without signing in is an administrator. So do not expose it without a VPN, Cloudflare Access or Kandev's own authentication turned on.

4. Agents. Settings → Agents: Kandev finds the installed CLIs by itself. Each CLI signs in once, its usual way (subscription, OAuth or API key), in a terminal on the server, as the same user Kandev runs as.

5. Repositories. Settings → Workspaces → Repositories → Add repository. You can also set scripts that run when a copy of the repository is created, for example npm ci.

6. First task. New Task, pick the repository and the agent, keep the Worktree executor, write what needs doing. Then watch the agent work, and do not rush the PR until you have checked the result yourself.

Rakes I stepped on

Why it beats almost every alternative

Plenty of tools for parallel agents have appeared over the past year. I have looked at the main ones. Briefly, how I see them:

For me it was not one feature that decided it, but the combination:

Where it falls short

Kandev has its downsides too:

Bottom line

If you work with one agent and are happy in a terminal, you do not need Kandev. If you have several agents and more than one task at a time, and you want to look in on the work from somewhere other than your desk, give it a try. It gave me back the feeling that I am running the work rather than running between windows. And being able to answer an agent from bed turned out to be not a gimmick but the most useful thing it gave me.

Links: Kandev repository, documentation.