<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jimmy</title>
    <description>The latest articles on DEV Community by Jimmy (@tempolong).</description>
    <link>https://dev.to/tempolong</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4109312%2F9769d333-1689-4196-ad30-e208b6fc5733.png</url>
      <title>DEV Community: Jimmy</title>
      <link>https://dev.to/tempolong</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tempolong"/>
    <language>en</language>
    <item>
      <title>agent-board: A Simple Task Board for Coding Agents</title>
      <dc:creator>Jimmy</dc:creator>
      <pubDate>Fri, 04 Sep 2026 19:11:56 +0000</pubDate>
      <link>https://dev.to/tempolong/everything-i-didnt-build-oh3</link>
      <guid>https://dev.to/tempolong/everything-i-didnt-build-oh3</guid>
      <description>&lt;p&gt;I've tried several ways to work with multiple coding agents, including Paperclip and other agent setups. I kept looking for something simpler.&lt;/p&gt;

&lt;p&gt;I wanted to give an agent a task, see what it was doing, and hand the result to another agent for review. I wanted to stay involved without constantly copying messages between sessions.&lt;/p&gt;

&lt;p&gt;In the setups I tried, too much effort went into running the coordination itself. Agents re-read context, discussed who should take work, and posted updates for other agents to read. That used tokens before much coding happened.&lt;/p&gt;

&lt;p&gt;I wanted coordination simple enough to handle with a shared task board.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://github.com/jharjadi/agent-board" rel="noopener noreferrer"&gt;agent-board&lt;/a&gt;. I'm sharing it because someone else might be looking for the same small thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;A kanban board where directories are columns and tickets are Markdown files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.agent-board/
  todo/     007-fix-login-redirect.md
  doing/    003-add-auth.md
  review/   005-refactor-api.md
  blocked/
  done/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Moving a ticket means moving a file. Comments are sections appended to that file. Commit the board files and git gives you their history.&lt;/p&gt;

&lt;p&gt;The implementation is one Python file, standard library only. There is a CLI for agents and a local web UI for me. Both work on the same files. Refresh the page and it rebuilds the board from disk.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fve9q7hll08r2s797h4y6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fve9q7hll08r2s797h4y6.png" alt="agent-board's local web UI" width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No database, framework, build step, or background service to install. Run &lt;code&gt;board serve&lt;/code&gt; when you want the UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  What using it looks like
&lt;/h2&gt;

&lt;p&gt;In a project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;board init
board new &lt;span class="s2"&gt;"Fix login redirect loop"&lt;/span&gt; &lt;span class="nt"&gt;--desc&lt;/span&gt; &lt;span class="s2"&gt;"401 doesn't clear the cookie"&lt;/span&gt;
board serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;code&gt;http://127.0.0.1:8899&lt;/code&gt; in your browser. You can create tickets, move them between columns, set an owner hint, and add comments.&lt;/p&gt;

&lt;p&gt;Then tell an agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Take ticket 1 from the board. You're the implementer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;board init&lt;/code&gt; adds a short workflow to the project's agent instruction files, normally &lt;code&gt;AGENTS.md&lt;/code&gt; and &lt;code&gt;CLAUDE.md&lt;/code&gt;. An agent that loads those files has the commands available in its instructions. The workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;board show 1
board take 1 &lt;span class="nt"&gt;--owner&lt;/span&gt; implementer &lt;span class="nt"&gt;--from&lt;/span&gt; todo
&lt;span class="c"&gt;# Do the work, then report what changed and how it was checked.&lt;/span&gt;
board comment 1 &lt;span class="s2"&gt;"Fixed in a1b2c3d; regression test passes"&lt;/span&gt; &lt;span class="nt"&gt;--by&lt;/span&gt; implementer
board move 1 review
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--from todo&lt;/code&gt; check refuses the claim if the ticket has already left that column.&lt;/p&gt;

&lt;p&gt;Now another agent can read &lt;code&gt;review&lt;/code&gt;, inspect the code, leave a comment, and move the ticket to &lt;code&gt;done&lt;/code&gt; or &lt;code&gt;blocked&lt;/code&gt;. The handoff is there for the next session to read. I don't have to reconstruct it from two chat histories.&lt;/p&gt;

&lt;p&gt;Claude, Codex, or a person can do either job. The board does not need to know which one it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the simplicity comes from
&lt;/h2&gt;

&lt;p&gt;The board never knows which agents exist.&lt;/p&gt;

&lt;p&gt;There is no roster to maintain, no manager agent assigning work, and no scheduler deciding who is free. Moving a ticket to &lt;code&gt;review&lt;/code&gt; makes it available to whoever is handling review. The optional owner field is a sticky note; it routes nothing.&lt;/p&gt;

&lt;p&gt;The board itself makes no LLM calls. Listing tickets, moving files, adding comments, and watching a column are ordinary local operations. Agents still use tokens to read tickets and do the work; the board adds no model calls of its own.&lt;/p&gt;

&lt;p&gt;I also kept the columns fixed and left out presence indicators and automatic claim expiry. I watch for stuck work myself. That is a reasonable tradeoff for how I use it: a few agents with me in the loop.&lt;/p&gt;

&lt;p&gt;The longer explanation of what I left out, and why, lives in &lt;a href="https://github.com/jharjadi/agent-board/blob/main/docs/decisions.md" rel="noopener noreferrer"&gt;docs/decisions.md&lt;/a&gt;. Those choices keep the tool small enough that I can understand and change it.&lt;/p&gt;

&lt;h2&gt;
  
  
  One small thing that helped
&lt;/h2&gt;

&lt;p&gt;My previous setup had a message bus, but I still kept typing “check your inbox.” Eventually I noticed that the project's agent instructions never mentioned it. New sessions had no reason to know it existed.&lt;/p&gt;

&lt;p&gt;That is why &lt;code&gt;board init&lt;/code&gt; writes the instructions. It was a small change that made the board easier to use than another delivery mechanism would have.&lt;/p&gt;

&lt;p&gt;It does not wake an idle agent. If you want nudges, the optional &lt;code&gt;board watch&lt;/code&gt; command polls a column locally and can feed a notification into your terminal setup. The README has an example. You can also just tell an agent to check the board.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;You need Python 3.11+ on macOS or Linux. To install the CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/jharjadi/agent-board.git
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.local/bin
&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$PWD&lt;/span&gt;&lt;span class="s2"&gt;/agent-board/board"&lt;/span&gt; ~/.local/bin/board
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure &lt;code&gt;~/.local/bin&lt;/code&gt; is on your &lt;code&gt;PATH&lt;/code&gt;, then run &lt;code&gt;board init&lt;/code&gt; in the project where you want a board. Install the tool once; each project gets its own ticket files.&lt;/p&gt;

&lt;p&gt;If your agents work in separate git worktrees, point every agent, watcher, and web server at the same board:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;AGENT_BOARD_ROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/absolute/path/to/project/.agent-board
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use a board already created with &lt;code&gt;board init&lt;/code&gt;. Separate worktrees keep the code apart; that shared path keeps coordination together.&lt;/p&gt;

&lt;p&gt;Keep the board on a local filesystem and the UI on localhost. Mutations through the CLI and UI share a file lock; direct file edits bypass it. This is a small, supervised tool, with &lt;a href="https://github.com/jharjadi/agent-board#known-limitations" rel="noopener noreferrer"&gt;known limitations documented in the README&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It is MIT licensed. Use it, read the single file, or fork it to fit your workflow.&lt;/p&gt;

&lt;p&gt;I built this because I kept wanting something smaller than the setups I had tried. If you have a few coding agents and mostly need a place to put work and hand it on, &lt;a href="https://github.com/jharjadi/agent-board" rel="noopener noreferrer"&gt;here it is&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
