LOCAL ISSUE CLI / TUI

Lissue

開発中のタスクを、コードのすぐそばで扱うためのRust製CLIです。人はTUIで、AIエージェントはコマンドとJSONで、同じタスクを受け渡せます。

  • Rust
  • Ratatui
  • SQLite
  • JSON
LissueのTUIでタスクと関連ファイルを操作している画面
実際のTUIデモから切り出した画面

BACKGROUND

GitHub Issuesは便利ですが、実装中のコードやAIエージェントからは少し遠く感じます。一方、TODOをひとつのファイルへ集めると、複数の作業が重なったときにGitの競合が起きやすくなります。

APPROACH

ローカルの操作はSQLiteへ、共有する状態は1タスク1JSONへ分けました。人が読むためのTUIと、AIが扱うための構造化コマンドを、同じデータの上に載せています。

HOW IT WORKS

  1. 01

    置く

    リポジトリ直下に.lissueを初期化

  2. 02

    引き受ける

    作業者が担当を宣言し状態を更新

  3. 03

    進める

    TUIまたはCLIでメモと文脈を追加

  4. 04

    合わせる

    Git経由でJSONを他環境と同期

ARCHITECTURE

LissueのCLIとTUI、アプリケーションコア、SQLite、JSON、Gitの関係を示したアーキテクチャ図
横にスクロールして全体を確認できます

DESIGN DECISIONS

SQLiteとJSONのハイブリッド構成

手元の高速な検索や一覧表示にはSQLiteを使い、チームや複数端末での同期にはGit管理しやすい1タスク1JSONファイルを書き出します。

Ratatuiによる専用TUI

ブラウザを開かずにターミナル内で作業を完結させるため、キーバインド主体のTUIを標準で組み込みました。

AIエージェント向けの出力モード

人間用の整形表示だけでなく、AIがパースしやすいフラットなJSON出力をすべての主要サブコマンドに用意しました。

VERIFICATION

  • crates.ioでの一般公開と複数環境での動作確認
  • 41件の単体・統合テストの自動実行
  • 実際の開発現場での日常利用によるドッグフーディング

STATUS & NEXT

基本機能は安定しており、自分自身の日々の開発タスク管理において主力ツールとして稼働しています。

今後の予定

  • 外部イシュートラッカーとの双方向同期ブリッジ
  • 複数リポジトリを跨いだアグリゲーション表示
  • プラグイン機構によるカスタムフィールド対応