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