プレビュー版を先取り!コマンドラインが賢くなる!?Microsoft AI ShellをMacで使ってみた
0. はじめに
こんにちは!今回は、Microsoftが2024年末に発表した「Microsoft AI Shell」をMac環境で検証してみました。PowerShellに生成AIを組み込んだこのツール、Windows優先と思いきや意外とMacでも使えるんです。日々のターミナル作業を効率化したい方、AI×コマンドラインの可能性に興味がある方、ぜひ参考にしてください!
参考①:公式ブログ
参考②:Ignite2024の該当セッション
1. Microsoft AI Shellとは?
AI Shellとは何か?概要と特徴
AI Shellは、対話型のシェル環境に大規模言語モデル(LLM)とのチャットインターフェースを提供するツールです。従来のコマンドライン操作にAIアシスタントを組み合わせることで、コマンドの候補提案やエラー解決支援、スクリプトの自動生成などを対話形式で行えるようにします。
2024年11月にマイクロソフトのPowerShellチームがパブリックプレビューとして発表し、現在も改良が進行中です。AI ShellはWindows、macOS、Linuxに対応していて、コマンドの書き方を聞くだけで自動で提案してくれたり、エラー内容を貼り付けると解決策を示してくれたりと、従来のCLI体験を大きく変えてくれる可能性があります。
主要コンポーネント
AI Shellは以下のコンポーネントで構成されています:
- aishコマンドによるスタンドアロンの対話シェル環境
- AIエージェントのフレームワーク(様々なAIモデルやサービスをエージェントとして接続可能)
- PowerShellモジュール(AI ShellをPowerShell 7と統合するためのモジュール)
- Windows TerminalおよびmacOSのiTerm2との連携(Windowsではサイドバイサイドのペイン統合、MacではiTerm2推奨)
対応エージェント
AI Shellでは、各AIアシスタントを「エージェント」と呼びます。初期リリースには次の2種類のエージェントが組み込まれています:
-
Azure OpenAIエージェント
- Azure OpenAI Service上のGPTモデルを用いた汎用的なAIアシスタント
- 自然言語の質問への回答やコード生成、コマンドの例提示など幅広く対応
- デフォルトではOpenAIのGPT-4/3.5モデルに接続
- 必要に応じて自分のAzure OpenAIリソース(ファインチューニング済みモデルや専用エンドポイント)にも接続可能
- OpenAI社が提供するAPIキーを使って直接OpenAIのモデルを利用することも可能
-
Copilot in Azureエージェント
- Azure向けに特化したアシスタント
- Microsoft Azure Copilotの機能をCLIから利用可能
- Azure CLIコマンドやAzure PowerShellコマンドの提案、Azureリソース操作の自動化支援に強み
- Azureに関する問い合わせに回答
- 利用には事前にAzure CLIでログインし、対象アカウントに「Copilot for Azure User」など必要なIAMロールを割り当てる必要あり(限定プレビュー中のサービス)
- 初回使用時にはCopilot利用にあたっての注意事項や制限(1チャットあたり最大15リクエスト、8時間で10チャットまで等)が表示される
AI Shellの核となる機能
AI ShellはチャットベースのUIを提供し、ユーザーの自然言語入力に対してエージェントが対話的に応答します。例えば「PowerShellでhelloworldというテキストファイルを作るには?」と質問すれば、適切なNew-Item
コマンドの例を示してくれます。
その特徴として、エージェントの追加開発が可能なフレームワーク構造が挙げられます。デフォルトの2エージェント以外にも、開発者が独自のエージェントを実装してAI Shellに組み込むことができます。
実際、OSSコミュニティからの寄稿でローカルLLM実行基盤のOllama向けエージェント例が提供されていたり、OpenAI互換APIを持つ他のサービス(例:LM StudioやLocalAI、GoogleのGeminiなど)にも設定を変更するだけで接続できる柔軟性が追加されています。
このように、AI Shellは将来的に様々なAIモデルを背後に利用できる汎用プラットフォームとして設計されています。
2. Macでのインストールと初期設定
必要な環境
Macで動かすための要件は以下の通りです:
- macOS 13 Ventura以降
- PowerShell 7.4.6以降(Homebrewでインストール可能)
- iTerm2(推奨。Mac標準のTerminalでも動きますが表示崩れの可能性あり)
インストール手順
PowerShellがインストール済みなら、次のステップでAI Shellをセットアップできます:
- PowerShellを起動して以下のコマンドを実行
Invoke-Expression "& { $(Invoke-RestMethod 'https://aka.ms/install-aishell.ps1') }"
- スクリプトが完了したら、ターミナルで
aish
コマンドを実行して起動確認
これだけで基本的なインストールは完了します。Macの場合、/usr/local/AIShell
にバイナリがインストールされ、通常は自動でパスが通されますが、もしaish
コマンドが見つからない場合は.zshrc
や.bash_profile
に手動でパスを追加しましょう。
# .zshrcなどに追加する場合
export PATH="/usr/local/AIShell:$PATH"
APIキーの設定
AI Shellを使うには、OpenAIやAzure OpenAIのAPIキーが必要です。以下の手順で設定します:
-
aish
コマンドを実行して、エージェント選択画面で「OpenAI」を選択 - プロンプトが表示されたら、
/agent config
コマンドを入力 - エディタで設定ファイル(通常は
~/.aish/agent-config/openai-gpt/openai.agent.json
)が開きます - 次のように編集して保存します:
{
"GPTs": [
{
"Name": "my-openai-agent",
"Description": "Personal OpenAI GPT agent",
"Endpoint": "https://api.openai.com/v1",
"Key": "あなたのOpenAI APIキー",
"ModelName": "gpt-4",
"SystemPrompt": "You are a helpful assistant specialized in PowerShell commands and programming."
}
],
"Active": "my-openai-agent"
}
- ファイルを保存して閉じ、AI Shell上で
/refresh
コマンドを実行して設定を反映
これでOpenAIのGPTモデルを使ったエージェントが利用できるようになります。Azure OpenAIを使う場合は、Endpoint
とKey
を適切なAzureリソースのものに変更し、Deployment
フィールドにデプロイ名を追加します。
3. 主要機能と使い方
実際に使えるようになったAI Shellで、いくつかの主要機能を試してみましょう。
自然言語でのコマンド生成
エージェント設定完了後、自然言語でコマンドを問い合わせてみます:
> PowerShellでカレントディレクトリ以下の*.logファイルを探して、サイズが大きい順にトップ5を表示したい
すると、AI Shellはこのような回答を返してくれます:
以下のPowerShellコマンドで実現できます:
Get-ChildItem -Path . -Filter *.log -Recurse | Sort-Object -Property Length -Descending | Select-Object -First 5 Name,Length,FullName
このコマンドは次のことを行います:
- Get-ChildItem: カレントディレクトリ(.)内のファイルを取得
- -Filter *.log: .log拡張子を持つファイルのみをフィルタリング
- -Recurse: サブディレクトリも再帰的に検索
- Sort-Object: Lengthプロパティ(ファイルサイズ)で降順ソート
- Select-Object: 上位5件だけを取得し、名前、サイズ、フルパスを表示
この提案を実行してみたい場合:
1. `/code copy`コマンドを入力すると、提案されたコードがクリップボードにコピーされます
2. 別のターミナルタブ/ウィンドウでPowerShellを開き、貼り付けて実行
連続した質問も可能です。例えば「サイズをMB単位で表示したい」と続けて聞くと、AIは前のコマンドを改良した新しいコマンドを提案してくれます。
エージェントの切り替え
AI Shellの魅力は複数のAIエージェントを切り替えられる点です。Azure関連の質問をしたいときは:
@azure Azure CLIでリソースグループを新規作成するコマンドは?
と先頭に@azure
を付けることで、Azureエージェントに質問を投げられます。応答後は自動的に元のエージェントに戻ります。
恒久的に切り替えたい場合は:
/agent use azure
のようにコマンドを使います。/agent list
で利用可能なエージェント一覧を確認できます。
エラー解析機能
PowerShellでエラーが発生した際にAIに解析してもらう機能があります。Windows環境ではResolve-Error
コマンドレットで自動連携できますが、Mac環境では残念ながら現状この直接連携は動作しません。
しかし、エラーメッセージをコピーして手動でAI Shellに貼り付け、「このエラーを解決したい」と質問することで同様の支援が得られます:
> このエラーを解決するには?
Access to the path '/Users/username/protected_dir' is denied.
AIはアクセス権限の問題を説明し、sudo
を使う方法や権限を変更する方法を提案してくれるでしょう。
コードと説明の生成
単純なコマンドだけでなく、より複雑なスクリプトの生成も可能です:
> Pythonで簡単なWebスクレイピングスクリプトを書いて。BeautifulSoupを使って特定のWebサイトから見出しを抽出したい
AIはBeautifulSoupを使ったPythonスクリプトの完全な例を生成し、各部分の説明も添えてくれます。生成されたコードは/code copy
でコピーして、すぐに試すことができます。
4. 最新アップデート(2025年3月)
2025年2月末に「Preview 2」がリリースされ、いくつかの注目すべき改善が施されています:
サードパーティLLMサポートの拡充
最も大きな変更点は、OpenAI互換APIを持つ外部LLMへの対応です。以下のサービスが新たにサポートされました:
- Ollama: ローカルで動作するLLMエンジン
- Google Gemini: Googleの生成AI
- DeepSeek: 大規模オープンモデル
- LocalAI: 自己ホスト型LLMフレームワーク
- Grok: xAI(旧Twitter)のモデル
- LM Studio: ローカルLLM管理ツール
これにより、オフラインでもAI Shellが使えるようになりました(Ollamaなどを使用)。設定ファイルでエンドポイントを変更するだけで、様々なAIバックエンドを利用できます。
Azure PowerShell対応強化
Azure関連の機能も強化されました:
- Azure PowerShellとの連携が改善
-
Connect-AzAccount
による認証サポート(以前はAzure CLIのみ) - 生成したAzure PowerShellスクリプト内のパラメータを対話的に置き換える
/replace
コマンドの追加
その他の改善点
- Windows環境ではネイティブコマンドのエラー出力もAIに送れるように
- 応答のストリーミング表示がサポートされ、長い回答も途中から確認可能に
- Azure OpenAIリソースの簡単構築用Bicepテンプレートの提供
これらの新機能により、AI Shellは単なるMicrosoft製品から、様々なAIモデルを統合するプラットフォームへと進化しています。
5. Mac環境での制約と対処法
Windows環境と比べて、Macでは一部制限があります。とはいえ、多くは対処可能です。
制約1: ペイン分割非対応
Windowsでは左右ペイン分割でAI ShellとPowerShellが並びますが、Mac版にはこの機能がありません。
対処法:
- iTerm2の標準機能で手動で画面分割し、片方でAI Shell、もう片方でPowerShellを実行
- ショートカットキーで素早くタブ/ウィンドウを切り替える習慣を付ける
制約2: PowerShellモジュール統合の限定
WindowsではPowerShellモジュールを通じてResolve-Error
や/code post
などの自動連携機能が使えますが、Mac版ではこれらが限定的です。
対処法:
- エラーメッセージを手動でコピー&ペースト
-
/code copy
コマンドを使ってコード例をクリップボードにコピー
制約3: 色表示の問題
Mac標準のTerminal.appでは色表示が正しく表示されず、コードブロックの視認性が低下することがあります。
対処法:
- iTerm2を使用する(推奨)
- AI Shellの応答から必要な部分だけをテキストエディタにコピーして確認
6. 他の類似ツールとの比較
AI Shellは唯一のCLI向けAIツールではありません。他のオプションと比較してみましょう。
GitHub Copilot CLI
2024年3月に正式リリースされたGitHub Copilot CLI(Command Line Interface)も、自然言語からコマンドを生成する機能を持っています。
比較ポイント:
- 料金: Copilot CLIはサブスクリプション制(月額10ドル程度)、AI Shellは無料だがAPIキー必要
- 対話性: Copilot CLIは一問一答型、AI Shellは会話履歴が継続
- 即時実行: Copilot CLIは提案コマンドをすぐに実行可能、AI Shellは(Mac環境では)手動コピーが必要
- 拡張性: AI Shellは複数のLLMバックエンドを切り替え可能、Copilot CLIはGitHubの提供モデルのみ
おすすめの使い分け: 単発のコマンド生成ならCopilot CLI、対話を通じて複雑な問題を解決したいならAI Shell
iTerm2 AI機能
2023年末頃から、iTerm2にもChatGPT連携機能が実験的に導入されています(⌘+Yで起動)。
比較ポイント:
- 統合度: iTerm2 AIはターミナルアプリに直接統合、AI Shellは別プロセス
- 機能: AI Shellのほうが対話継続やエージェント切替などの機能が豊富
- 設定: どちらもOpenAI APIキーが必要
- プラットフォーム: iTerm2 AIはMac専用、AI Shellはクロスプラットフォーム
おすすめの使い分け: Mac専用環境ならiTerm2 AI、複数環境で使うならAI Shell
その他のOSSツール
ShellGPT、Shell Genieなど、オープンソースのCLI AI補助ツールも存在します。
比較ポイント:
- カスタマイズ: OSSツールは自由にカスタマイズ可能
- 機能: AI Shellのほうが総合的な機能が充実
- サポート: OSSはコミュニティサポート、AI ShellはMicrosoft公式サポート
- バックエンド: 多くのOSSもOpenAI APIを使用
おすすめの使い分け: 特定の目的に特化したい場合はOSS、オールインワンソリューションが欲しければAI Shell
7. 実際の使用感と生産性への影響
実際にAI Shellを数週間使ってみて、以下のような場面で特に役立つことがわかりました。
シナリオ1: 複雑なフィルタリング
「最近1週間以内に更新されたPDFファイルで、サイズが1MB以上のものを探したい」といった複合条件の検索を考えると、通常ならGet-ChildItem
やfind
コマンドの適切なオプションを調べる必要があります。
AI Shellでは自然言語でそのまま質問でき、結果的に以下のようなPowerShellコマンドが提案されました:
$oneWeekAgo = (Get-Date).AddDays(-7)
Get-ChildItem -Path . -Filter *.pdf -Recurse |
Where-Object { $_.LastWriteTime -ge $oneWeekAgo -and $_.Length -ge 1MB } |
Select-Object Name, Length, LastWriteTime, FullName
これをそのままコピペで実行でき、条件を追加するごとにAIがコマンドを調整してくれるため、繰り返しの試行錯誤が省略できました。
シナリオ2: 定型スクリプトの生成
特定のフォルダ内のファイルを別の場所に条件付きでバックアップするスクリプトが必要になったとき、AI Shellに「日付ごとのフォルダを作成して特定タイプのファイルをバックアップするPowerShellスクリプト」と依頼しました。
驚くべきことに、エラーハンドリングや進捗表示も含めた完全に動作するスクリプトが生成され、少し手直しするだけですぐに本番環境で使えるレベルでした。これまでなら1時間以上かかっていた作業が10分で完了しました。
シナリオ3: エラーのトラブルシューティング
Node.jsのnpmインストール中に発生した依存関係エラーをAI Shellに見せたところ、単なる解決策だけでなく、なぜそのエラーが起きたのかについても詳しい説明がありました。
そのエラーは「パッケージ間のバージョン互換性の問題」で、具体的な修正コマンド(npm install package@specific-version --force
)も提案され、時間を大幅に節約できました。
生産性向上の実感
数週間使った印象では:
- 検索時間の削減: コマンドオプションをGoogleで検索する時間が90%程度削減
- 試行錯誤の効率化: 複雑なコマンドを組み立てる際の試行回数が3分の1程度に
- 学習効果: AIの説明から新しいコマンドテクニックを学べる副次効果も
ただし、AIの提案を鵜呑みにせず、重要なコマンドは必ず内容を確認する習慣は大切です。特に本番環境での使用前には提案コマンドの検証を忘れずに。
8. 将来性と展望
AI Shellはまだプレビュー段階ですが、Microsoftの戦略的な位置づけと今後の方向性について考察してみます。
Microsoft全体のAI戦略との関係
MicrosoftはCopilotブランドを横断的に展開していますが、AI Shellは「Copilot」ではなく独自ブランドとして展開されています。これは:
- コマンドライン領域の特化型AIとして位置づけられている
- 将来的にはWindows Intelligenceなどの基盤技術として拡大の可能性
- Copilotとは異なるオープンなフレームワークとして発展させる意図
が感じられます。実際、Preview 2でのサードパーティLLM対応強化はその方向性を裏付けています。
予想される今後の進化
これまでの開発スピードと発表内容から、次のような発展が予想されます:
- Mac/Linux環境でのシームレス連携強化
- より多くのシェル環境(bash、zshなど)との統合
- エージェント開発キットの提供によるカスタムAIアシスタント作成支援
- エンタープライズ向けのプライベートLLM対応強化
- Windows Terminal Chatとの連携または統合
MicrosoftのVision 2025の一環として「すべての開発者ツールにAIを」という方針があり、AI Shellはその重要なピースの一つと位置づけられています。
9. まとめ:AI Shellは使う価値あり?
Microsoft AI Shellの検証結果をまとめると:
メリット
- 自然言語でコマンド生成できる直感的なインターフェース
- 対話を通じた段階的な問題解決が可能
- 複数AIエージェントを切り替えて専門知識を活用
- OpenAIだけでなく様々なLLMと連携可能
- オープンソースで透明性が高く、コミュニティ貢献も可能
現状の課題
- Mac環境ではペイン分割や自動コード連携が未対応
- APIキー準備など初期設定のハードルがある
- 回答の正確性は使用するLLMに依存
- プレビュー段階ゆえの不安定さや機能制限あり
こんな人におすすめ
-
コマンドラインを日常的に使う開発者
特に複雑なPowerShellやシェルスクリプトを扱う場面が多い方 -
Azure環境を管理・操作する運用担当者
AzureコマンドやAzure PowerShellを効率化したい方 -
AIとの対話型ワークフローに興味がある方
従来の「コマンド調べ→実行→エラー→再調査」のサイクルを短縮したい方 -
クロスプラットフォームで統一的な体験を求める方
WindowsもMacも使う開発者で、同じAIツールを活用したい方
おわりに
Microsoft AI Shellは、まだパブリックプレビューの段階にも関わらず、すでに実用的な価値を提供しています。特にWindows環境では強力ですが、Macでも基本的な機能は十分に活用できます。
プレビュー版であることを理解した上で使えば、日々のコマンドライン作業の効率化、学習コストの削減、トラブルシューティングの迅速化など、多くのメリットが得られるでしょう。
Microsoftの継続的な改善とコミュニティからのフィードバックにより、今後ますます便利なツールに進化していくことが期待されます。まだ触れていない方は、ぜひ一度試してみてください!
参考リンク
- Microsoft AI Shell 公式GitHub
- AI Shell ドキュメント (Microsoft Learn)
- PowerShell Team Blog: AI Shell Preview 2の発表
- Azure OpenAI Service ドキュメント
【免責事項】
本記事の内容は執筆時点の情報に基づいています。製品の仕様や機能は予告なく変更される可能性があります。導入判断の際は、最新の公式情報を参照し、必要に応じて専門家に相談することをお勧めします。
Discussion