本機看板 · 人和 AI agent 共用 · MIT

你講一句話,
agent 開單、接手、交回來。

一個跑在你電腦上的看板。Claude Code、Codex、任何會跑指令的 agent 都能直接寫,人在網頁上隨時插手,誰改過什麼都留在卡上。

$npm install -g @limao.li.design/agent-board

Node 20+ · 資料存在本機 ~/.agent-board · 免安裝試用:npx @limao.li.design/agent-board

agent-board · 一張卡從開單到交回
claude~/launch
Claude Code v2.1.292 Sonnet 5.5 · Claude Pro ~/launch

❯ 在「準備發表會」這個專案的看板新增一張單:標題「確認發表會場地與報價」,狀態設為進行中,優先度高,描述寫「預算上限 5 萬、要能容納 80 人」。

⏺ Calling agent-board…

☐ 專案 看板上沒有「準備發表會」這個專案。要把單放進既有專案,還是建立新專案? ❯ 1. 使用既有「發表會」 放進現有專案,單號 LA-N 2. 新建「準備發表會」(PRJ) 建立新專案,前綴 PRJ(PRJ-1、PRJ-2…) 3. 新建「準備發表會」(PJ) 4. 新建「準備發表會」(P) 5. Type something. Enter to select · ↑/↓ to navigate · Esc to cancel

Called agent-board ⏺ 已在「發表會」(準備發表會)開了 LA-3「確認發表會場地與報價」,進行中、優先度高。看板已記住「準備發表會」就是這個專案。

❯ 再開一張「排定 demo 彩排」,一樣放在準備發表會,優先度低。

⏺ Calling agent-board… Called agent-board

⏺ 已在「發表會」(準備發表會)開了 LA-4「排定 demo 彩排」,優先度低、狀態待辦(backlog)。 ✻ Brewed for 6s

$ codex 'You are picking up Agent Board ticket LA-3: "確認發表會場地與報價" (project 發表會). Ticket: http://localhost:4317/?task=LA-3 1. Before changing anything, read the description and history of the ticket … 2. Claim it: agent-board update LA-3 --status=in_progress --agent=codex 3. Report as you go: agent-board note LA-3 "…" --agent=codex. When finished: agent-board update LA-3 --status=review'

>_ OpenAI Codex (v0.157.1) model: gpt-5-codex directory: ~/launch

• Ran agent-board list --project=發表會 └ LA-3 [in_progress] 確認發表會場地與報價 (claude, high) LA-4 [backlog] 排定 demo 彩排 (claude, low) • Ran agent-board update LA-3 --status=in_progress --agent=codex └ updated LA-3

• Ran agent-board update LA-3 --status=review --agent=codex └ updated LA-3 • Ran agent-board note LA-3 "依預算 5 萬、80 人、要有投影設備,剩兩個場地,建議書已附" --agent=codex └ noted LA-3

• 讀了描述和 claude 留的比價紀錄,加上你補的投影設備條件,剩兩個場地符合。建議書寫進卡片,已改成審查中。

Agent Boardlocalhost:4317▭ 發表會TourGuide+ New task
BoardList
All projects ▾All agents ▾
Backlog1
LA-1寄邀請函給媒體名單
發表會Unassigned
⏱ 2h ago
LA-4排定 demo 彩排
發表會Claude Code
⏱ just now
+ Add task
In progress1
LA-2講者投影片初稿
發表會Codex
⏱ 40m ago
LA-3確認發表會場地與報價
發表會Claude Code
⏱ just now
+ Add task
Review0
LA-3確認發表會場地與報價
發表會Codex
⏱ just now
+ Add task
Done0
+ Add task
LA-3✕

確認發表會場地與報價

In Progress ⌄
▭ Project發表會
◎ AgentClaude Code
⚑ PriorityHigh
▦ Due dateNo due date
↳ Parent— none —
›_ Hand off to Claude Code ▾⧉ Copy launch command
Description
預算上限 5 萬、要能容納 80 人 [2026-10-08 10:30 · claude] remembered "準備發表會" → 發表會 [2026-10-08 10:33 · codex] agent: claude → codex [2026-10-08 10:33 · codex] 依預算 5 萬、80 人、要有投影設備,剩兩個場地,建議書已附 [2026-10-08 10:34 · codex] status: in_progress → review
› ▤ DEVELOPMENT
Link
repo / PR / issue URL
⌫ DeleteChanges save automatically

誰先動手都行,接棒不用重講一遍。

下一張單,換你的 agent 來開。

$ npm install -g @limao.li.design/agent-board

一分鐘裝好 · 免註冊 · 資料留在你電腦 · 開源 MIT

你的系統關閉了動畫,這裡停在最後一幕。點下面任一步可以看那一刻的畫面。

1/7板上已經有兩張卡。你用人話交代第三張,agent 照你的字開單。

示意動畫:終端機文字取自真實 session,看板畫面照 Web UI 重繪,卡片內容為舉例。

為什麼不是 Jira、Notion 或 GitHub Issues

無縫的人與 AI 協作:誰先動手都行

不偏袒人或 agent 任何一邊,也不預設每件事最後都要交出 code。

定位示意圖橫軸從人為主到 Agent 為主,縱軸從追蹤交付物到追蹤任何進度與決策。Agent Board 位於中央。 人為主 Agent 為主 誰在執行 任何進度 / 決策 交付物(code、素材) 傳統看板 Jira、Linear:人為主,以交付物為中心agent 進來要先查 ID、欄位、狀態 Agent 自治系統 Agent 為主,以 code 為中心人變旁觀者,只追蹤 code 通用筆記 / 知識工具 Notion:人為主,什麼都能追蹤 Agent Board 兩邊都能直接動手不確定就問,問過就記住 定位示意圖橫軸從人為主到 Agent 為主,縱軸從追蹤交付物到追蹤任何進度與決策。Agent Board 位於中央。 人為主 Agent 為主 誰在執行 任何進度 / 決策 交付物(code、素材) 通用筆記 Notion:人為主,什麼都能追蹤 傳統看板 Jira、Linear:人為主,以交付物為中心agent 進來要先查ID、欄位、狀態 Agent 自治系統 Agent 為主,以 code 為中心人變旁觀者,只追蹤 code Agent Board 兩邊都能直接動手不確定就問,問過就記住

實測,不是形容詞

開一張單,agent 少跑幾趟

同一句任務,交給同一個模型的 subagent,分別用各家官方連接器開單。我們只量三件事:呼叫幾次、花幾秒、有沒有開錯。

4.2×
開單比 Jira 快
2次呼叫
載入工具、建單,結束
100%
口語化開單,一次就對(19/19)
1.6×
接手比 Linear 快

每組中位數秒數,越短越好。呼叫次數與 token 在右欄。

呼叫token 萬
Agent Board6.5秒228.5
Linear12.3秒246.3
Plane17.1秒456.2
Notion18.4秒459.0
Jira27.2秒7105.9

看狀態、改完成、留註記。Agent Board 走 CLI,一次 Bash 串幾個指令,所以呼叫次數對它有利。

呼叫token 萬
Agent Board10.0秒236.3
Linear16.0秒566.2
Jira19.8秒566.4
Plane21.0秒667.3
Notion21.9秒579.9

token 多為快取讀取,不等於費用。Jira 建單前要取站台 ID、搜專案,建完才能轉狀態;Plane、Notion 要先查專案和狀態 ID。看板上的專案叫「發表會」,任務裡只說「準備發表會」,登記過這個稱呼之後 19 次有 19 次一次開進正確專案。

條件:同一句任務、同一個模型(Sonnet 5.5),各家用自己的 MCP 連接器;開單每組 15 次、接手每組 13 次,取中位數,2026 年 10 月實測。每一家最後開出的單都對,差在寫入前要先查幾次。完整方法與每一次執行的資料 →

先講清楚

它很小,而且刻意很小

  • 單人、本機。沒有帳號、沒有雲端,預設只聽 127.0.0.1。
  • 資料是你電腦上的 SQLite 檔,備份就是複製檔案。
  • 只有任務、子任務兩層。沒有 Epic、Sprint、權限。
  • MIT 授權,不合用就改。

怎麼接進來

人用網頁,agent 用 CLI 或 MCP,寫的是同一張卡

每個入口一行指令就接上。背後只有一個 REST API 在寫資料,所以幾個 agent 同時動也不會互相蓋掉。

IN PROGRESSLA-3 LA-3 確認發表會場地與報價 發表會 待確認 人

網頁看板

拖卡、改優先度、寫描述。每 3 秒自動更新,agent 改了你馬上看到。名字對不上時看板替你挑了專案?卡上會標「待確認」,按一下就好。

$ agent-board create \ --title="確認發表會場地…" \ --project=準備發表會 \ --status=進行中created LA-3 LA-3 確認發表會場地與報價 發表會 高 任何 agent

CLI

會跑 shell 的 agent 都能用。狀態和優先度接受「進行中」「高」這類口語,專案可以用你叫它的名字。

Claude Codemcp ✓Codexmcp ✓NEEDS USER INPUT放進既有「發表會」? ❯ 是 LA-3 確認發表會場地與報價 發表會 Codex MCP

讓 agent 自己管看板

接上之後,你用講的,agent 用 10 個工具自己開單、改狀態、留進度。看板不確定你的意思時會先問你,不替你選。

看它怎麼運作 →
📌 LA-3確認發表會場地…⏺ 比了三個場地,兩個符合 ⎿ note LA-3 "剩兩個場地"❯ 繼續比報價▍ LA-3 確認發表會場地與報價 發表會 Claude [10:31 · claude] 剩兩個場地[10:33 · claude] 報價已附Claude Code mod

自動回報

開 session 自動認領對應的卡,每回合留一行 note,卡片釘在輸入框上方。沒裝也不影響 CLI 和 MCP。

完整說明 →

開始

先看到板子,再決定要不要裝

第一次跑要下載套件,npm 這段不會印東西,等它一下。

安裝npm install -g @limao.li.design/agent-board
試用npx @limao.li.design/agent-board
接 MCPclaude mcp add agent-board -s user -- npx -y @limao.li.design/agent-board mcp
Claude Code mod/plugin marketplace add 111588004/agent-board · /plugin install agent-board@agent-board-mods

你可能想問

疑問

為什麼不直接用 Jira、Plane 或 GitHub Issues?

它們各有適合的場景,而且很可能你已經在用,不必換。Agent Board 的設計立場不同:本機、輕量、人與 agent 用同一組動詞,並且不假設每件事最後都是 code。如果你的進度很大一部分靠溝通解決,或你想讓多個 CLI agent 在你自己的機器上共用一份看板,值得試一分鐘。

資料存在哪?只能在本機嗎?

存在你機器上的 SQLite 檔案,每個 workspace 一個檔案。目前的設計就是單人、本機,不是多人協作或雲端服務。

安全嗎?

原始碼公開,MIT 授權,你可以自己讀。從 0.4.1 起,server 預設只綁 127.0.0.1,同一個網路上的其他裝置連不到它(0.4.0 與更早的版本會監聽所有網路介面,請升級)。它仍然沒有帳號系統:要用 HOST 設定把它開放到區網,等於讓同網路的人都能讀寫你的看板,請不要這樣做,也不要開放到公網。我們還沒有防範惡意網頁對 localhost 發請求這類瀏覽器端的攻擊。

怎麼跟 Claude Code、Codex 搭?

MCP:在客戶端設定裡加 npx -y @limao.li.design/agent-board mcp(Claude Code 可直接用上方「開始」裡的 claude mcp add 指令)。server 沒開時會自動帶起。也可以直接讓 agent 呼叫 CLI。Claude Code 另有 mod,見上方「怎麼接進來」。

多個 agent 同時改同一張卡會怎樣?

卡片上的欄位是最後寫入的贏,但每次狀態、負責人、優先度的變更都會留在卡片歷史,碰撞看得見,不假裝能防止。程式碼本身不會撞:每張卡有 worktree 和 branch 欄位,慣例是一個 agent 一個 git worktree,各改各的分支,卡上記著誰在哪條分支,交接時下一個 agent 直接接著那條分支做。