# ai.shell 開発状況 ## プロジェクト概要 - **目的**: Claude Codeのようなローカル環境で動作するAIコーディングアシスタント - **アーキテクチャ**: Rust CLI + Python MCP Server + Ollama (Local LLM) - **作者**: syui - **リポジトリ**: https://git.syui.ai/ai/shell ## 現在の実装状況 ### ✅ 完了した機能 1. **基本アーキテクチャ** - Rust CLIクライアント - Python MCPサーバー - HTTP REST API通信 2. **環境構築** - `~/.config/syui/ai/shell/` にPython venv環境 - セットアップスクリプト (`make setup`) - 起動スクリプト 3. **CLI機能** - インタラクティブモード - ワンショット実行 (`aishell exec "prompt"`) - ファイル分析 (`aishell analyze file`) - ヘルスチェック (`aishell health`) 4. **コマンド** - `/help` - ヘルプ表示 - `/clear` - 画面クリア - `/model [name]` - モデル切り替え(UI実装済み、機能は未実装) - `/analyze ` - ファイル分析 - `/create ` - プロジェクト作成 5. **MCP Server API** - `POST /execute` - ツール実行 - `GET /health` - ヘルスチェック - `GET /tools` - 利用可能ツール一覧 ## 🚧 未実装・改善が必要な機能 ### 高優先度 1. **会話履歴の保持** - 現在は単発のリクエストのみ - コンテキストを維持した連続的な会話 2. **ファイル操作の安全性** - ファイル書き込み前の確認 - バックアップ機能 - undo/redo機能 3. **エラーハンドリング** - Ollamaが起動していない場合の対処 - ネットワークエラーの適切な処理 ### 中優先度 1. **モデル切り替え機能** - `/model` コマンドの実装 - 設定ファイルへの保存 2. **Git統合** - `git diff` の解析 - コミットメッセージ生成 - ブランチ情報の取得 3. **プロジェクトテンプレート** - より多くの言語サポート - カスタムテンプレート ### 低優先度 1. **TUIモード** - ratatuiを使用した分割画面 - プログレスバー表示 2. **プラグインシステム** - カスタムツールの追加 - 外部コマンドの統合 ## 技術的な詳細 ### ディレクトリ構造 ``` /Users/syui/ai/shell/ ├── src/ │ ├── main.rs # CLIエントリーポイント │ ├── lib.rs # ライブラリルート │ ├── mcp_client.rs # MCPクライアント実装 │ ├── config.rs # 設定管理 │ ├── prompt.rs # プロンプト表示 │ └── commands.rs # コマンドハンドラー ├── mcp_server.py # MCPサーバー実装 ├── requirements.txt # Python依存関係 ├── Cargo.toml # Rust依存関係 └── scripts/ ├── setup.sh # セットアップスクリプト └── start.sh # 起動スクリプト ~/.config/syui/ai/shell/ # ユーザー設定ディレクトリ ├── venv/ # Python仮想環境 ├── config.toml # ユーザー設定 ├── mcp_server.py # MCPサーバーコピー └── bin/ ├── aishell # CLIラッパー └── mcp-server # サーバーラッパー ``` ### 主要な依存関係 - **Rust**: clap, tokio, reqwest, colored, serde - **Python**: aiohttp, requests, toml - **LLM**: Ollama (qwen2.5-coder:7b) ## 次回の開発時の開始方法 ```bash # リポジトリに移動 cd /Users/syui/ai/shell # 現在の状態を確認 git status # サーバーを起動(Terminal 1) make run-server # CLIを起動(Terminal 2) ./target/debug/aishell # または、セットアップ済みなら aishell ``` ## 重要な設計思想 1. **分離された責務** - Rust: 高速なCLI、ユーザーインターフェース - Python: AI/ML処理、MCPサーバー - Ollama: ローカルLLM実行 2. **プライバシー重視** - 完全ローカル動作 - 外部APIへの依存なし 3. **拡張性** - MCPプロトコルによる標準化 - 新しいツールの追加が容易 ## 参考リンク - [プロジェクト哲学 (claude.md)](/Users/syui/ai/shell/claude.md) - [MCPプロトコル仕様](/Users/syui/ai/shell/docs/mcp-protocol.md) - [アーキテクチャ図](/Users/syui/ai/shell/docs/architecture.md) --- 最終更新: 2025-06-01