dashi-taskboard を実際に動かしてみた動いた
Codex/Claude Code などのAIエージェント向けに、issue(タスク)をカンバン形式で管理するローカル完結のタスクボード。Node.jsのHTTPサーバー+Web UIと、同じAPIを叩く`taskctl` CLIで構成される。
この日に実際に動かした結果です。内容の誤りに気づかれた場合はお問い合わせください。確認のうえ訂正します。
使い方
やること:ローカルにタスクボードのWebサーバーを立て、CLIからプロジェクトとissueを1件作って状態を動かす。
依存関係をインストールし、Web UIをビルドする。
npm install npm run build`dist/web/`にビルド済みのHTML/JS/CSSが生成される
ローカルサーバーを起動する。
npm start`Codex Taskboard listening on http://127.0.0.1:47823`と表示され、ブラウザで開くとタイトルが`Taskboard`のページが返る
`taskctl`でプロジェクトを1つ作る。
npm run taskctl -- project create --id my-project --name "My project" --workspace-path /tmp/my-project作成したプロジェクトのJSON(id, name, labelsなど)が標準出力に返る
issueを作る。README通りに`--thread-id`無しで叩くと`USAGE_ERROR`になるので、`CODEX_THREAD_ID`環境変数(または`--thread-id`)を付けて実行する。
CODEX_THREAD_ID=local-verify npm run taskctl -- issue create --project my-project --title "日本語タイトルのテスト issue" --status todo --priority high --labels product,mvpidentifierが`MYP-1`のissueがJSONで返る。日本語タイトルはそのまま文字化けせず入る
作ったissueの状態を動かす。`move`も同様に`CODEX_THREAD_ID`が要る。
CODEX_THREAD_ID=local-verify npm run taskctl -- issue move MYP-1 --status in_progress npm run taskctl -- issue get MYP-1`status`が`in_progress`に変わり、`version`が2に上がったissueが取得できる
通した結果
"identifier":"MYP-1","projectId":"my-project","title":"日本語タイトルのテスト issue","description":"","status":"in_progress","priority":"high","labels":["product","mvp"]
使ってみて良かった点
- `npm install`→`build`→`start`だけでローカルにHTTPサーバーが立ち、GPUや有料APIは不要。無料枠すら要らない完全ローカル動作
- `taskctl`のJSON出力はプロジェクト・issue双方とも構造化されていて読みやすく、issueは`get MYP-1`のようにUUIDでなく発行された識別子(`<プロジェクト略号>-<連番>`)で参照できる
- issueの`status`を`move`で変えると`version`が自動でインクリメントされ、楽観的ロックの仕組みがCLIからでも確認できた
使ってみて不便だった点
- プロジェクト作成時に既定で入るラベル(`缺陷`, `特性`, `改进`など)が中国語のまま入るので、使うにはラベルを作り直す必要がある
- ビルド後のJS成果物に1MB超のチャンクがあり、Vite自身が分割を促す警告を出す(機能上は問題ないが初回ロードは重め)
詰まった点と、効いた対処
npm run taskctl -- issue create --project my-project --title "日本語タイトルのテスト issue" --status todo --priority high --labels product,mvp{"schemaVersion":2,"error":{"code":"USAGE_ERROR","message":"Codex conversation attribution requires --thread-id or CODEX_THREAD_ID"}}READMEの`Use the CLI`の例には`--thread-id`が付いていないが、実際には`issue create`/`issue move`など変更系コマンドは`--thread-id <ID>`か環境変数`CODEX_THREAD_ID`のどちらかが無いと`USAGE_ERROR`で失敗する。適当な文字列(本検証では`local-verify`)を`CODEX_THREAD_ID`に設定すると通った
curl -s http://127.0.0.1:47823/api/projects/my-project/tasks{"error":{"code":"NOT_FOUND","message":"API route not found"}}推測したAPIパスは存在しなかった。HTTP APIの正確なパスはドキュメント化されておらず、本検証では`taskctl`経由での確認にとどめた
確認した条件
| 確認日 | 2026-09-08 |
|---|---|
| 試した版 | bd264e7ff3402785f1e8b0bb789106358352707b |
| 実行環境 | Node.js v22.22.2 / npm 10.9.7。macOSアプリ化(Tauri)やCodexへの埋め込み(CDP注入)はGUI・macOS前提のためこの検証機(Linux, ヘッドレス)では対象外とし、`npm install`→`npm run build`→`npm start`のローカルサーバーと`taskctl` CLIのみ検証した。 |