153 lines
4.4 KiB
Markdown
153 lines
4.4 KiB
Markdown
# 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 <file>` - ファイル分析
|
||
- `/create <type> <name>` - プロジェクト作成
|
||
|
||
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 |