言語：日本語 (Japanese)

AI Shell (aish) リリースノート

## v0.1.0（初回リリース）— 2026-03-06
AI Shell は日常のターミナル作業向けのAIシェルです。既存のコマンドラインの習慣を変えずに、Q&A、説明、提案、トラブルシューティングをターミナルに直接持ち込み、さらにセキュリティポリシーとサンドボックスの可用性に基づく確認/ブロック機構を提供して、誤操作のリスクを低減します。

### I. バージョン概要

- **内蔵ターミナルAIアシスタント**：aish では `;` を入力するだけでAIリクエストを開始できます。質問、コマンドの説明、解決策の依頼、ツールの利用によるタスク完了が、コマンドラインを離れずに行えます。
- **マルチモデル/マルチプロバイダー統合**：LiteLLM を基盤とし、主要なモデルプロバイダーを幅広くサポートし、API Base のカスタム設定も可能です。
- **AI操作のためのセキュリティ機構**：AIがトリガーするコマンドや変更に対して、サンドボックス能力に応じたリスク評価と確認/ブロックを提供します。
- **Skills機構（拡張可能かつホットリロード対応）**：指定ディレクトリからのSkills読み込みと、実行中のホットリロードに対応します。

### II. コア機能と能力

#### 1. ターミナル操作とAI協調

- **対話型REPLシェル**：標準コマンドは完全なPTY対応で通常通り動作し、一般的な対話型プログラムとも互換です。
- **AIモード**：入力が `;`（または中国語全角の `；`）で始まるとAIリクエストが発動します。会話の中でツール利用を組み合わせ、コマンド実行、ファイルの読み書き、トラブルシューティングができます。
- **ターミナルUI**：Rich ベースで、ストリーミング出力、思考インジケーター、長い会話やタスクでの Ctrl+C 中断と入力復元に対応します。
- **システム診断機能**：ログ分析やトラブルシューティングのための診断ワークフローを内蔵し、ツールやSkillsの助けで構造化された結論と提案を生成できます。

#### 2. ツール呼び出しとファイル/コード操作

- **ツール呼び出しスイート（AI向けに内蔵）**：`bash_exec`, `python_exec`, `read_file`, `write_file`, `edit_file`, `ask_user`, `system_diagnose_agent`, `skill`.
  - `bash_exec`：非対話型のシェルコマンドを実行します。
  - `python_exec`：Pythonコードを実行します。
  - `read_file`：ファイル内容を読み取ります。
  - `write_file`：ファイル内容を上書きします。
  - `edit_file`：文字列置換でファイルを編集します。
  - `ask_user`：実行を中断してユーザーに選択肢や入力を求めます。
  - `system_diagnose_agent`：診断エージェントです。
  - `skill`：Skill を呼び出します。

- **ファイル横断操作**：複数ファイルの読み書きで一括変更を行え、`bash_exec` によるコマンド実行（テストを含む）で変更の検証もできます。
- **組み込みコマンド互換性**：シェル状態を変更するコマンドに専用の取り扱いを提供します：`cd`, `pushd`, `popd`, `export`, `unset`, `dirs`, `pwd`, `history`。

#### 3. Skills拡張機構とホットリロード

- **Skillsの設定と読み込み**：ユーザーディレクトリ `~/.config/aish/skills/`（または `$AISH_CONFIG_DIR/skills`）と `~/.claude/skills/` からSkillsを読み込みます。名前が衝突する場合、ユーザーディレクトリ側が優先されます。
- **Skillsのメタデータと権限**：`SKILL.md` の YAML フロントマターで、能力や `allowed_tools`、関連メタデータを記述します。
- **ホットリロード**：実行中にSkillsディレクトリを監視し、追加/削除/変更されたSkillsは次回のツールリスト構築またはSkill呼び出し時に自動的に反映されます（遅延リロード）。再起動は不要です。
- **大きな出力のオフロード**：`bash_exec` の出力が閾値を超えるとディスクに書き出し、プレビューのみを表示し、完全な出力ファイルへのパスを提示します。PTYモードでは一定バイト数のみ保持し、残りはオフロードファイルに書き出します。閾値とディレクトリは設定可能です。

#### 4. セキュリティとリスク制御

- **AIコマンドの安全検出**：AIがトリガーするコマンドと変更は、リスクレベル（`LOW` / `MEDIUM` / `HIGH`）で評価され、各一致に理由を提示します。
- **確認/ブロック機構**：サンドボックスが利用可能か、ポリシールールに一致する場合、`MEDIUM` リスクのアクションは確認が必要で、`HIGH` リスクのアクションはブロックされます。サンドボックスが利用できない場合は `sandbox_off_action` ルールにフォールバックし、許可/確認/ブロックのいずれかになります。
- **サンドボックスとポリシー**：リスク分析ではサンドボックスが優先されます。利用できない場合は、セキュリティポリシーで定義されたフォールバック（確認やブロックなど）が適用されます。
  - システムレベルのポリシー：`/etc/aish/security_policy.yaml`
  - ユーザーレベルのポリシー：`~/.config/aish/security_policy.yaml`（存在しない場合はテンプレートが自動生成）
  - 完全な保護のためにサンドボックスサービスの有効化を推奨します。

- **任意のホワイトリスト**：サンドボックスが利用可能なときのみ有効な、特定のAIコマンドの事前承認をサポートし、繰り返しの確認を減らします。

### III. 可観測性と設定

- **設定システム**：設定ファイル、環境変数、コマンドライン引数を併用できます。優先順位は「コマンドライン引数 > 環境変数 > 設定ファイル」。出力言語は設定または自動検出できます。
- **対話型設定とモデル切替**：初回起動時にウィザードがプロバイダー/モデル選択とツール呼び出し検証を案内します。`/setup` で再設定でき、`/model <name>` で検証して切り替えます。
- **可観測性（任意）**：Langfuse によるLLMの可観測性とトレーシングを有効化できます。デフォルトでは無効です。
- **履歴とセッション永続化**：コマンドとAIリクエストの履歴はSQLiteのWALモードに書き込まれ、セッション横断のクエリをサポートします。データベースパスは `session_db_path` で設定できます。

### IV. 既知の制限と今後の計画

- **長時間タスクと大きな出力**：長時間コマンドや大量結果の出力はモデルのコンテキスト上限を超える可能性があり、完全に処理できないことがあります。その場合は、該当コマンドをシェルで直接実行することを推奨します。
- **コンテキストのトリミングと予算**：`max_llm_messages`、`max_shell_messages`、および任意の `context_token_budget` を設定可能です。制限を超えるとコンテキストは自動的にトリミングされます。
- **サンドボックスの非可用性**：サンドボックスが利用できない場合、セキュリティ機能は大幅に低下します。

- **予定されている改善**：
  - 長時間タスクのサポート改善
  - 大きなコンテキストでの性能向上を含むターミナル描画と対話の改善
  - ユーザーフィードバックに基づく機能とセキュリティの継続的な改善
  - サンドボックスのエラーハンドリング改善
  - Skillsの実行と拡張性の強化

### V. 互換性

- 主にLinuxの対話型ターミナル環境向け。
- 実行環境：Python 3.10+。
- 検証済み：
  - Deepin V25
  - Ubuntu 24.04

サンドボックス機能と操作体験は、プラットフォームやディストリビューションによって異なる場合があります。

### VI. コミュニティ

- [Discord](https://discord.com/invite/Pw2mjZt3) に参加して、他のユーザーや開発者とつながりましょう。
