Jarvish
Jarvishは、ソフトウェアエンジニア向けのAIネイティブターミナルシェルです。CLI実行時の「エラーメッセージをコピペしてブラウザやAIツールに質問する」というフロー分断の課題を、ターミナルの入出力を自動記憶する内蔵AIエージェントで解決し、コンテキストスイッチ・ゼロのシームレスな開発体験を実現できます。

開発背景・目的
マーベルのアイアンマンという作品に出てくる、J.A.R.V.I.S. というAIをご存知でしょうか。トニー・スタークを支える紳士的なAIです。
私はいつか、 自分を支えてくれるジャービスを作りたい と強く願っていました。
エンジニアは毎日様々なエラーと向き合います。毎回エラーの内容をコピペしてググる、またはChatGPTなどのAIに聞くのが従来のやり方でした。
でも AIが自動的にエラーを検知して調査してくれたら?
エラーが出たら、その場で Jarvis に聞けばいい。
そんなシェルが欲しくて、Jarvish(ジャービッシュ) を作りました。
主な特徴
- モード切替不要のシームレスな対話: コマンドライン入力と自然言語を自動で判別するため、特別なプレフィックスやモード切替なしで、直感的にAIとやり取りが可能です。
- The Black Box(コンテキストの自動保持): バックグラウンドで直近の標準出力・標準エラー出力を記憶しているため、エラー発生時にそのまま「なぜ失敗した?」と聞くだけで、AIが文脈を理解して答えてくれます。
- 自律的なエラー調査と修正提案: AIが自らファイルシステムを読み書きし、エラーの原因調査から修正コマンドの提案・実行までをターミナル上で完結させます。
こんな方におすすめ
- 日常的にターミナルを使用する開発者: エラーが出るたびにブラウザを開いて検索する(ググる)作業にストレスを感じている方。
- コマンド操作を効率化したい方:
gh、jq、awkなど、少し複雑なコマンドのオプションやパイプ処理を毎回調べるのが面倒な方。 - 深い集中(フロー状態)を維持したい方: ターミナル、エディタ、ブラウザ間の画面切り替えを極限まで減らし、開発そのものに没頭したい方。
主要機能
ヒューリスティック入力判定 (Input Classifier)
ユーザーの入力を解析し、通常のシェルコマンドか、AIへの自然言語による質問かを自動で判別します。これにより、従来のシェルとしての軽快な操作感を損なうことなく、必要な時だけシームレスにAIを呼び出すことができます。
The Black Box (I/Oキャプチャと永続化)
実行したコマンドの出力(stdout/stderr)を os_pipe でリアルタイムにキャプチャし、ローカルのSQLiteデータベースに自動保存します。AIに質問した際、この出力履歴がコンテキストとして自動で付与されるため、エラーログの手動コピペが一切不要になります。
AI Agent ループ (Tool Calling)
AIが単にチャットとしてテキストを返すだけでなく、ファイルの読み取りやシェルコマンドの実行といった「ツール」を自律的に使用します。ユーザーの指示に基づき、AI自身が調査を行い、具体的な解決策(コマンドの実行)を提案します。
導入効果
- エラー解決までの時間を劇的に短縮: コピペや画面切り替えの手間が省け、エラー発生から数秒〜数十秒で最適な解決策・修正コマンドにたどり着くことができます。
- 認知負荷の低減と集中力の向上: 「今起きている状況をAIにテキストで説明する」という労力がゼロになり、プログラミングやシステム設計など、より重要な思考にリソースを集中できます。
- ターミナル上での学習効率アップ: マニュアル(manコマンド)やドキュメントをブラウザで探さなくても、その場で「このオプションはどう使う?」と聞くだけで、具体的なコマンド例と共に即座に学べます。
既存ツールとの比較
AI とターミナルを組み合わせるツールは既にいくつかあります。
| ツール | アプローチ |
|---|---|
| Warp | ターミナルエミュレータ自体を再発明。AI 機能は # プレフィックスで起動 |
| GitHub Copilot CLI | 既存シェルの上で動くコマンド。gh copilot suggest で提案を得る |
| Gemini CLI / Claude Code | AI エージェントとして動作。シェルとは別のインターフェース |
これらは素晴らしいツールですが、共通する課題があります:
「シェルそのもの」ではない。
- Warp はターミナルエミュレータであってシェルではない(中で bash/zsh が動く)
- Copilot CLI や AI エージェントは「シェルの隣に立つ助手」であって、シェル体験に溶け込んでいない
- エラーが起きたとき、自分でコピペして AI に渡すステップが必要
Jarvish のアプローチは違います。シェルそのものに AI を統合することで、コマンド実行と AI の対話がひとつの REPL ループの中で完結します。
インストール
前提条件
- Rust(Stable ツールチェイン)
- OpenAI API キー
- macOS / Linux
