インストールと初回起動

この章では、まっさらな Mac から Bromure Agentic Coding が使える状態になるまでを案内します。アプリに必要なもの、インストール方法、初回起動時にオンボーディングウィザードが行うこと、Linux ベースイメージがどのようにダウンロード・検証され最新に保たれるか、アプリがファイルをどこに保存するか、そしてすべてをきれいに削除する方法を扱います。ここを読み終えたら、クイックスタートに進んでください。

システム要件

要件最小構成
MacApple Silicon(M1 以降)
macOSmacOS 14(Sonoma)以降
空きディスク容量初回セットアップの実行に最低 8 GB。インストール済みのベースイメージに約 6~8 GB、加えて各マシンが使う容量を見込んでください
ネットワークベースイメージのダウンロードにインターネット接続が必要(代替としてローカルビルドも可能。下記参照)

Intel 版は存在せず、今後も提供されません。アプリは Apple の Virtualization.framework 上で Linux VM を実行しますが、これは Apple Silicon 上の ARM64 ゲストしかサポートしないためです。

ディスク容量に関する 2 つのセーフガードが組み込まれています。

  • すべてのイメージインストールは、まずアプリのサポートフォルダがあるボリュームに 8 GB 以上の空きがあるかを確認し、なければ明確なメッセージとともに停止します。
  • ローカルイメージビルド中は、空き容量が 1 GB を下回るとモニターが明示的なディスク不足エラーでビルドを停止し、タイムアウトまで放置することはありません。

セッションの横に開くオプションの組み込みブラウザは、独自の Ubuntu + Chromium イメージを使います。これは初めてインストールしたときに別途ダウンロードされます。設定 › ブラウザを参照してください。

アプリのインストール

リリースビルドは、bromure.io にて署名・公証済みのディスクイメージ(BromureAgenticCoding.dmg)として公開されます。

  1. bromure.io のダウンロードページから DMG をダウンロードします。
  2. DMG を開きます。ウインドウにはアプリアイコンと、アプリケーション へのショートカットを指す矢印が表示されます。
  3. Bromure Agentic Coding を アプリケーション にドラッグします。
  4. DMG を取り出し、/Applications からアプリを開きます。

公開されている DMG は公証済みなので、Gatekeeper は警告なしに開きます。bromure.io 以外の場所から DMG を入手して Gatekeeper が警告を出した場合は、回避すべきものではなく危険信号として扱ってください。

初回起動:オンボーディングウィザード

初めてアプリを開くと、メインウインドウの代わりに Bromure Agentic Coding というタイトルのセットアップウインドウが開きます。これは 6 ステップのウィザードで、左側の列にステップが並び、完了したものにはチェックが付きます。現在のステップが右側に表示され、そのステップのボタンは下部に並びます。

ウィザードは、アプリにまだベースイメージがないとき、またはベースイメージはあってもマシンが 1 台もないとき(たとえば再インストール後や、コマンドラインでイメージを構築したとき)に開きます。ベースイメージがすでにある場合、インストール ステップは一覧から外れます。アプリがリモート Mac のミラー専用として起動された場合(リモートアクセスとクライアントを参照)や、ウインドウのないヘッドレスエージェントとして起動された場合は、ウィザードは開きません。

ステップは ようこそ、インストール、資格情報、選択、モデル、完了 です。

1. ようこそ

ようこそステップのオンボーディングウィザード。風景写真の上に左側のステップ一覧(ようこそ、インストール、資格情報、選択、モデル、完了)、見出し「Bromure へようこそ」と副題「さっそく始めましょう。」、短い説明、右下の「はじめる」ボタン。

最初のステップの見出しは Bromure へようこそ ――「さっそく始めましょう。」です。短い段落で、Bromure がコーディングエージェントを使い捨ての Linux VM 内で実行すること、そしてウィザードがベースイメージをインストールしたあと、この Mac にすでにある認証情報の取り込みを提案することが説明されます。

はじめる をクリック(または Return キーを押す)してインストールを開始します。ベースイメージがすでにある場合、ボタンは 続行 になり、資格情報ステップへ直接進みます。

2. インストール

インストールステップでは、ウィザード内でベースイメージのインストールを実行します。見出しは ベースイメージを準備しています ――「イメージをダウンロードしてパッチを適用しています。初回のみのインストールです。ウインドウを閉じないでください。」表示される内容は次のとおりです。

  • 現在の段階を示すステータス行。通常のダウンロード経路では「Fetching image catalog…」、続いて「Downloading … (… GB)…」「Verifying … checksum…」「Expanding …」などの行、推奨パッケージのインストール中は「Customizing the image: …」(初回セットアップが行うことを参照)、最後に「Base image ready at … (v201)」と表示されます。
  • パーセント表示付きの進捗バー。
  • インストーラーの生のログを表示する、折りたたまれた コンソール出力 セクション。テキストは選択でき、コピー でログ全体をコピーできます。画面に残るのは最後の 100 行だけです。

何かが失敗すると、ステータス行が赤いエラーに変わり、閉じる ボタンが表示されます。

インストール中にウインドウを閉じようとすると、アプリは ベースイメージの再構築をキャンセルしますか? ――「イメージは不完全な状態のまま残ります。新しいセッションを開始する前に再構築をやり直す必要があります。」――と尋ね、再構築をキャンセル と 構築を続ける を表示します。

インストールが終わると、ウィザードは自動的に資格情報ステップへ進みます。

メモ: イメージのインストール中は、オプションの SSH リモートアクセスサーバーが一時停止され、終了後に再開されます(リモートアクセスとクライアントを参照)。

3. 資格情報

資格情報ステップ。見出し「既存の資格情報を取り込みますか?」、スキャンが読み取るものを並べた枠(git の設定、保存されたパスワード、GitHub と GitLab の CLI、Docker、npm、PyPI、crates.io、AWS、Kubernetes、DigitalOcean、Claude・ChatGPT・Grok・Kimi のログインと API キー、SSH キー、.env ファイル)、実際の値はこの Mac を離れないという注記、「後で」と「この Mac をスキャン」のボタン。

ウィザードは、あなたがすでに使っている認証情報や設定ファイルを探すことを提案します。既存の資格情報を取り込みますか? ――「Bromure はこの Mac にある設定ファイルを読み取り、取り込みを提案できます。」枠の中に、読み取る対象が並びます。

  • git の設定、保存されたパスワード、GitHub と GitLab の CLI
  • Docker、npm、PyPI、crates.io
  • AWS、Kubernetes、DigitalOcean
  • Claude、ChatGPT、Grok、Kimi の API キーと設定
  • SSH キー、.env ファイル

その下の注記が、これを安全にしている原則を繰り返します。「実際の値がこの Mac を離れることはありません。VM にはダミーだけが渡され、送信時にプロキシが本物へ入れ替えます。」

  • この Mac をスキャン はそれらのファイルを読み取り、選択ステップへ進みます。そこで確定するまで、何も取り込まれません。
  • 後で はスキャンをスキップし、何も取り込みません。モデルステップへ直接進みます。

4. 選択

選択ステップ。見出し「見つかった項目」、チェックボックス付きの検出結果の一覧(AWS アクセスキーと GitHub CLI のログインにチェック)、左下の「.env ファイルを追加…」ボタン、右下の「スキップ」と「2 件を取り込む」ボタン。

見つかった項目 には、スキャンで見つかった各ファイルが 1 行ずつ、チェックボックス、ファイルのパス、内容の短い説明(たとえば git の ID と含まれるトークンの数)とともに並びます。「取り込む項目にチェックを入れてください。秘密情報はこの Mac に残り、VM にはダミーだけが渡されます。」何も見つからなかった場合は「設定ファイルが見つかりませんでした。」と表示されます。

認証情報ファイルのほかに、エージェントごとにその設定フォルダの行が含まれることがあります。たとえば Claude Code のスラッシュコマンド、サブエージェント、メモリファイルです。これらはそのままマシンにコピーされ、秘密情報は含みません。

  • .env ファイルを追加… で、.env ファイルを手動で選べます。その変数が一覧に追加されます。
  • n 件を取り込む(何もチェックしていないときは 続行)は、チェックした行を取り込んで次へ進みます。
  • スキップ は何も取り込まずに次へ進みます。

取り込んだものは、最初のマシンと、その後に作成するすべてのマシンの出発点になります。git の ID と設定、レジストリ・クラウド・git の認証情報は、新しいマシンが作られるときの元になる設定に入ります。例外は SSH キーで、最初のマシンにだけコピーされます。エージェントの設定から見つかったエージェントの API キーはグローバルのモデル設定に追加され、どのマシンでもそのエージェントを実行できるようになります。

メモ: スキャンは、この Mac 上でエージェントの CLI が保持しているサインイン(たとえば Claude Code 自身のログイン)はコピーしません。これらのサインインは自動的に更新されるため、Bromure と共有すると、片方が更新するたびにもう片方がサインアウトされてしまいます。代わりに次のステップで Bromure からもう一度サインインしてください。そうすると、Bromure 専用の独立したサインインが作られます。

5. モデル

モデルステップ。見出し「あなたのモデル」の下にモデルボードがあり、左にプロバイダーの列、右にエージェントの列、右下に続行ボタン。

このステップは初回起動時にのみ表示されます。あなたのモデル ――「使用するプロバイダにサインインするか、API キーを貼り付けてください。各エージェントはプロバイダの既定モデルを使います。特定のモデルを使う場合は右側で選択できます(後から「環境設定 → モデル」でも変更できます)。」その下には、環境設定 › モデル と同じモデルボードがあり、左に プロバイダー の列、右に エージェント の列があります。スキャンで取り込んだものは、すでに設定済みとして表示されます。

サブスクリプション(Claude、ChatGPT、Grok、Kimi)の場合は、プロバイダーのサインインを選びます。サインインはあなたの Mac 上の、隠れた一時マシンの中で行われるため、ターミナルが表示されることはありません。ボードの上のカードが進行状況を示します。

  • 「プライベートなサインイン用マシンを準備しています…」、続いて「ブラウザでサインインを完了してください…」などの進捗行。
  • プロバイダーのサインインが自動でブラウザを開かない場合、カードに サインインページを開く ボタンが表示され、デバイスコード方式のサインインでは あなたのコード: に続いて入力するコードが表示されます。
  • 成功すると、カードに プロバイダー にサインイン済み ――「アカウントはこの Mac に保存され、すべてのマシンで利用できます。」と表示されます。OK をクリックして閉じます。
  • キャンセル はサインインを中止し、一時マシンを削除します。

一度に実行できるサインインは 1 つだけです。現在のサインインが完了するかキャンセルされるまで、ボードと 続行 ボタンは無効になります。API キーを使うプロバイダーの場合は、代わりにプロバイダーの項目にキーを貼り付けます。このボードのすべてのプロバイダーとオプションはモデルとプロバイダーで説明しています。

ここで何かを設定する必要はありません。続行 をクリックして先へ進みます。何も設定されていないエージェントは、最初に起動したときにサインインを提案します。

6. 完了

完了ステップ。緑のチェックマーク、見出し「準備完了」、右下の「Bromure を使い始める」ボタン。

準備完了 でセットアップが確認されます。ファイルを取り込んだ場合は、その下に取り込んだ内容の概要が表示されます。そうでなければ「最初のマシンの準備ができました — セッションを始めて、好きなエージェントを選んでください。」と表示されます。

Bromure を使い始める をクリックします。ウィザードが閉じ、次のようになります。

  • まだマシンがない場合、アプリはウィザードが集めた設定から デフォルトのワークスペース という名前のマシンを作成します。その既定のエージェントは、実際に起動できる最初のもので、Claude Code、Codex、Grok、Kimi Code、Oh My Pi の順に選ばれます。どれも設定されていなければ Claude Code のままで、起動時にサインインを提案します。
  • メインウインドウが新規セッション画面で開き、最初のセッションを始められる状態になります。ここから先はクイックスタートで説明します。

以降、アプリは直接メインウインドウで開きます。

ヒント: ウィザードの認証情報の部分は、後からでも使えます。サイドバーの 仮想マシン の横にある + を Option キーを押しながらクリックすると、ウィザードで新しいマシンを作成できます。資格情報ステップから始まり、モデルステップは飛ばされ、完了すると新しいマシンの設定が開きます。アプリメニューの 自分の構成から新規ワークスペース…(⇧⌥⌘N)も同じ動作をします。

初回セットアップが行うこと

インストールステップはベースイメージを作成します。これは EFI/GRUB ブートを備えた Ubuntu 24.04(「noble」)を含む 24 GB のスパースディスクで、すべてのマシンはここからクローンされます。作成方法は 2 つあり、ダウンロードが優先され、ローカルビルドが代替手段です。どちらも一時的な .partial ファイルに書き込み、結果を一度に所定の場所へ入れ替えるため、中断されたインストールが、動作するイメージの代わりに書きかけのイメージを残すことはありません。

ビルド済みイメージのダウンロード

優先される経路では、https://dl.bromure.io に毎週公開されるビルド済みイメージをダウンロードします。

  1. カタログ。 アプリは、自身のイメージバージョン用の署名付きイメージカタログを https://dl.bromure.io/images/201/img-catalog.json から取得します。カタログは現在のイメージ(ID、バージョン、SHA-256、サイズ)を示し、セットアップステップを列挙します。カタログには、アプリの更新に署名するのと同じ鍵で作られた ed25519 署名が付いており、署名はイメージの識別情報、チェックサム、すべてのセットアップコマンドを対象とします。署名のない、または無効なカタログは拒否され、アプリがすでに受け入れたものより前に署名されたカタログが使われることはありません(ロールバック保護)。
  2. ダウンロード。 圧縮されたイメージがダウンロードされ、SHA-256 が検証されます。失敗したダウンロードは最大 3 回再試行され、試行の間にカタログを取得し直します。
  3. 展開。 イメージは base.img.partial に展開されます。サイズは 24 GB ですが、実際のディスク使用量は約 6~8 GB だけです。
  4. イメージのカスタマイズ。 アプリはイメージとともに公開される小さなイメージツール一式をダウンロードし、一時的なヘルパー VM で起動します。この VM がカタログのセットアップステップをイメージ内で実行します(次のセクションを参照)。進捗は「Customizing the image: waiting for the prompt…」「…: installing packages…」などと表示されます。
  5. 入れ替え。 新しい EFI 変数ストアが作成され、base.img、efivars.bin、base.version、image-state.json がまとめて所定の場所に置かれます。

セットアップステップ:推奨パッケージ

公開されるイメージは法的に再配布可能でなければならないため、自由なソフトウェアだけを含みます(Node.js、Docker、kitty、gh、glab、kubectl、doctl、awscli、azure-cli など)。それ以外のものはすべて、カタログ内で署名付きのセットアップステップとして宣言され、あなたの Mac 上で、あなたの イメージのコピーにインストールされます。バージョン 5.0.0 に同梱されているステップは次のとおりです。

順序ステップインストール方法
10Claude Code(Anthropic)npm、Socket.dev サプライチェーンスキャナーでラップ(npx --yes @socketsecurity/cli npm install -g --silent @anthropic-ai/claude-code)
20Codex CLI(OpenAI)npm、Socket.dev でラップ
30Grok CLI(x.ai)ベンダーのインストールスクリプト
35Kimi Code CLI(Moonshot AI)npm、Socket.dev でラップ
37Oh My Pi CLI(omp)+ bun ランタイムbun のインストールスクリプト、続いて npm で omp(Socket.dev でラップ)
40Google Cloud SDK(gcloud)gcloud、gsutil、bq

新規インストールでは、同梱のステップはすべて追加の確認なしで実行されます。ウィザードからセットアップを開始すること(または bromure-ac init を実行すること)が あなたの同意にあたります。後から公開されたステップは、ベースイメージの更新で説明する 新しい推奨パッケージ の確認を通じて、明示的な承認が必要です。カタログ署名がすべてのステップのコマンドを対象としているため、改ざんされたダウンロードサーバーが、あなたのイメージ内で root として実行される内容を変えることはできません。

ローカルビルドのフォールバック

ダウンロード側の理由(オフライン、サーバーの停止、チェックサムや展開の失敗)でダウンロードが失敗すると、アプリは イメージのダウンロードに失敗 を、エラー内容と「代わりに Bromure がイメージをローカルで構築できます(約 10 分、結果は同じ)。」とともに表示し、ローカルで構築 と キャンセル のボタンを出します。黙ってローカルビルドに切り替えることはありません。(これに対し、bromure-ac init コマンドは自動的に代替手段に切り替えます。)

ローカルビルドは、あなたの Mac 上で同じイメージを作成します。

  1. イメージビルドツールをダウンロードし、サポートフォルダにキャッシュします。
  2. 新しい 24 GB のスパースディスクを作成します。
  3. 1 回限りのビルダー VM(4 vCPU、4 GB RAM)を起動し、Ubuntu noble、自由なツール群、GRUB をインストールします。
  4. ダウンロード経路と同じカタログのセットアップステップを適用します。

進捗は「Building the image: downloading tools…」「Allocating 24GB sparse disk…」「Building the image: starting…」などと表示されます。この経路では、進捗バーはインストーラーのログに従い、最後に「Base image ready」へ跳ぶまで 97% で止まります。

ローカルビルドは VPN 環境でも動くように設計されています。パッケージのダウンロードはすべてホスト側のプロキシを経由し、ダウンロードの前にビルダーのネットワーク MTU が下げられ、ネットワークがなければ早い段階でビルドが止まり、ゲストカーネルがクラッシュすると新しいディスクで 1 回だけ自動的に再試行されます。関連する 2 つの回避策:

  • ビルダー VM がネットワークアドレスを取得できない場合、ビルドは ベースイメージ構築中のネットワークの問題 で失敗し、修復してやり直す(macOS のネットワークサービスを再起動。管理者パスワードを求めます)または キャンセル を提示します。
  • 大きなパケットを落とす VPN(たとえば MTU 1420 の WireGuard)では、ビルダー VM の MTU を自分で設定できます:defaults write io.bromure.agentic-coding vm.mtu -int 1400。

いつでも意図的にローカルビルドを選ぶこともできます。アプリメニューの ベースイメージを再構築… › ローカルで再構築、または bromure-ac init --build-local です。

セットアップ中に使用されるネットワークエンドポイント

ファイアウォールおよびプロキシの管理者向けに、インストールが通信する先は次のとおりです。

エンドポイント目的
https://dl.bromure.ioイメージカタログ(images/201/img-catalog.json)、イメージのダウンロード、イメージツール
パッケージミラーとベンダーのサイトUbuntu パッケージ、npm レジストリ、Socket.dev、ベンダーのインストールスクリプト。アプリのホスト側プロキシ経由で取得
https://bromure.io/api/v1/release-agentic-codingアプリのアップデート確認(イメージのセットアップには含まれない)

インストール自体は、待ち受けるネットワークポートを開きません。ビルド中に使われるホスト側のパッケージプロキシは、一時的な localhost ポートでのみ待ち受けます。

セットアップ時間とディスク使用量

経路一般的な所要時間備考
ビルド済みイメージのダウンロード数 GB のダウンロード時間+展開+セットアップステップに数分主に回線速度次第
ローカルビルド約 10 分最長 45 分で停止

ディスク使用量:

  • 開始時: ~/Library/Application Support/BromureAC/ を含むボリュームに最低 8 GB の空き。
  • インストール後: ベースイメージの実際の使用量は約 6~8 GB です(サイズは 24 GB。スパースディスクの未使用部分は容量を消費しません)。
  • マシンごと: 各マシンのシステムディスクは、ベースイメージの APFS コピーオンライトクローンとして始まるため、最初はほとんど容量を使わず、マシンがデータを書き込むにつれてのみ増えていきます。ホームディスクも同じように増えます。

セットアップは、ベースイメージのバージョンごとに 1 回だけ行われます。

コマンドラインツール

アプリは、あなたのユーザーアカウントの外に自分から何かをインストールすることはありません。ターミナルから Bromure を操作するには、アプリメニュー(Bromure Agentic Coding メニュー)で コマンドラインツールをインストール… を選びます。アプリは コマンドラインツール「bromure-cli」をインストールしますか? ――「/usr/local/bin/bromure-cli にシンボリックリンクを作成し、ターミナルから Bromure を操作できるようにします(vm、exec、trace、…)。管理者パスワードが一度必要です。」――と尋ねます。インストール をクリックして管理者パスワードを入力してください。バックグラウンドのヘルパーはインストールされません。

このメニュー項目は、インストール済みのアプリバンドルからのみ動作します。コマンドの完全なリファレンスは CLI、API、MCP にあります。

すべてが保存される場所

アプリが書き込むものはすべてあなたのユーザーアカウント内にあります。オプションの bromure-cli リンクを除き、システム全体にインストールされるものはありません。

パス内容
~/Library/Application Support/BromureAC/アプリのサポートフォルダ
…/BromureAC/base.imgUbuntu ベースイメージ(サイズ 24 GB、ディスク上は約 6~8 GB)
…/BromureAC/efivars.binベースイメージの EFI 変数ストア
…/BromureAC/base.versionインストール済みイメージのバージョンスタンプ(例:201、201.1)
…/BromureAC/image-state.jsonイメージの出どころと、適用済みのセットアップステップ
…/BromureAC/img-catalog.jsonイメージカタログのキャッシュ
…/BromureAC/profiles/マシンごとに 1 フォルダ:profile.json、システムディスク disk.img、ホームディスク home.img、SSH キー、チェックポイント、保存された状態
…/BromureAC/sessions.jsonセッション:タイトル、エージェント、フォルダ、状態
…/BromureAC/transcripts/各セッションの会話のローカルコピー。マシンが停止していても読めるようにするためのもの
…/BromureAC/rooms.jsonルーム
…/BromureAC/delegations.jsonエージェント同士で受け渡した作業
…/BromureAC/models.encグローバルのモデル設定(暗号化)
…/BromureAC/claude-subscription.enc、codex-subscription.enc、grok-subscription.enc、kimi-subscription.encサブスクリプションのサインイン(暗号化)
…/BromureAC/profile-template.enc新しいマシンの元になるデフォルトテンプレートの秘密情報(暗号化)
…/BromureAC/security-timeline/セキュリティタイムライン。1 日 1 ファイルで 90 日間保持
…/BromureAC/kube/Kubernetes クラスター、レジストリ、メッセージングコネクタと、それらの VM ディスク
…/BromureAC/pii/個人情報保護のデータ
…/BromureAC/dhcp-leases.sqliteアドレスのリース。各マシンが通常同じ IP アドレスを保てるようにするためのもの
…/BromureAC/browser/組み込みブラウザのイメージ(インストールされている場合)
…/BromureAC/base.img.partial、base.img.gz.partial、efivars.partial一時的なインストールファイル。これらがある場合、インストールが実行中か中断されています
~/Library/Logs/BromureAC/bromure-ac.logアプリのログ
~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plistログイン時起動エージェント。いずれかのマシンで ログイン時にこの VM を起動 がオンのときに書き込まれます
/usr/local/bin/bromure-cliオプションのコマンドラインツールのリンク
UserDefaults ドメイン io.bromure.agentic-codingアプリ設定

意図的に別の場所に置かれているものが 2 つあります。

  • 認証情報のマスターキーは、macOS のデータ保護キーチェーンに このデバイスのみ として保存されるため、Mac から出ることはありません。ディスク上の秘密情報は AES-256-GCM 暗号文です。認証情報を参照してください。
  • アプリバンドルには、リモート Mac をミラーするときに使うシステムデーモン(io.bromure.fatclient-tunnel)が含まれています。必要なときにだけ登録され、最初の登録時に システム設定 › 一般 › ログイン項目 に承認スイッチが表示されます。リモートアクセスとクライアントを参照してください。

bromure-ac info は、インストール済みイメージのバージョンスタンプ、サイズ、パスをいつでも表示します。

ベースイメージの更新

バージョンスタンプ

インストール済みのイメージは、そのバージョンを base.version に記録します。アプリのバージョン 5.0.0 はベースイメージ 201 を使います。同じバージョンでの再構築、再ダウンロード、追加適用のたびにドットリビジョンが付きます(201 → 201.1 → 201.2)。image-state.json には、イメージの出どころと、適用済みのセットアップステップが記録されます。

アプリは自身のイメージバージョンのカタログで更新を探すため、古いアプリが新しいアプリ向けのイメージを取り込むことはありません。ビルド済みイメージは毎週最新の Ubuntu パッケージで再公開されますが、この毎週の再公開ではバージョン番号は変わらないため、毎週アップデートを求められることはありません。

更新プロンプト

Mac 上のイメージがアプリの想定するバージョンより 古い 場合、またはカタログが新しいバージョンを公開した場合、アプリは起動時に ベースイメージのアップデートがあります と表示します:「ベースイメージはバージョン X ですが、バージョン Y が利用できます。現在のイメージはそのまま使えます — アップデートすると新しいビルド済みイメージ(数 GB。代替としてローカル再構築)をダウンロードし、推奨パッケージを再適用します。」

  • 今すぐアップデート は、ダウンロードを優先して再インストールを開始します。
  • 後で は、次回の起動まで確認を閉じます。どちらを選んでも、現在のイメージはそのまま動作します。

アプリの想定より新しいイメージもそのまま動作し、確認は表示されません。

各マシンのアップグレード

新しいベースイメージをインストールしても、既存のマシンは変わりません。各マシンは、クローン元のシステムディスクをそのまま保ちます。古いベースから作られたディスクを持つマシンを次に起動すると、アプリは より新しいベースイメージがあります。 ――「このワークスペースはベース v201 で動作しています。ディスク上には v201.1 があります。今すぐアップグレードしますか? アップグレードするとワークスペースのディスクがリセットされ、VM 内にインストールしたものはすべて消去されます。プロジェクトフォルダには影響しません。」――と尋ねます。

  • はい、アップグレード は、マシンのシステムディスクを新しいベースでリセットしてから起動します。ホームディスク(と /home/ubuntu 内のすべて)は保持されます。
  • いいえ は、マシンをそのまま起動し、別のベースイメージがインストールされるまで再び尋ねません。
  • あとで通知 は、マシンをそのまま起動し、1 日以上たってから最初に起動したときに再び尋ねます。

回答はマシンごとに記憶されます。

新しい推奨パッケージ

カタログに、まだイメージに適用されていないセットアップステップがある場合、アプリは起動時に 新しい推奨パッケージ としてそれらを一覧表示し、確認を求めます:「新しいパッケージのインストールが推奨されています:… Bromure はこれらをベースイメージにインストールします(数分、バックグラウンド VM で)。既存のワークスペースは動き続けます。各ワークスペースのドリフト確認で、取り込むためのリセットが提案されます。」

  • インストール は、base.img のコピーオンライトクローンにステップを適用し、完了したら更新後のイメージに入れ替えます。実行中のマシンは動き続けます。バージョンスタンプにはドットリビジョンが付く(例:201 → 201.1)ため、その後、各マシンは上で説明したアップグレードを提案します。
  • 後で は、次回の起動時に再び尋ねます。

この同意なしに何かが実行されることはありません。セットアップステップはベースイメージ内で root として実行されます。

手動での再構築

いつでもイメージを再インストールするには、アプリメニューで ベースイメージを再構築… を選びます。ベースイメージを更新しますか? と尋ねられ、ビルド済みをダウンロード、ローカルで再構築、キャンセル が表示されます。既存のマシンのディスクには影響しません。新しいイメージが完成するまで古いイメージが使われ続けるため、再構築中もマシンを起動できます。コマンドラインでは bromure-ac init(ダウンロード優先)と bromure-ac init --build-local が同じ働きをします。

ダウンロードすると、推奨パッケージをインストール済みの公開イメージのコピー(stock.img、ディスクブロックをベースイメージと共有)が保存されます。カタログが同じイメージを指している限り、ビルド済みをダウンロード はこのコピーから始まります。ダウンロードとエージェントのインストールを省き、その後に公開されたパッケージだけを適用して、カスタマイズスクリプトを実行します。そのため、カスタマイズスクリプトの再試行や修正をすばやく行えます。それでも最初からやり直したい場合(たとえば新しいエージェントのリリースを取り込むため)は、再ダウンロードしてエージェントを再インストール をオンにするか、bromure-ac init --fresh を実行します。

アプリを最新の状態に保つ

アプリは Sparkle で自身を更新します。1 日に 1 回 https://bromure.io/api/v1/release-agentic-coding を確認し、更新はイメージカタログに署名するのと同じ公開鍵で検証されます。今すぐ確認するには、アプリメニューの Bromure Agentic Coding について の下にある アップデートを確認… を選びます。(開発ビルドにはこの項目はありません。)

アプリの更新とベースイメージの更新は別物です。アプリを更新してもイメージの更新につながるのは、新しいバージョンのアプリがより新しいベースイメージを想定している場合だけです。

新しい Mac への移行

組み込みの移行アシスタントはありません。推奨される方法は、新規インストールとマシンのデータのコピーです。

  1. 新しい Mac にアプリをインストールし、ウィザードを進めます。ベースイメージはコピーするより再ダウンロードするほうが速く、きれいです。
  2. 両方の Mac でアプリを終了します。
  3. ~/Library/Application Support/BromureAC/profiles/ を古い Mac から新しい Mac の同じ場所にコピーします。各サブフォルダが 1 台のマシンで、その設定(profile.json)、システムディスク(disk.img)、ホームディスク(home.img ――クローンしたリポジトリ、キャッシュ、シェル履歴)、SSH キーが含まれます。セッションの一覧と会話も残したい場合は、sessions.json、rooms.json、transcripts/ フォルダもコピーします。
  4. 新しい Mac でアプリを開きます。マシンは 仮想マシン の下に表示されます。いまインストールされているものとは別のベースイメージからクローンされたマシンは、上で説明したアップグレードを提案します。現在のディスクを残すには いいえ を選びます。

意図的に移行されないものが 3 つあります。

  • 認証情報。 保存された秘密情報を暗号化するマスターキーは、Mac のデータ保護キーチェーンに このデバイスのみ として保存されているため、古い Mac の暗号化された秘密情報やサインインは新しい Mac では読めません。各 profile.json 内の秘密でない情報は残ります。各マシンの 資格情報 ペインでキーを入力し直し、環境設定 › モデル でもう一度サインインしてください(認証情報を参照)。
  • エンタープライズ登録。 インストールの ID 証明書は 1 つのインストールに属します。新しい Mac を改めて登録してください(エンタープライズを参照)。
  • io.bromure.agentic-coding defaults ドメインの アプリの設定(自分でコピーしない限り)。

ヒント: マシンのディスクはスパースで、単純なネットワークコピーではコピーオンライトによる節約が失われます。古い Mac では数 GB しか使っていないマシンが、転送中に書き込み済みのフルサイズまで膨らむことがあります。スパース対応のコピー(たとえば rsync -aS)を使い、先に新しい Mac の空き容量を確認してください。

完全にアンインストールする

アプリとマシンを残したままベースイメージだけをリセットするには、bromure-ac reset を実行します(確認をスキップするには --yes を追加)。base.img、efivars.bin、base.version、image-state.json、および保存されたダウンロード(stock.img、stock-state.json)が削除され、次回起動時にセットアップがもう一度実行されます。マシンには一切触れません。

アンインストーラーは同梱されていません。すべてを削除するには:

  1. アプリを終了します(ヘッドレスエージェントも。pgrep -fl bromure-ac で確認します)。

  2. Bromure Agentic Coding を /Applications からゴミ箱にドラッグします。

  3. サポートフォルダを削除します。ベースイメージ、すべてのマシンとそのディスク、セッション、キャッシュ、インストールごとの CA が消えます。

    rm -rf ~/Library/Application\ Support/BromureAC
    
  4. ログイン時起動エージェントがあれば削除します。

    rm -f ~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plist
    
  5. ログフォルダを削除します。

    rm -rf ~/Library/Logs/BromureAC
    
  6. システム設定 › 一般 › ログイン項目と機能拡張 からアプリの項目を削除します(リモートミラーリング用デーモンの承認スイッチを一度でもオンにした場合)。

  7. コマンドラインツールをインストールした場合は削除します。

    sudo rm -f /usr/local/bin/bromure-cli
    
  8. 必要に応じて、アプリの設定を消去します。

    defaults delete io.bromure.agentic-coding
    

警告: 手順 3 は、すべてのマシンのディスク(クローンしたリポジトリ、コミットしていない作業、パッケージキャッシュ、シェル履歴)とすべてのセッションの会話を完全に削除します。残したいものは先にプッシュするかエクスポートしてください。

キーチェーン内の認証情報マスターキーは、その暗号文がなくなっても残ります。無害ですが、キーチェーンアクセスで io.bromure.agentic-coding.master-key を検索して削除できます。