
Terminaiはオープンソースのターミナルラッパーで、Ctrl+Spaceで起動するオンデマンドオーバーレイにAI CLIを統合し、通常のシェルをメインインターフェースとして保持する。エージェントはローカルMCPサーバー経由でターミナルコンテキストへの読み取り専用アクセスを得でき、シェル入力を提案できるが、すべての提案はユーザー承認後に実行される。認証、モデル選択、APIクレデンシャルはすべて選択されたエージェントCLIの責任であり、Terminai自体ではない。
こういう要約が、毎朝あなたのメールに届きます。
無料で登録 →何が起きたか
開発者がTerminai(オープンソースのターミナルラッパー)をリリースした。Codex、Claude Code、OpenCode、またはカスタムAIエージェントをCtrl+Spaceで呼び出せるオーバーレイ機能を備え、通常のシェル操作は保持される。アルファ版で、macOSとLinuxに対応し、HomebrewまたはGitHubで入手可能。認証とモデル選択はエージェント自身のCLIで管理され、ラッパー側では鍵を保持しない。
なぜ重要か
ラッパーがAI操作をシェルインターフェースから分離し、提案されたすべてのコマンドをユーザー承認を経てからターミナルに送信するため、意図しない実行のリスクが減る。ローカルMCPサーバーを使用してエージェントに表示されたターミナルコンテンツとセッションコンテキスト(作業ディレクトリ、シェルタイプ、ウィンドウサイズ)への読み取り専用アクセスを与え、機密データをフィルタリングする。モデルの動作と認証情報の責任はラッパーではなくエージェント側にある。
注目点
ツールはアルファ版で、開発者はフォールバックシェルプロファイルの保持を推奨している。設定はYAML形式で$XDG_CONFIG_HOME/terminai/terminai.yamlに保存される。承認モードは常時確認またはオートアプリーバルで設定でき、チャットオーバーレイの位置と高さは調整可能。コードはGitHubのemosenkis/terminaiリポジトリで公開され、MITライセンス下にある。
TerminaiはRustで書かれたターミナルラッパーで、AIエージェントCLIをオーバーレイに埋め込み、ユーザーの通常のシェルを置き換えない。ユーザーはTerminaiを直接実行する。引数なしの場合は設定されたシェルを解決し、カスタムコマンドを指定することもできる。内部ではTerminaiは2つのPTYを起動する。1つはラップされたシェル(またはコマンド)、もう1つはエージェントCLIを実行する。ラップされたシェルはVT100エミュレーションでレンダリングされ、主要なインターフェースのままである。ホストターミナルのネイティブスクロールバックとコピー動作は保持される。ユーザーがCtrl+Spaceを押すとエージェントオーバーレイが表示される。Ctrl+SpaceまたはEscを押すとシェルにフォーカスが戻る。
エージェントのインターフェースはエージェント自身のCLI(Codex、Claude Code、OpenCode、またはカスタムコマンド)である。Terminaiはモデルクライアントを実装したり管理したりしない。代わりに、エージェントCLIが認証、プロバイダートラフィック、モデル選択、会話状態を担当する。Terminaiは認証済みのローカルMCP(Model Context Protocol)HTTPサーバー経由でエージェントに接続する。MCPサーバーは5つのツールを公開する:check_for_updates(ターミナルコンテキスト変更をポーリング)、read_terminal(プライバシーフィルタリング後の表示出力と最近のスクロールバックを返す)、get_terminal_context(シェル、現在のディレクトリ、OS、ウィンドウサイズ、ターミナルモードを返す)、suggest_input(レビュー用のテキストをキューイング)、get_suggestion_status(最新のキュー提案をレポート)。提案されたコマンドはユーザー承認なしにラップされたシェルに書き込まれることはない。エージェントがコマンドをキューに入れると、ユーザーがレビューしてyキーで承認またはnキーで拒否できる。提案は安全、注意、危険に分類され、ユーザーの判断を支援する。
TerminaiはmacOSとLinuxに対応し、Homebrew(brew install emosenkis/tap/terminai)、GitHubリリース、またはソースビルドで配布される。設定はYAML形式で$XDG_CONFIG_HOME/terminai/terminai.yaml(XDG_CONFIG_HOMEが未設定の場合は~/.config/terminai/terminai.yaml、Windowsの場合は%APPDATA%\terminai\terminai.yaml)に保存される。デフォルトエージェントはCodexである。Codex、Claude、OpenCodeの組み込みプリセットは設定ファイルからコンパイルされ、ユーザープリセットで拡張またはカスタマイズできる。カスタムエージェントは実行時に値(現在のディレクトリ、コンテキストプロンプト、MCP URL)をMinijinjaテンプレートで処理してコマンドライン引数に挿入できるように設定できる。バンドルされたプロンプトテンプレートはTerminai設定ディレクトリにdefault.jinjaを作成することでオーバーライドできる。
プライバシーフィルタリングは設定可能で、デフォルトではクレデンシャルと強い個人識別子がマスクされるが、URL、IPアドレス、日付、郵便番号、技術診断は保持される。privacy.patterns設定はカテゴリ(credentials、financial、identity、medical、crypto、gitleaks)またはエンティティタイプ(例:btc-address)を受け入れ、privacy.strategyはreplace、mask、hash、encrypt、redactに対応する。ただしフィルタリングは明示的にベストエフォートとして説明され、シークレットやプライベート情報が確実に削除されることは保証されない。レイアウト、承認モード、エージェント切り替えはF10(Terminai Controls)、F11(フルスクリーン)、F9(Layout Mode。+/−でAI高さ調整、pでトップ/ボトム位置切り替え、gでゲスト表示モード循環、fでフルスクリーン切り替え)でランタイムに設定可能である。開発者はTerminaiがアルファ版であることを指摘し、フォールバックとして通常のシェルプロファイルを利用可能にしておくことを推奨している。プロジェクトはMITライセンス下のオープンソースで、github.com/emosenkis/terminaiでホストされている。開発者は貢献、バグ報告、ドキュメント改善を歓迎している。
TerminaiはターミナルベースのAIワークフローにおける利便性の課題に対応している。既存のエージェントCLI(CodexやClaude Codeなど)は単独で動作し、ユーザーのシェルコンテキストを失い、ツール間での切り替えを必要とする。TerminaiはシェルをPTYでラップしVT100エミュレーションでレンダリングすることで、シェルをメインインターフェースとして保持しながらAIエージェントを並行するオーバーレイで実行する。この分離は単なる外観ではなく、意図的な承認境界を施行する。すべてのAI提案は実際のシェルPTYに到達する前にユーザーレビューを通す必要があり、これは不正または不具合のあるエージェントがユーザー環境を破壊するリスクを大幅に低減する。
セキュリティモデルは意図的に狭い。Terminai自体は無状態で信頼されていない。AI提供者との認証も行わず、クレデンシャルも管理せず、モデルリクエストも送信しない。代わりに、認証、モデル選択、会話状態の責任をエージェントCLI(Codex、Claude Code、またはカスタムコマンド)に委譲する。ラッパーとエージェント間の橋渡しはローカルMCPサーバーで、小規模で読み取り専用のサーフェスを提供する:ターミナル読み取り(機密データフィルタリング済み)、セッションコンテキスト(現在のディレクトリ、シェルタイプ、OS)、入力提案キュー。このデザインはTerminaiの攻撃対象をローカルPTY操作とフィルタリングロジックに限定し、APIやモデル動作には及ばない。
AIが要約して、あなたの選んだトピックだけを1日1通。LINE・Email・Slackで届きます。
登録無料・30秒で完了・いつでも解除できます
まだコメントがありません。最初のコメントを投稿しましょう!
ログインして議論に参加200以上のソースから厳選したAIニュースを毎日無料でお届けします。
無料で始める登録無料・30秒で完了・いつでも解除できます