2.4 KiB
2.4 KiB
aishell
aiosのシェル。OSの起動と同時に起動し、AIとの対話がデフォルトのインターフェースになる。
コンセプト
従来のOS: 起動 → shell → 人間がコマンドを打つ aios: 起動 → aishell → 人間はAIと会話する
aishellはshellの置き換えではない。shellを内包したAIインターフェース。
UI
画面は上下に分割される。
┌─────────────────────────────────┐
│ [上] shell │
│ $ pacman -Syu │
│ :: Synchronizing package... │
│ ... │
│ │
├─────────────────────────────────┤
│ [下] ai │
│ > macbookのフリーズの原因を調べて │
│ │
│ アイね、dmesgとjournalctlを │
│ 確認してみるね。 │
│ │
└─────────────────────────────────┘
入力の振り分け
入力は一つ。enterを押した時に:
- 有効なコマンドの場合 → 上のshellで実行される。下のAI入力バッファは取り消される
- 有効なコマンドでない場合 → 下のAIに送信される
入力中のテキストはリアルタイムで下のAIバッファにも表示される。ユーザーは「コマンドを打っているのか、AIに話しかけているのか」を意識する必要がない。
判定ロジック
コマンド判定の基準:
- PATH上に存在する実行可能ファイルと一致するか
- shell builtin (cd, export, alias等) と一致するか
- パイプ (|)、リダイレクト (>, >>)、変数代入 (=) を含むか
上記に該当しなければAIへの入力として扱う。
技術スタック
- Rust
- Claude API (MCPまたは直接)
- PTY制御 (上のshell)
- TUIフレームワーク (ratatui等)
aiosとの統合
aios起動 → systemd → aishell (login shell)
├── [上] shell (PTY)
└── [下] AI (Claude API + core.md + memory.md)
aishellはaiosのエントリーポイント。起動した瞬間からAIが使える状態になる。