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

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

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

コマンド設定を開く​

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

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

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

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