メインコンテンツへスキップ

ローカルコマンドを安全に実行する

デスクトップアプリでは、アシスタントがチャットの作業フォルダ内でコマンドやテストを実行できます。チャット内での動作については、ローカルファイルアクセス をご覧ください。このページでは、どの条件なら確認なしで実行できるか、またコマンドをどの程度隔離して実行するかを設定します。

コマンド設定を開く​

チャットで コマンド パネルを開き、このフォルダのコマンド設定 を選択します。設定はフォルダごとに適用されます。

アシスタントがコマンドを実行できるのはいつですか?​

次の3つのモードから選びます。

  • 毎回確認する: すべてのコマンドを承認します。
  • 信頼済みコマンドは自動実行: 保存したコマンドは確認なしで開始されます。その他のコマンドは引き続き許可を求めます。
  • サンドボックスで自動実行: すべて確認なしで開始されますが、隔離された環境で実行されます。

どのモードでも、次のルールが適用されます。

  • 無害なコマンド は確認なしで開始されます: mkdir、ls、cat、head、tail、wc、grep、find(-exec や -delete なし)、touch、pwd、tree、および node、npm、npx、python、pip、aischool-python のバージョン確認(--version、-v、-V)。これらは、組み込みのファイルツールが確認なしで行える以上のことはしません。サンドボックス内でネットワークなし、かつ作業フォルダ内のパスのみで実行されます。リンクをたどった後でも同様です(絶対パス、~、.. は不可)。リンク先がフォルダ外を指す場合は、カードが表示されます。これにはサンドボックス(macOS)とローカルコマンドが必要ですが、管理者による 自動実行を許可 は不要です。コマンド パネルには 自動(無害なコマンド) と表示されます。たとえば mkdir -p src/{components,utils} のような中括弧付きのリストも確認なしで開始されます。アプリが個別のパスに展開し、すべて検証します。
  • 各カードには正確なコマンドが表示され、オンライン操作では正確なアドレスも表示されます。その下にアシスタントの説明が小さく表示されます。
  • サンドボックスが利用可能で、管理者が自動実行を許可している場合、サンドボックス内で実行されるコマンドのカードには 今後このフォルダではサンドボックスで自動実行 ボタンが表示されます。これによりフォルダが サンドボックスで自動実行 に設定され、次回以降のコマンドはカードなしで開始されます。ネットワークが必要なコマンドは、パッケージのインストールを許可する が有効でない限り、もう一度確認されます。
  • サンドボックス内で実行され、ネットワークを必要としない最初のカードには、1回だけ このプロジェクトを信頼する が表示されます。これを押すとコマンドが実行され、フォルダが サンドボックスで自動実行 に設定され、確認なしでパッケージのインストールを許可する が有効になります。その後は npm test、npm run build、node --test などのテストやビルドが、ネットワークなしのサンドボックス内でカードなしで開始されます。さらにネットワークが必要なコマンドやサンドボックス外で動作するコマンドは、引き続き確認されます。実行 または 拒否 の後、このフォルダでは再度尋ねられません。モードはコマンド設定で変更できます。自動実行がオフの場合、各カードには管理者またはこのコンピューターの管理ポリシーがそうしていることが示されます。

信頼済みコマンドを保存する​

コマンドで このフォルダでは常に許可 を選び、その後 このコマンドのみ または これで始まるすべて を選択します。保存したコマンドは今後確認なしで開始されます。特殊文字(; | > $ など)を含むコマンドは、常に許可を求めます。

保存したルールは、コマンド設定の このフォルダで常に許可 に表示されます。ここで削除することもできます。

サンドボックスとネットワーク​

  • サンドボックスを使用: コマンドはこのフォルダ内にのみ書き込めます。このオプションは macOS では既定でオンです。
  • ネットワークを許可: コマンドがインターネットにアクセスできるかを決めます。このオプションは既定でオフです。サンドボックスがない場合、コマンドは常にネットワークにアクセスできます。

各コマンドカードには、サンドボックスとネットワークが有効かどうかが表示されます。

ネットワークを許可 がオフで、アシスタントが npm install などで何かをダウンロードしようとする場合、コマンドカードでそのコマンドをネットワーク付きで実行するかどうかを確認されます。フォルダ全体でネットワークを有効にする必要はありません。

Windows

Windows ではまだサンドボックスは利用できません。

パッケージのインストール​

アプリには独自の Node.js と npm が含まれています。そのため、node、npm、npx などのコマンドは、コンピューターに Node.js がインストールされていなくても動作します。Node.js を自分でインストールしている場合、アプリはそのバージョンを使用します。例外: 自分で Electron を起動するプロジェクト (electron .) では、自分でインストールした Node.js が必要です。

確認なしでパッケージのインストールを許可する​

このフォルダのコマンド設定 で 確認なしでパッケージのインストールを許可する をオンにします。名前付きパッケージのインストールはカードなしで開始されます: npm install <名前>、および package.json からの npm install、pnpm、yarn、bun の install または add、さらに pip install <名前>(uv 経由も含む)。これらは常にネットワーク付きのサンドボックス内で実行されます。その他のコマンドは、フォルダに設定したモードに従います。

ただし、次のインストールではカードが表示されます。

  • npm create vite@latest や npx create-… のようなプロジェクト作成ツール。これらは自分自身のコードを実行するためです。
  • pip install .、pip install -r requirements.txt、別レジストリからのインストール(--registry、-i、--index-url)、および git アドレス、URL、パスからのパッケージ。

このスイッチはサンドボックス(macOS)でのみ機能し、管理者が自動実行を許可している場合に限ります。それ以外ではオンにできません。

インストールスクリプトなし

この方法でインストールされるパッケージは、自分自身のインストールスクリプトを実行しません(npm は --ignore-scripts で動作します)。Python パッケージは、あらかじめビルドされた wheel のみとしてインストールされます。

ローカルサーバーと組み込みブラウザー​

アシスタントは、Vite を使った小さな React プロジェクト向けの npm run dev のように、動作し続ける開発サーバーも起動できます。これには他のコマンドと同じルールが適用されます。つまり、正確なコマンドを承認するか、保存済みルール経由、またはサンドボックス内で自動的に開始されます。最大実行時間の代わりに、カードには「停止するまでローカルサーバーとして動作し続けます」と表示されます。

アシスタントが応答した後もサーバーは動作し続けます。コマンド パネルでは、カードに サーバー実行中 と表示され、ブラウザーで開く と 停止 ボタンが使えます。同時に実行できるサーバーは最大 4 つです。サーバーは停止するか、アプリを終了すると止まります。

ネットワークなしのサンドボックスでは、サーバーはこのコンピューター上(localhost)でのみ待ち受けできます。アシスタントによるパッケージのインストールについては、パッケージのインストール をご覧ください。

シンプルなウェブページを表示する​

通常のウェブページ(index.html と CSS、JavaScript だけで、ビルド手順なし)の場合、コマンドは不要です。そのときアシスタントはアプリ内蔵のウェブサーバーを使用します。

  • フォルダはこのコンピューター上でのみ表示され、http://127.0.0.1 の任意のポートで公開されます。
  • .git や .env などの隠しファイルは表示されません。
  • ファイルが変更されると、ページは自動的に再読み込みされます。

この場合、承認カードは表示されません。サーバーは コマンド パネルに表示され、ブラウザーで開く と 停止 が使え、最大 4 サーバーのカウントに含まれます。

結果は組み込みブラウザーで確認します。上部バー右側の地球アイコンの ブラウザー ボタンです。パネルはチャットの横に開き、戻る、進む、再読み込み(読み込み中は停止)、アドレスバー、そして 既定のブラウザーで開く が表示されます。

  • アシスタントは、ローカルサーバーの結果を表示するために自分でブラウザーを開きます。これは http://localhost:5173 のようなローカルアドレスでのみ可能です。
  • 回答内の localhost リンクをクリックすると、組み込みブラウザーで開きます。その他のリンクは既定のブラウザーで開きます。
  • すべてのウェブアドレスを自分で入力することもできます。
  • ブラウザーには独立したセッションがあります。そこでは AI-Corporate にログインしていませんし、サイトはカメラやマイクのような権限を得ず、ダウンロードもできません。
  • アプリのメニューやダイアログが開いている間、ページは一時的に非表示になります。

例:

このフォルダに、カウンター付きの小さな React アプリを Vite で作成してください。依存関係をインストールし、dev サーバーを起動して、結果をブラウザーに表示してください。

アシスタントに見てもらう​

組み込みブラウザーのページをアシスタントに確認させると、アドレス、タイトル、表示されているテキスト、スクリーンショット、ページの最新のエラーメッセージを読み取り、それらが AI モデルに送られます。

  • このコンピューター上のページ(localhost または 127.0.0.1)は、確認なしでアシスタントが見られます。
  • それ以外のウェブサイト、たとえばログイン済みのページでは、まずアシスタントがカードを表示します: 「アシスタントが onedrive.live.com を見ようとしています。」見てもよい または 拒否 をクリックしてください。これは毎回求められます。
  • 許可後にページが別のウェブサイトへ移動しても、アシスタントは何も読み取りません。
  • このコンピューター上のページでのみ、アシスタントは自分でクリックや টাইピングを行い、作成したものをテストします。その他のウェブサイトではクリック、入力、移動はしません。Cookie やパスワードも取得しません。
  • オフラインモードでは、アシスタントはこのコンピューター上のページのみを確認します。

バージョンと GitHub​

アシスタントには組み込みの git があります。そのため git をインストールする必要はなく、Windows でも同様です。アシスタントはバージョンを保存したり、変更点を表示したり、ブランチを作成したり、プロジェクトを公開したりできます。

  • このフォルダでの操作、たとえばバージョンの保存は、確認なしで開始されます。秘密情報のように見えるファイル(.env ファイル、キーやトークンを含むコード、AIza で始まる Google API キーも含む)は、バージョンには決して含まれません。アシスタントは何を省略したかを通知します。
  • オンライン操作(プロジェクトのダウンロード、最新バージョンの取得、公開、GitHub リポジトリの作成)は、まず正確なアドレスと アプリ内蔵 および ネットワークオン のラベル付きカードを表示します。アドレスが github.com ではない場合、または新しいリポジトリが公開される場合、カードで警告します。公開時には、送信されるファイルがカードに表示されます。実行 または 拒否 を選択してください。
  • github.com 以外のリポジトリを接続する場合も、まず許可が必要です。

GitHub の接続方法とプロジェクトの公開方法については、Vibe コーディング をご覧ください。

オフラインモード

オフラインモード では、コマンドは常にネットワークなしのサンドボックスで実行されます。ネットワークを使うパッケージのインストールや、組み込み git のオンライン操作(ダウンロード、取得、公開、GitHub)は動作しません。バージョンの保存とシンプルなウェブページの表示は可能です。

管理者向け設定​

管理者は、環境内の全員に対してローカルコマンドや自動実行を無効にできます。これは管理環境の 機能(環境レベル)の デスクトップアプリ カードで設定します。

  • ローカルコマンドを許可: これをオフにすると、アシスタントはコマンドを実行できません。組み込み git のオンライン操作も動作しません。バージョン保存とブランチは引き続き機能します。これらはファイルツールと同様に、フォルダ内のファイルだけを変更します。
  • 自動実行を許可: これをオフにすると、すべてのコマンドで許可が必要になり、確認なしでパッケージのインストールを許可する をオンにできません。
  • Office ファイル用にアプリの Python を許可: テンプレート、グラフ、分析用です。この Python はインターネットを使わず、作業フォルダにのみ書き込み、他のプログラムを起動できません。何も設定されていない場合は、これに ローカルコマンドを許可 が適用されます。サンドボックスなし(Windows)では、ローカルコマンドがオンのときのみ利用でき、毎回許可が必要です。