
offstage
offstage cloud · コーディング · 生産性向上
offstage は AI エージェントと CI ジョブに本物の Mac を渡す。Apple Silicon 上の macOS 27 アカウントを API で操作し、秒単位で課金される。

offstage について
About
offstage とは
offstage は AI エージェントと CI ジョブ向けの macOS サンドボックスだ。サンドボックスは Mac Studio 上の 1 つのユーザーアカウントで、Mac クラウド API か TypeScript SDK から触る。シェルコマンドを走らせ、ファイルを出し入れし、スクリーンショットを撮り、仕事が終わったらアカウントを閉じる。
きっかけは 2 つの面倒だった。Linux ホストで Apple のソフトをビルドしてテストするのは手間がかかる。エージェントに自分のノート PC をクリックさせるのは危ない。どちらも共有マシンの root ではなく専用アカウントを渡す形にし、閉じた時点で中身を消す。
制約も製品のうちだ。sudo も Homebrew もなく、xcodebuild test の iOS シミュレータ対応はまだ穴があり、サンドボックスは最長 24 時間で終わる。
使い始める
- console.offstage.cloud のコンソールにサインインし、API keys でキーを作る。sk_offstage_ で始まり、表示は 1 回だけだ。
- npm install offstage-cloud で SDK を入れる。HTTP API を任意の言語から叩いてもよい。
- Sandbox.create() でサンドボックスを作る。タイムアウトはこれから走らせる仕事に合わせる。
- sandbox.commands.run() でコマンドを実行し、sandbox.files.write() と sandbox.files.read() でファイルを動かす。
- finally ブロックで sandbox を閉じる。課金のカウントはそこで止まる。
AIツール情報
offstageの料金、対応プラットフォーム、性能を簡単に確認できます。
こんな人におすすめ
このツールが最も力を発揮するユーザー、タスク、シーン。
ユーザー
- iOS と macOS の開発者:オフィスに Mac mini を置かずに Xcode CI を回せる。1 ジョブ 60 分の上限に収まる仕事が条件だ。
- コンピュータ操作エージェントを作るチーム:エージェントごとにデスクトップセッションを渡し、ウィンドウ付きアプリと画面撮影を扱える。余分なハードは要らない。
- Windows や Linux で書く人:本物の Apple Silicon で swift test を数分だけ動かせる。マシンを買わずに済む。
タスク
- pull request ごとに swift build と swift test を回す:ワークフローの 1 行を変えるだけで macOS CI のジョブが Mac Studio に載る。小さなチームでも Swift ビルド用のサーバーを自前で持てる。
- macOS 27 でしか出ない不具合を再現する:サンドボックスを開き、リポジトリを clone し、同じツールチェーンで失敗するコマンドを叩く。
- ドキュメント用のスクリーンショットを撮る:gui サンドボックスなら、スクリプトがアプリを開いて sandbox.screenshot() を呼べる。
- iOS シミュレータを起動してレイアウトを見る:xcrun simctl でビルドを入れて起動し、PNG を保存する。
シーン
- コーディングエージェントが Mac の要る工程に差しかかる:リモート Mac を借りてビルドを終わらせ、アカウントを返す。
- リリース週で CI の待ち行列が長い:タスクは空きマシンを無料で待ち、走っている間だけ課金される。
- デスクトップ自動化スクリプトを試作する:同じサンドボックスを 1 時間開いたまま直し、終わったら消す。
主な機能
サンドボックスごとに 1 つの macOS アカウント
Apple Silicon のサンドボックスは macOS 27 を 1 つのユーザーアカウントとして動かす。ホームディレクトリもプロセスも独立している。呼び出し 1 回ずつ操作する形で、zsh でコマンドを走らせ、最大 10 MiB のファイルを書き、テキストか生バイトで読み戻す。同じ Mac Studio の他の仕事からはファイルが見えない。
ターミナルらしく動くコマンド実行
sandbox.commands.run() は zsh -lc の中で走り、stdout、stderr、終了コード、所要時間を返す。終了コードが 0 以外でも例外は投げない。テストの失敗は普通の結果として受け取り、次の判断に使える。長いコマンドは 30 分まで追跡する。
ヘッドレスとデスクトップの 2 種類
ヘッドレスの sandbox はシェルで直接立ち上がる。ビルドやスクリプトに向く。gui の sandbox はログイン済みのデスクトップセッションで動き、ウィンドウ付きアプリと画面撮影を扱える。クリックや入力の API はない。Mac 上で動くプログラムから UI を操作する。
GitHub Actions の macOS ランナー
コンソールで GitHub 組織をつなぎ、ワークフローに runs-on: offstage-macos と書く。ジョブごとに新しいアカウントが付き、GitHub のランナーがその 1 件を実行し、終了時にアカウントは消える。シミュレータの UI テストでデスクトップが要るなら offstage-macos-gui に切り替える。
放っておける CI のためのタスク
タスクは公開リポジトリの既定ブランチを clone し、指定したコマンドを走らせ、名前を挙げた成果物を残す。failureReason を見れば、ビルドの失敗、clone の失敗、タイムアウト、マシンが来なかったことを区別できる。待ち行列の時間は課金されない。
秒単位の課金と予算の上限
sandbox もタスクも 1 秒 $0.000217、1 時間で $0.78。最低額も席数もない。新しいチームは $5 のクレジットと月 $50 の予算から始まり、所有者がコンソールで上げるか外せる。50%、80%、100% で通知が来る。
メリットとデメリット
メリット
- 隔離:エージェントは自分の macOS アカウントに閉じる。雑なコマンドが手元のノート PC や他チームのファイルに届かない。
- Apple のツールチェーンが入っている:Xcode 27.2、Swift、SwiftPM、clang、git、make がどのマシンにもある。
- 待ち時間は無料で課金は秒単位。2 分のテストなら 3 セントほどだ。
- コーディングエージェントは api.offstage.cloud/SKILL.md の 1 ファイルを読むだけで自分を設定できる。人がキーをコピーしなくてよい。
- タスクが失敗の理由を返すので、ビルド、clone、容量のどこで詰まったか分かる。
デメリット
- sudo も Homebrew もない。システムパッケージを前提にするツールは、プロジェクト内でビルドするかホームディレクトリに入れる必要がある。
- xcodebuild test の iOS シミュレータ先はまだ動かない。シミュレータの UI テストは別のランナーが要る。
- チームで同時に開ける sandbox は 4 個まで、CI ジョブは 60 分で止まる。長いビルド行列は収まらない。
- クリックや入力の API がない。コンピュータ操作エージェントは自前の自動化プログラムを持ち込むことになる。
よくある質問
macOS の仕事を必要なときだけ動かすためのものだ。Apple のビルド、テスト、シミュレータ、デスクトップが要るエージェントのループに使う。Mac を借りたり机に置いたりせず、API でコマンドを送る。
関連コンテンツ
offstageに関連するツール、スキル、記事を探す。
offstageの代替ツール
Base Code
Base44 (Wix) · コーディング · 生産性向上Base CodeはBase44の共有クラウド開発環境だ。既存のGitHubリポジトリに対する変更をチャットで伝え、プレビューで確認し、プルリクエストとして返せる。
Google EmbeddingGemma 2
Google DeepMind · ライティング · 画像 · コーディングGoogle EmbeddingGemma 2 は 7 億 4000 万パラメータのオープンなモデルで、テキスト、コード、画像、音声、動画フレームを同じ 768 次元空間のベクトルに変え、スマートフォンやノート PC 上で動く。
GitGlow
GitGlow · コーディング · 生産性向上GitGlow は自分のコードと AI エージェントの変更を一つのレビューにまとめるデスクトップ Git クライアントだ。出荷前に、マシンから何が出ていくのかを確かめられる。
