npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@pi-unipi/kanboard

v3.0.3

Published

Kanboard v3 — deferred-work board: CLI/daemon bridge, task runner and skill

Readme

Kanboard

Keep a per-project board of work for later, and let the agent work the tasks when you allow it.

@pi-unipi/kanboard · part of UniPi

Kanboard dashboard: tasks that need you, the next ready task and project health

Kanboard board: lanes from Backlog to Done with task cards

What it does

  • Keeps tasks in lanes: Backlog, Todo, In Progress, In Review, Blocked, Done, Cancelled and Archived.
  • Opens a web board for each project. The board updates when the agent or the CLI changes a task.
  • Lets you add a task from the prompt with no agent turn.
  • Lets the agent work tasks only within a budget that you give it, or in autowork.
  • Asks the agent to continue a task that it started and did not finish.
  • Stores tasks as markdown files. The Rust binary unipi-kanboard writes all changes. Refer to the crate README.

Quick start

UniPi installs this package:

pi install npm:@pi-unipi/unipi

To install this package alone:

pi install npm:@pi-unipi/kanboard

npm installs the binary for your platform as an optional package: Linux x64 and arm64, macOS x64 and arm64, and Windows x64.

  1. Run /unipi:kanboard onboard to register the project.
  2. Run /unipi:kanboard-add Fix the flaky login test to add a task.
  3. Run /unipi:kanboard open and open the link that it prints.
  4. Run /unipi:kanboard-do work the login tasks to let the agent work them.

Commands

| Command | What it does | |---|---| | /unipi:kanboard | Lists the commands. | | /unipi:kanboard open [--host H] [--port N] | Starts the board daemon if it does not run, and prints the board link. | | /unipi:kanboard close | Stops the board daemon. Tasks in progress do not change. | | /unipi:kanboard onboard | Registers this project. You can run it again with no effect. | | /unipi:kanboard status | Shows the daemon and the active claims. | | /unipi:kanboard show [--all] | Shows the board in the chat. | | /unipi:kanboard doctor | Examines the setup: binary, daemon, project and bind address. | | /unipi:kanboard-add [-p 1-5] [--after ID] [--status backlog\|todo] <title> | Adds a task. Lines below the title become the description. A file path in the description becomes an attachment. | | /unipi:kanboard-do <request> | Gives the request to the agent with a task budget. off removes the budget. | | /unipi:kanboard-autowork start\|stop | start lets the agent work all ready tasks, one at a time. stop stops the offers of new tasks. |

Priority -p: 1 none, 2 low, 3 medium, 4 high, 5 urgent.

The output of these commands shows in the chat. It does not go into the model context.

Task budget

/unipi:kanboard-do gives the agent two budgets:

  • Task slots (doTasks, default 5). Each start uses one slot.
  • Board writes (doWrites, default 10). add, edit, link, order, a move between Backlog and Todo, and a note on a task of another session each use one write.

Some operations are always free: reads, and finish, move <ID> blocked, note and attach on tasks that this session started. The budget stays until the agent uses it. A new -do fills the budget again. It does not add to the old budget.

In autowork, the agent has no budget. It can use any mode, for example goal or ralph.

Subagents and sidekicks can read the board, but cannot write to it. The guard tells them to report to the lead.

Settings

Open /unipi:settings → Kanboard. The file is ~/.unipi/config/kanboard/config.json.

| Key | Default | What it does | |---|---|---| | chainGate | in_review | Status that a dependency must reach before the next task is ready: in_review or done. The web board uses it. | | idleMin | 10 | Minutes with no board open before the daemon stops. | | host | 127.0.0.1 | Bind address. Any other address needs an access token. | | port | 0 | Daemon port. 0 lets the OS select a port. | | archiveAfterDays | 0 | Archives done and cancelled tasks after this many days. 0 turns it off. | | retentionDays | 90 | Moves archived and cancelled tasks to cold storage after this many days. | | openBrowser | false | Opens the board in a browser on open. | | requireAuth | false | Asks for the token on 127.0.0.1 too. | | keepToken | false | Uses the same token after a daemon restart. | | maxSessions | 2 | Number of sessions that can hold In Progress tasks in one project. | | turnAddLimit | 20 | add calls in one turn. 0 means no limit. | | reminders | true | Reminds the agent to start a Todo task before it edits files. | | doTasks | 5 | Task slots that one -do gives. | | doWrites | 10 | Board writes that one -do gives. |

At session start, Kanboard runs archive-sweep when archiveAfterDays or retentionDays is more than 0.

How it works

Kanboard has no task runner. The agent works each task in your session. When a run ends, a monitor on the turn arbiter can add one message to continue:

  • Claims (priority 50). A task that this session started is still In Progress. The monitor asks the agent to continue, finish or block it.
  • Next task (priority 40). Autowork is on and a ready task exists. The monitor offers it. When no task is ready, autowork stops.

The monitor waits for a long-horizon owner (priority 100) and for pending events. It stops after you press Esc or a run fails. It also stops after 2 runs with no tool calls, after 5 messages for one task, or after 3 offers of one task in autowork.

At session start, Kanboard releases claims of dead processes. At session end, it moves the open claims of this session back to Todo. The next start shows a notice about these tasks.

Remote access

The daemon listens on 127.0.0.1 by default and needs no token. To use the board from another machine, use an SSH tunnel:

ssh -N -L 37473:127.0.0.1:37473 <hostname>

You can also bind another address, for example /unipi:kanboard open --host 0.0.0.0 --port 37473 or --host tailscale. Then the daemon makes an access token, and the printed link contains it. Anyone with the link can edit the board.

Troubleshooting

| Problem | Fix | |---|---| | kanboard binary unavailable for <platform>-<arch> | Set UNIPI_KANBOARD_BIN to the binary path, or build crates/kanboard with cargo build --release. | | The board says that some task files have errors | Run unipi-kanboard validate --fix, then unipi-kanboard validate. | | The daemon does not respond | Run /unipi:kanboard close, then /unipi:kanboard open. | | No task is ready | Run unipi-kanboard list --ready --json and read waitingFor. A cancelled dependency blocks a task. |

See also