Devin はブラウザだけでなく、完全な Linux デスクトップ環境にアクセスすることができます。マウスを動かしたり、UI 要素をクリックしたり、キーボードから文字を入力したり、スクリーンショットを撮ったり、Linux デスクトップ上で動作するあらゆるアプリケーションを操作したりできます。この機能は Computer Use と呼ばれ、人間と同じように Devin があなたのソフトウェアをテストし、操作できるようにします。
Computer Use を使うと、Devin にマウスとキーボード付きのグラフィカルなデスクトップ環境へ直接アクセスさせることができます。これは単なるブラウザ自動化を超えており、画面に表示される あらゆるアプリケーション を操作できます。具体的には次のようなものが含まれます:
- Chrome 上の Web アプリケーション (ボタンをクリックする、フォームに入力する、ページを遷移する)
- Linux 上で動作する デスクトップアプリケーション (Electron アプリ、ネイティブ GUI、IDE など)
- ターミナルベースの UI (TUI プログラム、対話型 CLI)
- デスクトップ上に表示できる あらゆるビジュアルインターフェース
Devin は画面を 1024×768 ピクセルのディスプレイとして認識し、人間がコンピュータの前に座っているのと同じように、クリック、入力、スクロール、ドラッグ、スクリーンショットの撮影といった操作を行えます。
Computer Use は、組織のカスタマイズ設定にある Enable desktop mode トグルで制御されます。
- Settings > Customization に移動します
- Browser interaction セクションで、Enable desktop mode トグルをオンにします
- Devin はセッション中にデスクトップ環境を使用するようになります
Desktop モードはすべてのプランで利用できます。この設定を変更できるのは組織の管理者のみです。
Desktop モードを有効にすると、すべてのセッションでコンピュータ操作が利用可能になります。コンピュータ操作が実行されるケースは次の 3 つです。
Devin が PR を作成すると、Test the app ボタンが表示されます。これをクリックすると、テストワークフロー 全体がトリガーされます。Devin がアプリを起動し、Computer Use 機能を使ってデスクトップを操作し、変更をテストして、その録画を送信します。
セッションの任意のタイミングで Devin にテストを依頼できます。特別な構文は不要で、自然な言葉で指示してください。例えば次のように言えます:
- 「今行った変更をテストして、録画を送って」
- 「ブラウザでアプリを開いて、ログインページが動作するか確認して」
- 「デスクトップアプリを起動して、新しいメニュー項目が表示されるかチェックして」
Devin は、デスクトップでの操作がそのタスクに最適な手段かどうかを自律的に判断します。タスクに UI 要素のクリック、アプリの操作、フォーム入力、あるいは画面上での目視確認が含まれる場合、Devin は明示的に指示しなくても Computer Use を使用します。Devin に画面上で「どう」操作するかを教える必要はなく、「何を」達成したいのかだけを伝えてください。
Webアプリケーションをエンドツーエンドでテストする
Devinはローカル環境でアプリを起動し、Chromeで開いたうえで、ログイン、ナビゲーション、フォーム送信、チェックアウトといったユーザーフロー全体を順に操作し、すべてが期待どおりに動作しているかを検証できます。
Linux 上で動作するあらゆるアプリケーションをテストできます。Devin はアプリを起動し、GUI を操作して、動作を検証できます。これには Electron アプリケーション、Java Swing/AWT アプリケーション、GTK/Qt アプリケーションなどが含まれます。
Devin はテスト中の特定のタイミングでスクリーンショットをキャプチャし、レイアウト、スタイル、UI 要素が正しく表示されているかを検証できます。画面上の状態を期待される挙動と照合し、外観上の問題を検出してフラグ付けできます。
一部のテストシナリオでは、単純な API 呼び出しやブラウザ自動化だけでは対応できない、複数ステップの GUI 操作が必要になります。たとえばドラッグ&ドロップ、コンテキストメニュー、キーボードショートカット、複数ウィンドウ間の移動などです。Computer Use はこれらすべてに対応します。
Devin はテスト中に画面を録画し、動画内の重要なタイミングに注釈を付けることができます。録画は処理された後に送信されるため、Devin がアプリとどのようにやり取りしているかを確認し、変更が正しく動作しているかを検証できます。録画ワークフローの詳細については、Testing & Video Recordings を参照してください。
Devin がセッション中に Computer Use を使用する際は、次のプロセスに従います。
- 現在の画面に何が表示されているかを把握するために、スクリーンショットを撮る
- ボタン、テキストフィールド、メニュー、リンクなどの操作可能な要素を特定し、どれを操作するかを決める
- アクションを実行する — クリック、入力、スクロール、またはキーボードショートカットの実行
- 待機して観察する — アクションの結果を確認するために、もう一度スクリーンショットを撮る
- タスクが完了するまで繰り返す
この「スクリーンショットとアクション」のループにより、Devin は画面上のあらゆる状態に適応し、動的コンテンツ、読み込み中の状態、ポップアップ、予期しないダイアログなどを人間と同じように扱うことができます。
Computer Use は、Devin のテストと記録ワークフローの基盤となる機能です。Devin が PR を作成した後にあなたのアプリケーションをテストする際は、次のように進行します。
- セットアップ — Devin が依存関係をインストールし、アプリを起動し、環境を準備する
- テスト計画 — Devin が差分を読み、要点を絞ったテスト計画を作成する
- Computer Use による実行 — Devin がデスクトップを使ってアプリと対話し、テスト計画に沿ってステップごとに実行する
- 記録 — プロセス全体が注釈付きの動画として記録され、その後あなたにレビュー用として送信される
Computer Use と Testing & Recordings ワークフローの主な違いはスコープです。Computer Use は基盤となる機能 (デスクトップ操作) であり、Testing & Recordings は Computer Use を利用してあなたの PR をテストし、動画によるエビデンスを提供するための構造化されたワークフローです。
テスト内容を具体的に伝える
- 「アプリを開き、右上のSettingsボタンをクリックし、ダークモードを切り替えても、すべてのテキストが引き続き読みやすいことを確認する」
- 「Electronアプリを起動し、新しいドキュメントを作成してテキストを入力し、ウィンドウを閉じたときに保存されることを確認する」
成功のイメージをDevinに伝える
- 「ダッシュボードには、エラーメッセージなしで3つのチャートが表示されていること」
- 「フォーム送信後、ページ上部に緑色の成功バナーが表示されること」
アプリが認証を必要とする場合は、セッション中にあなたへ確認しなくても Devin がログインできるよう、事前にSecretsを設定してください。また、Repo Setupを完了し、Devin が依存関係をインストールして問題なくアプリを起動できるようにしておきましょう。
頻繁にテストを行うアプリ向けに、アプリケーションのセットアップ方法とテスト方法を Devin に正確に指示する Skill を作成します。これにより、繰り返しのセッションにかかる時間を短縮し、一貫したテストを実現できます。具体例については、Testing & Video Recordings — Skill 提案 を参照してください。
Playwright を使ったスクリプトによるブラウザ操作
Devin の Chrome ブラウザは、Playwright が接続できる Chrome DevTools Protocol (CDP) エンドポイントを公開しています。Devin は Playwright スクリプトを作成して実行し、ログインフローや定型的なデータ入力など、自身の実行中のブラウザに対する操作を自動化できます。これらのスクリプトは、ユーザー自身で作成してリポジトリにチェックインすることもできます。その他のほとんどのブラウザ操作では、Devin のネイティブな Computer Use またはブラウザツールの利用を推奨します。
Devin の Chrome インスタンスは、ポート 29229 で CDP 接続を待ち受けています。Playwright スクリプトはこのブラウザにアタッチし、操作を実行し (フォームへの入力、ボタンのクリック、リダイレクトの処理など) 、その後切断できます。スクリプトは新しいブラウザを起動するのではなく、既存の ブラウザに接続するため、Cookie、localStorage、auth token などの状態変更は、スクリプト終了後も保持されます。
つまり、Devin は認証済みのセッションをすぐに利用できます。ページを更新したり、ページ間を移動したり、通常どおりアプリを操作したりできます。
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp("http://localhost:29229")
context = browser.contexts[0]
page = context.pages[0] if context.pages else context.new_page()
# 例: ページに移動してログインする
page.goto("https://example.com/login")
page.fill('input[name="email"]', "user@example.com")
page.fill('input[name="password"]', "password")
page.click('button[type="submit"]')
page.wait_for_url("**/dashboard")
print("ログイン成功!")
このスクリプトを実行すると、Devin のブラウザはログイン済みになり、すぐに利用できます — 手動で操作する必要はありません。
SSO / OAuth フロー
毎セッション手動で一つひとつクリックして進めるのが煩雑な、複数ステップのログインフロー (例: Okta、Auth0、Google SSO) を自動化します。
リポジトリ設定時の認証
環境設定にログインスクリプトを含めることで、Devin が各セッションを認証済みの状態で開始できるようになります。 Skill ベースの自動化
ログインスクリプトやデータ入力スクリプトをSkillに保存しておくと、必要なときに Devin が自動的に実行できます。 定型的なデータ入力
ポイントアンドクリックでは時間がかかり、ミスも起きやすい反復的なフォーム送信や一括データ入力をスクリプト化します。
- ログインスクリプトは repo の
.agents/skills/ ディレクトリに保存し、セッションをまたいでも保持されるようにします
- 認証情報の保存には Secrets を利用し、スクリプト内では環境変数経由で参照します
- CDP エンドポイントは常に
http://localhost:29229 です — Desktop モードの有効・無効にかかわらず、ポートは同じです
- スクリプトの実行後、Devin は Computer Use またはブラウザツールのいずれかを利用して、認証済みのセッションを操作できます
Devin が画面上のボタンや要素を見つけられない場合は、指示をより具体的にしてください。要素の位置やラベル、周囲のコンテキストなどを説明してください。たとえば、「モーダルの右下にある青い Save ボタンをクリックして」と指示する方が、「Save をクリックして」と指示するよりも明確です。
DevinはLinux環境で動作します。アプリケーションがmacOSまたはWindowsでしか動作しない場合、デスクトップでテストすることはできません。WebアプリケーションはChrome上で動作するため、プラットフォームに関係なく動作します。デスクトップアプリの場合は、Linux向けビルドが用意されていることを確認してください。
Devin が UI 上で意図しない操作をしてしまう場合は、アプリ向けの具体的なナビゲーション手順を記載した Skill または Knowledge エントリを用意してください。あいまいさを減らすために、「画面左上のハンバーガーメニューをクリックし、表示されるドロップダウンから Settings をクリックする」のように、手順を正確に記述してください。