ローカルコマンドを安全に実行する
デスクトップアプリでは、アシスタントがチャットの作業フォルダー内でコマンドやテストを実行できます。チャット内での動作については、ローカルファイルアクセス を参照してください。このページでは、どの条件なら確認なしで実行できるか、そしてコマンドをどの程度隔離して実行するかを設定します。
コマンド設定を開く
チャットで コマンド パネルを開き、このフォルダーのコマンド設定 を選択します。設定はフォルダーごとに適用されます。
いつアシスタントはコマンドを実行できる?
次の3つのモードから1つを選びます。
- 毎回確認する: すべてのコマンドを承認します。
- 信頼済みコマンドを自動実行: 保存したコマンドは確認なしで開始されます。それ以外のコマンドは引き続き許可を求めます。
- サンドボックスで自動実行: すべて確認なしで開始されますが、隔離された環境で実行されます。
どのモードでも、次のルールが適用されます。
- 無害なコマンド はカードなしで開始されます:
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 ではまだサンドボックスは利用できません。
パッケージのインストール
アプリには npm を含む独自の Node.js が組み込まれています。そのため、コンピューターに Node.js がインストールされていなくても node、npm、npx は動作します。Node.js を自分でインストールしている場合、アプリはそのバージョンを使います。例外: 自分で Electron を起動するプロジェクト(electron .)には、自分でインストールした Node.js が必要です。
確認なしでパッケージのインストールを許可する
このフォルダーのコマンド設定 で、確認なしでパッケージのインストールを許可 をオンにします。名前付きパッケージのインストールはカードなしで開始されます: npm install <name>、package.json からの npm install、および pnpm、yarn、bun の install または add、さらに pip install <name>(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-School にはログインされず、サイトにはカメラやマイクのような権限は付与されず、ダウンロードもできません。
- アプリのメニューやダイアログが開いている間は、ページは一時的に非表示になります。
例:
このフォルダーに、カウンター付きの小さな 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)では、ローカルコマンドがオンのときにのみ利用でき、毎回許可を求めます。