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

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

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

コマンド設定を開く​

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

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

次の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

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)では、ローカルコマンドがオンのときにのみ利用でき、毎回許可を求めます。