ローカルコマンドを安全に実行する
デスクトップアプリでは、アシスタントがチャットの作業フォルダー内でコマンドやテストを実行できます。チャット内での動作については、ローカルファイルへのアクセス を参照してください。このページでは、いつ確認なしで実行できるか、またコマンドをどの程度隔離して実行するかを設定します。
コマンド設定を開く
チャットで コマンド パネルを開き、このフォルダーのコマンド設定 を選びます。設定はフォルダーごとに適用されます。
アシスタントがコマンドを実行できるのはいつ?
次の 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 と Linux)とローカルコマンドが必要ですが、管理者による 自動実行を許可 は不要です。コマンド パネルでは 自動(無害なコマンド) と表示されます。mkdir -p src/{components,utils}のような波括弧付きのリストもカードなしで開始されます。アプリが個別のパスに展開し、すべて確認します。 - 各カードには、正確なコマンドと、オンライン操作の場合は正確なアドレスが表示されます。その下に、アシスタントの説明が小さく表示されます。
- サンドボックスが利用可能で、管理者が自動実行を許可している場合、サンドボックスで実行されるコマンドのカードには 今後このフォルダーでサンドボックス内で自動実行 ボタンも表示されます。これを押すとフォルダーが サンドボックスで自動実行 に設定され、次回以降のコマンドはカードなしで開始されます。ネットワークを必要とするコマンドは、パッケージのインストールが許可されている 場合を除き、もう一度確認されます。
- サンドボックス内で実行され、ネットワークを必要としないフォルダーで最初のカードには、一度だけ このプロジェクトを信頼する が表示されます。これを実行するとフォルダーが サンドボックスで自動実行 に設定され、確認なしでパッケージのインストールを許可 がオンになります。その後は、
npm test、npm run build、node --testなどのテストやビルドが、サンドボックス内・ネットワークなしでカードなしで開始されます。さらにネットワークが必要なコマンドや、サンドボックス外で実行されるコマンドは、引き続き確認されます。実行 または 拒否 の後は、このフォルダーで再度尋ねられることはありません。モードの変更はコマンド設定で行います。自動実行がオフの場合は、各カードに管理者またはこのコンピューターの管理ポリシーがそうしている旨が表示されます。
信頼済みコマンドを保存する
コマンドで このフォルダーで常に許可 を選び、続けて このコマンドだけ または これで始まるすべて を選びます。保存したコマンドは今後確認なしで開始されます。特殊文字(; | > $ など)を含むコマンドは、常に許可が必要です。
保存したルールは、コマンド設定の このフォルダーで常に許可 に表示されます。そこから削除することもできます。
サンドボックスとネットワーク
- サンドボックスを使う: コマンドはこのフォルダーにのみ書き込めます。このオプションは macOS と Linux で既定でオンです。
- ネットワークを許可: コマンドがインターネットにアクセスできるかを決めます。このオプションは既定でオフです。サンドボックスがない場合、コマンドは常にネットワークにアクセスできます。
各コマンドカードには、サンドボックスとネットワークがオンかどうかが表示されます。
ネットワークを許可 がオフで、アシスタントが npm install のように何かをダウンロードしたい場合、コマンドカードが「ネットワークありでこのコマンドを実行する」かを確認します。つまり、フォルダー全体でネットワークをオンにする必要はありません。
Windows ではまだサンドボックスは利用できません。
パッケージをインストールする
アプリには npm を含む独自の Node.js が内蔵されています。そのため、Node.js がコンピューターにインストールされていなくても node、npm、npx は動作します。自分で 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 と Linux)でのみ機能し、管理者が自動実行を許可している場合に限ります。それ以外ではオンにできません。
この方法でインストールされるパッケージは、自分自身のインストールスクリプトを実行しません(npm は --ignore-scripts で実行されます)。Python パッケージは、完成済みの wheel としてのみインストールされます。
ローカルサーバーと組み込みブラウザー
アシスタントは、Vite を使った小さな React プロジェクトの npm run dev のような、動き続ける開発サーバーも起動できます。これには他のコマンドと同じルールが適用されます。つまり、正確なコマンドを承認するか、保存済みルールやサンドボックス内の自動実行で開始されます。最大実行時間の代わりに、カードには「停止するまでローカルサーバーとして動作し続けます」と表示されます。
サーバーは、アシスタントが返答した後も動き続けます。コマンド パネルでは、カードに サーバーが実行中 と表示され、ブラウザーで開く と 停止 ボタンが使えます。同時に実行できるサーバーは最大 4 つです。サーバーは、停止するかアプリを終了すると止まります。
サンドボックス内でネットワークなしの場合、サーバーはこのコンピューター(localhost)でのみ待ち受けできます。アシスタントがどのようにパッケージをインストールするかは、パッケージをインストールする を参照してください。
シンプルなウェブページを表示する
通常のウェブページ(CSS と JavaScript を含む index.html、ビルド工程なし)の場合は、コマンドは不要です。その場合、アシスタントはアプリ内蔵のウェブサーバーを使います。
- フォルダーはこのコンピューターからのみ見え、
http://127.0.0.1のランダムなポートで提供されます。 .gitや.envなどの隠しファイルは表示されません。- ファイルが変更されると、ページは自動で再読み込みされます。
この場合、承認カードは表示されません。サーバーは コマンド パネルに表示され、ブラウザーで開く と 停止 が使え、最大 4 サーバーのカウントに含まれます。
結果は組み込みブラウザーで確認します。右上バーの右側にある ブラウザー ボタン(地球儀アイコン)です。パネルはチャットの横に開き、戻る、進む、再読み込み(読み込み中は停止)、アドレスバー、そして 既定のブラウザーで開く が表示されます。
- アシスタントは、ローカルサーバーの結果を表示するために自分でブラウザーを開きます。これは
http://localhost:5173のようなローカルアドレスでのみ可能です。 - 返答の中の localhost リンクをクリックすると、組み込みブラウザーで開きます。その他のリンクは既定のブラウザーで開きます。
- 自分で任意のウェブアドレスを入力することもできます。
- ブラウザーには独立したセッションがあり、そこで AI-Public にログインしているわけではありません。サイトはカメラやマイクのような許可を取得できず、ダウンロードもできません。
- アプリのメニューやダイアログが開いている間、ページは一時的に非表示になります。
例:
このフォルダーに、カウンター付きの小さな Vite React アプリを作成してください。依存関係をインストールし、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)では、ローカルコマンドがオンのときのみ利用でき、毎回確認を求めます。