メインコンテンツへスキップ
すべての高度な設定は Devin Settings にあります。右上のドロップダウン → Devin Settings、または Command Palette (Ctrl/⌘+Shift+P) → Open Devin User Settings からアクセスできます。

.gitignore ファイルへの Cascade アクセスを有効にする

プロジェクトの .gitignore 内のパターンに一致するファイルへのアクセスを Cascade に与えるには、Devin Settings に移動し、“Cascade Gitignore Access” を開きます。デフォルトではオフになっています。アクセスを与えるには、トグルをクリックしてオンにします。

エージェントの diff ゾーン

エージェントがファイルを編集すると、Devin Desktop に diff ゾーン が表示されます。これは、変更箇所をエディタ内でインラインのハイライト領域として正確に示し、各ハンクごとに承認または却下の操作を行える機能です。すべてのエージェントで、diff ゾーンはデフォルトで利用されます。 Devin Settings → User Interface → Agent Diff Zones で、Cascade 以外のエージェントの diff ゾーンをオフにできます。無効にすると、Cascade 以外のエージェントによる編集はファイルに直接適用され、ツールバーには承認/却下の操作の代わりに、シンプルな閉じるボタンが表示されます。

SSH サポート

VSCode で一般的に使われている SSH サポートは Microsoft にライセンスされているため、Devin Desktop 向けに独自実装しました。OpenSSH がインストールされている必要はありますが、それ以外の依存関係は最小限で、普段どおりほぼそのまま使えます。SSH には Command Palette の Remote-SSH から、または左下の Open a Remote Window ボタンからアクセスできます。 この拡張機能は社内開発では非常にうまく動作していますが、既知の注意点やバグがいくつかあります。
  • 現在サポートしているのは、Linux ベースのリモートホストへの SSH 接続のみです。
  • 通常の Microsoft の Remote - SSH 拡張機能 (および open-remote-ssh 拡張機能) は動作しません。こちらのサポートと競合するため、インストールしないでください。
  • 現時点では、Microsoft の SSH 拡張機能の全機能には対応していません。主にサポートしているのは、最も重要なホストへの接続です。機能要望があればぜひお知らせください。
  • SSH で接続したあとにリモートホスト上の devcontainer にアクセスするには、Command Palette (Ctrl/Cmd+Shift+P) を開き、次のいずれかのオプションを選択してください。
  • SSH の agent-forwarding はデフォルトで有効になっており、そのホストに対する Devin Desktop の最新の接続を利用します。うまく動作しない場合は、ウィンドウを再読み込みして接続を更新してみてください。
  • Windows では、パスワードを求められた際に cmd.exe のウィンドウがいくつか表示されます。これは想定どおりの動作です。近日中に表示されないようにする予定です。
  • 問題がある場合は、まずターミナルで通常の ssh を使ってリモートホストに SSH 接続できることを確認してください。それでも問題が解消しない場合は、バグ報告に Output > Remote SSH (Devin) タブの出力を含めてください。

Dev Containers

Devin Desktop は、Mac、Windows、Linux で、ローカルおよびリモート (SSH 経由) 両方のワークフローで Development Containers をサポートしています。 前提条件:
  • ローカル: お使いのマシンに Docker がインストールされており、Devin Desktop のターミナルから利用できる必要があります。
  • SSH 経由のリモート: Devin Desktop Remote-SSH を利用してリモートホストに接続します。Docker がリモートホストにインストールされており、リモートシェルから利用できる必要があります。プロジェクトには devcontainer.json または同等の設定が含まれている必要があります。
利用可能なコマンド (ローカルウィンドウとリモートウィンドウの両方) :
  1. Dev Containers: Open Folder in Container
    • 指定した devcontainer.json を使用して、新しいワークスペースを開きます。
  2. Dev Containers: Reopen in Container
    • devcontainer.json で定義された新しいコンテナーで、現在のワークスペースを開き直します。
  3. Dev Containers: Attach to Running Container
    • 実行中の既存の Docker コンテナーにアタッチし、現在のワークスペースをそのコンテナーに接続します。コンテナーが Development Container Specification に準拠していない場合、Devin Desktop はリモートユーザーと環境の検出を可能な限り試みます。
  4. Dev Containers: Reopen Folder Locally
    • 開発コンテナーに接続中の場合は、切断してローカルファイルシステム上でワークスペースを開き直します。
  5. Dev Containers: Show Devin Desktop Dev Containers Log
    • トラブルシューティングのために、Dev Containers のログ出力を開きます。
これらのコマンドは Command Palette から利用でき、左下の Open a Remote Window ボタンをクリックしたときにも表示されます (SSH 経由でリモートホストに接続している場合も含みます) 。 関連:
  • Remote Explorer: Focus on Dev Containers (Devin Desktop) View — Dev Containers ビューをすばやく開きます。

既知の制限事項

Devin Desktop は現在、Dev Container Specification のライフサイクルコマンドを実行しません。
  • onCreateCommand
  • updateContentCommand
  • postCreateCommand
  • postStartCommand
  • postAttachCommand
これは、コンテナー レベルのライフサイクルコマンド (devcontainer.json で定義) と、Feature レベルのライフサイクルコマンド (devcontainer-feature.json で定義) の両方に当てはまります。dotfiles のインストールも行われません。 動作するもの:
  • Feature の install.sh スクリプト (イメージのビルド時に実行されます)
  • Feature の mounts (ボリュームはコンテナーのランタイム時にアタッチされます)
  • Feature の entrypoint フィールド (コンテナーの起動時に毎回実行されます)
  • その他すべてのイメージ ビルド時の操作 (Dockerfile、docker-compose、features)

回避策: ランタイムセットアップに Feature entrypoint を利用する

コンテナー起動時にセットアップを実行する必要がある Dev Container feature を作成している場合は (たとえば、マウントされたボリューム内のファイルを設定する場合) 、ライフサイクルコマンドではなく、その feature の entrypoint フィールドを利用してください。entrypoint は、マウントがアタッチされた後、コンテナーの起動のたびに実行され、完全に自己完結しています。つまり、この feature を利用する側は devcontainer.json を変更する必要がありません。 devcontainer-feature.json で、entrypoint を宣言します:
{
    "name": "my-feature",
    "id": "my-feature",
    "version": "1.0.0",
    "mounts": [
        { "type": "volume", "source": "my-volume", "target": "/data/my-dir" }
    ],
    "entrypoint": "/usr/local/share/my-feature/entrypoint.sh"
}
install.sh (イメージのビルド時に実行されます) に、entrypointスクリプトを記述します:
#!/usr/bin/env bash
set -e
mkdir -p /usr/local/share/my-feature
cat > /usr/local/share/my-feature/entrypoint.sh << 'EOF'
#!/bin/sh
# マウント依存のセットアップ(コンテナー起動のたびに実行、ボリュームはマウント済み)
if [ -d /data/my-dir ]; then
    mkdir -p /etc/myapp
    cp /data/my-dir/config /etc/myapp/config
fi
exit 0
EOF
chmod +x /usr/local/share/my-feature/entrypoint.sh
entrypointスクリプトは必要なセットアップを実行したら、そのまま正常に終了するようにしてください。末尾を exec "$@" にしないでください。コンテナーコマンドへの制御の受け渡しは、CLI 側のentrypointラッパーが処理します。IDE が接続する前に同期的に実行されるため、スクリプトはできるだけ軽量に保ってください。

WSL (ベータ)

バージョン 1.1.0 以降、Devin Desktop は Windows Subsystem for Linux をベータ版としてサポートしています。あらかじめ、Windows マシンで WSL のセットアップと設定を完了しておく必要があります。 左下の Open a Remote Window ボタンをクリックするか、Command Palette の Remote-WSL から WSL にアクセスできます。

拡張機能 marketplace

拡張機能のダウンロード元の marketplace を変更できます。変更するには、Devin Settings に移動し、General セクションで Marketplace URL の設定を変更します。

Devin Desktop プラグイン

拡張機能の検索バーで「Devin Pyright」を検索するか、@id:codeium.windsurfPyright を貼り付けます。