> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration avancée

> Configurations avancées de Devin Desktop, notamment la prise en charge de SSH, des Dev Containers, de WSL, les paramètres de la marketplace des extensions, les zones de diff et l'accès aux fichiers .gitignore pour Cascade.

Toutes les configurations avancées se trouvent dans Devin Settings, accessible depuis le menu déroulant en haut à droite → Devin Settings ou via la palette de commandes (Ctrl/⌘+Shift+P) → Open Devin User Settings.

<div id="enabling-cascade-access-to-gitignore-files">
  # Activer l'accès de Cascade aux fichiers .gitignore
</div>

Pour permettre à Cascade d'accéder aux fichiers correspondant aux motifs du .gitignore de votre projet, accédez à vos Devin Settings, puis à « Cascade Gitignore Access ». Cette option est désactivée par défaut. Pour autoriser l'accès, activez-la en cliquant sur le bouton bascule.

<div id="agent-diff-zones">
  # Zones de diff des agents
</div>

Lorsqu’un agent modifie des fichiers, Devin Desktop affiche des **zones de diff** — des zones surlignées directement dans l’éditeur qui montrent exactement ce qui a changé, avec des commandes pour accepter ou rejeter chaque bloc. Tous les agents utilisent les zones de diff par défaut.

Vous pouvez désactiver les zones de diff pour les agents autres que Cascade dans Devin Settings → User Interface → **Agent Diff Zones**. Lorsqu’elles sont désactivées, les modifications des agents autres que Cascade sont appliquées directement au fichier, et la barre d’outils affiche un simple bouton de fermeture au lieu des commandes d’acceptation/rejet.

<div id="ssh-support">
  # Prise en charge SSH
</div>

La prise en charge SSH habituelle dans VSCode est sous licence Microsoft. Nous avons donc implémenté la nôtre spécialement pour Devin Desktop. Elle nécessite qu’[OpenSSH](https://www.openssh.com/) soit installé, mais a par ailleurs très peu de dépendances et devrait « simplement fonctionner », comme d’habitude. Vous pouvez accéder à SSH via `Remote-SSH` dans la palette de commandes, ou à l’aide du bouton `Open a Remote Window` en bas à gauche.
Cette extension a très bien fonctionné pour notre développement interne, mais il existe quelques limites et bugs connus :

* Nous ne prenons actuellement en charge que les connexions SSH vers des hôtes distants basés sur Linux.

* L’extension Microsoft habituelle « Remote - SSH » (ainsi que l’extension [open-remote-ssh](https://github.com/jeanp413/open-remote-ssh)) ne fonctionnera pas. Veuillez ne pas les installer, car elles entrent en conflit avec notre prise en charge.

* Nous n’avons pas encore toutes les fonctionnalités de l’extension SSH de Microsoft. Pour l’instant, nous prenons surtout en charge l’essentiel : se connecter à un hôte. Si vous avez des demandes de fonctionnalités, faites-le-nous savoir !

* Pour accéder à un devcontainer sur un hôte distant après vous être connecté via SSH, utilisez la palette de commandes (Ctrl/Cmd+Shift+P) et choisissez l’une des options suivantes :

<Frame>
  <img src="https://mintcdn.com/cognitionai/WE51TvKjsiyk1ZHl/desktop/assets/windsurf/ssh-devcontainer-options.png?fit=max&auto=format&n=WE51TvKjsiyk1ZHl&q=85&s=4a7de13e7604b6569cec985d92bfa75d" width="394" height="65" data-path="desktop/assets/windsurf/ssh-devcontainer-options.png" />
</Frame>

* Le transfert d’agent SSH est activé par défaut et utilisera la connexion la plus récente de Devin Desktop à cet hôte. Si vous rencontrez des difficultés, essayez de recharger la fenêtre pour actualiser la connexion.

* Sous Windows, vous verrez des fenêtres `cmd.exe` lorsqu’on vous demandera votre mot de passe. C’est normal : nous les supprimerons bientôt.

* Si vous rencontrez des problèmes, assurez-vous d’abord que vous pouvez vous connecter à votre hôte distant avec la commande `ssh` dans un terminal. Si le problème persiste, incluez la sortie de l’onglet `Output > Remote SSH (Devin)` dans tout rapport de bug !

<div id="dev-containers">
  # Dev Containers
</div>

Devin Desktop prend en charge les Dev Containers sur Mac, Windows et Linux, pour les workflows locaux comme distants (via SSH).

Prérequis :

* En local : Docker doit être installé sur votre machine et accessible depuis le terminal de Devin Desktop.
* À distance via SSH : connectez-vous à un hôte distant à l’aide de Devin Desktop Remote-SSH. Docker doit être installé et accessible sur l’hôte distant (depuis le shell distant). Votre projet doit inclure un `devcontainer.json` ou une configuration équivalente.

Commandes disponibles (dans les fenêtres locales et distantes) :

1. `Dev Containers: Open Folder in Container`
   * Ouvrir un nouvel espace de travail à l’aide d’un `devcontainer.json` spécifié.
2. `Dev Containers: Reopen in Container`
   * Rouvrir l’espace de travail actuel dans un nouveau conteneur défini par votre `devcontainer.json`.
3. `Dev Containers: Attach to Running Container`
   * Attacher un conteneur Docker existant et y connecter votre espace de travail actuel. Si le conteneur n’est pas conforme à la [spécification Development Container Specification](https://containers.dev/implementors/spec/), Devin Desktop tentera de détecter au mieux l’utilisateur distant et l’environnement.
4. `Dev Containers: Reopen Folder Locally`
   * Lorsque vous êtes connecté à un conteneur de développement, vous en déconnecter et rouvrir l’espace de travail sur le système de fichiers local.
5. `Dev Containers: Show Devin Desktop Dev Containers Log`
   * Ouvrir la sortie du journal Dev Containers pour faciliter le dépannage.

Ces commandes sont disponibles depuis la Palette de commandes et apparaissent également lorsque vous cliquez sur le bouton `Open a Remote Window` en bas à gauche (y compris lorsque vous êtes connecté à un hôte distant via SSH).

Articles connexes :

* `Remote Explorer: Focus on Dev Containers (Devin Desktop) View` — ouvrir rapidement la vue Dev Containers.

<div id="known-limitations">
  ### Limites connues
</div>

Devin Desktop n’exécute actuellement pas les [commandes de cycle de vie de la Dev Container Specification](https://containers.dev/implementors/json_reference/#lifecycle-scripts) :

* `onCreateCommand`
* `updateContentCommand`
* `postCreateCommand`
* `postStartCommand`
* `postAttachCommand`

Cela s’applique à la fois aux commandes de cycle de vie au niveau du conteneur (définies dans `devcontainer.json`) et à celles au niveau des features (définies dans `devcontainer-feature.json`). L’installation des dotfiles n’est pas non plus prise en charge.

**Ce qui fonctionne :**

* Les scripts `install.sh` des features (ils s’exécutent au moment du build de l’image)
* Les `mounts` des features (les volumes sont montés au lancement du conteneur)
* Le champ `entrypoint` des features (il s’exécute à chaque démarrage du conteneur)
* Toutes les autres opérations effectuées au moment du build de l’image (Dockerfile, docker-compose, features)

<div id="workaround-using-a-feature-entrypoint-for-runtime-setup">
  ### Contournement : utiliser le point d’entrée d’une feature pour la configuration au démarrage
</div>

Si vous créez une feature Dev Container qui doit exécuter une configuration au démarrage du conteneur (par exemple, pour configurer des fichiers à partir d’un volume monté), utilisez le champ `entrypoint` de la feature plutôt qu’une commande du cycle de vie. Le point d’entrée s’exécute à chaque démarrage du conteneur, une fois les volumes montés, et il est entièrement autonome — les utilisateurs de votre feature n’ont pas besoin de modifier leur `devcontainer.json`.

Dans votre `devcontainer-feature.json`, déclarez le point d’entrée :

```json theme={null}
{
    "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"
}
```

Dans votre `install.sh` (exécuté lors du build de l’image), écrivez le script de point d’entrée :

```bash theme={null}
#!/usr/bin/env bash
set -e
mkdir -p /usr/local/share/my-feature
cat > /usr/local/share/my-feature/entrypoint.sh << 'EOF'
#!/bin/sh
# Configuration dépendante du montage (s'exécute à chaque démarrage du conteneur, le volume est monté)
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
```

<Note>
  Le script de point d’entrée doit effectuer son initialisation, puis se terminer normalement. Ne le terminez pas par `exec "$@"` — le wrapper de point d’entrée de la CLI se charge lui-même de passer le contrôle à la commande du conteneur. Gardez ce script léger, car il s’exécute de façon synchrone avant la connexion de l’IDE.
</Note>

<div id="wsl-beta">
  # WSL (Bêta)
</div>

À partir de la version 1.1.0, Devin Desktop propose une prise en charge bêta de Windows Subsystem for Linux. WSL doit déjà être installé et configuré sur votre machine Windows.

Vous pouvez accéder à WSL en cliquant sur le bouton `Open a Remote Window` en bas à gauche, ou via `Remote-WSL` dans la palette de commandes.

<div id="extension-marketplace">
  # Marketplace des extensions
</div>

Vous pouvez changer de marketplace pour télécharger des extensions. Pour cela, accédez à `Devin Settings`, puis modifiez l’URL du marketplace dans la section `General`.

<Frame>
  <img src="https://mintcdn.com/cognitionai/WE51TvKjsiyk1ZHl/desktop/assets/windsurf/marketplace.png?fit=max&auto=format&n=WE51TvKjsiyk1ZHl&q=85&s=9815a3e8bfc880187c2fc01126c8264b" width="3420" height="2130" data-path="desktop/assets/windsurf/marketplace.png" />
</Frame>

<div id="devin-desktop-plugins">
  ## Plugins Devin Desktop
</div>

<AccordionGroup>
  <Accordion title="Devin Pyright">
    Recherchez « Devin Pyright » ou collez `@id:codeium.windsurfPyright` dans la barre de recherche des extensions.
  </Accordion>
</AccordionGroup>
