Loom — Elixir製 AI コーディングアシスタント
概要
Loomは、コードベースを理解して編集提案・実行・コミットを行うElixir製のAIコーディングアシスタントです。CLIとPhoenix LiveViewベースのWeb UIを提供し、リアルタイムチャット、ファイルブラウズ、差分表示、対話的な意思決定グラフを介して作業をガイドします。意思決定グラフは永続化され、過去の推論や選択を追跡することで一貫性のある複雑な変更を支援します。開発フローに統合して反復的な修正や複数案の管理が可能です。(約300字)
リポジトリの統計情報
- スター数: 37
- フォーク数: 2
- ウォッチャー数: 37
- コミット数: 14
- ファイル数: 14
- メインの言語: Elixir
主な特徴
- Elixirネイティブ設計:OTPの並行処理やPhoenix LiveViewを活用したリアルタイムUI。
- 永続化された意思決定グラフ:推論チェーンと選択履歴を保存し、再現性ある編集を実現。
- リポジトリインテリジェンス:コードベースを解析して適切な編集・差分を提案。
- マルチインターフェース:CLIとWeb UIの両方で操作可能、ストリーミングチャットや差分確認をサポート。
技術的なポイント
Loomの肝は「永続化された意思決定グラフ」とElixirの強みを組み合わせた点にあります。意思決定グラフは、モデルの推論ステップやユーザーの選択をノードとして記録し、それをディスクや設定ファイルで保持することで、後からの追跡・分岐・再実行が可能です。この設計により、単発の提案に留まらず、長期的な編集履歴と因果関係を参照しながら作業できます。UIはPhoenix LiveViewを用い、チャットのストリーミングやファイルブラウズ、差分表示をリアルタイムで反映。バックエンドはElixir/OTPのプロセスモデルで多重の要求を安全に扱い、ファイル操作や外部コマンド実行、GitコミットなどのIOを非同期に処理します。LLMとの連携は外部API経由を想定しており、提案の生成→差分提示→ユーザー承認→実行→コミットというワークフローを主眼に置いています。設定や初期データは .loom.toml.example 等で管理され、プロジェクト単位での調整が容易です。(約700字)
プロジェクトの構成
主要なファイルとディレクトリ:
- .formatter.exs: file
- Elixirコード整形の設定ファイル。プロジェクト内フォーマットルールを定義。
- .gitignore: file
- Gitで無視するファイル・ディレクトリの一覧。
- .loom.toml.example: file
- Loomの設定例。APIキーや動作モード、保存パスなどのテンプレート。
- PHASE-5-RESEARCH-FINDINGS.md: file
- 研究・調査フェーズの知見や設計判断の記録。
- README.md: file
- プロジェクト概要、インストール・起動手順、主要機能の説明。
…他 9 ファイル
プロジェクトは軽量にまとまっており、設定例とドキュメント、アセット(バナー等)を含んでいます。Phoenix LiveViewのUIやCLIのエントリポイント、意思決定グラフの永続化ロジック、Gitやファイル操作を扱うモジュールが主要な関心領域になります。
まとめ
ElixirとLiveViewを活かした永続的推論チェーン搭載のAI支援ツール、開発ワークフローへの統合性が魅力。
リポジトリ情報:
- 名前: loom
- 説明: An Elixir-native AI coding assistant with persistent decision graphs, repo intelligence, and a Phoenix LiveView UI
- スター数: 37
- 言語: Elixir
- URL: https://github.com/bleuropa/loom
- オーナー: bleuropa
- アバター: https://avatars.githubusercontent.com/u/12567969?v=4
READMEの抜粋:
Loom
An Elixir-native AI coding assistant that weaves reasoning, code intelligence, and persistent memory into one thread.
Loom reads your codebase, proposes edits, runs commands, and commits changes — through both an interactive CLI and a Phoenix LiveView web UI with real-time streaming chat, file browsing, diff viewing, and an interactive decision graph. It maintains a persistent **dec…