Des garde-fous pour Devin Desktop, tirés de vos propres règles.

Vos règles d'entreprise arrivent dans Devin Desktop, l'ancien Windsurf, avant chaque écriture de fichier. Une écriture qui les enfreint n'aboutit jamais.

npx -y @cybedefend/vibedefend@latest install

Créer un compte gratuitToute version récente de Devin DesktopLire la documentation

Devin Desktop écritbilling/refund.ts

export async function refund(req: Request) {
  const { id, amount } = await req.json();
  const invoice = await db.invoices.find({
    id, tenant: req.tenant,
  });
  if (amount > 500)
    await approvals.second(invoice);
  return payments.refund(invoice, amount);
}

Chaque requête est cloisonnée par tenant.

rules/data-access.md

Un remboursement de plus de 500 € demande un second validateur.

Approuvée une fois par Sofia M.

Vérifié avant le commit : rien à corriger

Prêt en quatre étapes.

  1. Lancez une commandeDans n'importe quel terminal, sur macOS, Linux ou Windows. Node 18.17 ou plus récent.
  2. Choisissez la région, connectez-vousUE ou US. Votre navigateur s'ouvre pour la connexion, aucune clé à coller.
  3. Cochez Devin DesktopL'installeur trouve les agents présents sur votre machine et les coche pour vous.
  4. Codez comme d'habitudeOuvrez Devin Desktop : VibeDefend tourne à ses côtés.

Vérifiez à tout moment : vibedefend status

Ce que VibeDefend ajoute à Devin Desktop.

Règles servies

Écritures seulement

Écritures de fichiers seulement : pre_write_code est le moment qu'exposent les hooks Windsurf.

Devin Desktop écritsrc/billing/cart-checkout.ts

const total = new Decimal128(cart.sum);
const rows = await db.query(
  "SELECT * FROM carts WHERE id = $1", [id]
);

Les montants utilisent Decimal128, jamais Number.

Tirée de src/billing.ts:14

Toute requête qui mêle une saisie utilisateur est paramétrée.

OWASP Top 10

Servies avant la modification

Garde-fou des secrets

Les lectures brutes de secrets sont refusées ; Devin Desktop reçoit la référence gérée à la place.

Devin Desktopwebhooks.ts

  1. cat .env | grep STRIPE

    Bloqué : lecture brute d'un secret

  2. À la placeprocess.env.STRIPE_WEBHOOK_SECRET

  3. npm test -- webhooks

    Les tests passent

Consigné pour l'équipe

Garde-fou des actions

Commandes destructrices, suppressions de schéma, chemins protégés : arrêtés avant de s'exécuter.

Devin Desktop

  1. rm -rf dist/

    Autorisé : sortie de build

  2. rm -rf .cache/

    Autorisé : cache

  3. rm -rf ./storage/uploads

    Bloqué : chemin protégé, fichiers des utilisateurs

Consigné pour l'équipe

Alertes en direct

Les alertes SAST, SCA, secrets, IaC et CI/CD, en direct dans la session.

Devin Desktop

  1. SASTsrc/db/users.repo.ts:42

    SQL injection

  2. SCApackage.json

    lodash 4.17.20, CVE-2021-23337

  3. Secretsconfig/prod.yml

    AWS access key

  4. IaCinfra/main.tf

    S3 bucket public-read

  5. CI/CD.github/workflows/deploy.yml

    pull_request_target

Dans le contexte de l'agent, en direct

Limites dans Devin Desktop

  • Outils MCP et requêtes webLes hooks Windsurf n'en ont pas pour eux : un extrait de .windsurfrules demande à l'agent de les vérifier d'abord.Par .windsurfrules

Vos questions.

VibeDefend modifie-t-il ma configuration Devin Desktop ?
Il ajoute ses hooks et enregistre le serveur MCP cybedefend, dans ~/.codeium/windsurf/hooks.json, ~/.codeium/windsurf/mcp_config.json, .windsurfrules. Vos propres hooks restent : relancer l'installeur ne remplace que les entrées de VibeDefend.
Qu'est-ce qui quitte ma machine ?
L'analyse tourne dans la région choisie à l'installation, UE ou US. La décision de bloquer une action est prise sur votre machine. Avant une modification, le hook envoie la partie du fichier en cours d'écriture, pour trouver les règles qui s'appliquent. La revue de fin de session envoie les fichiers modifiés pendant la session. Les deux sont analysés au passage : nous ne gardons rien de votre code, seulement la trace des règles servies et des actions refusées. Votre jeton de connexion reste dans le trousseau de votre système.
Quelle version de Devin Desktop faut-il ?
Une version récente de Devin Desktop, et Node 18.17 ou plus récent. L'installeur tourne sous macOS, Linux et Windows.
Faut-il relier chaque dépôt ?
Pas pour les projets importés depuis GitHub ou GitLab : VibeDefend lit l'origin du dépôt et retrouve le projet. Pour tout autre dépôt, lancez vibedefend link une fois. La commande écrit .cybedefend/config.json avec l'identifiant du projet.
Comment le retirer ?
Lancez vibedefend uninstall : la commande retire chaque fichier installé par VibeDefend. Si vous avez installé le paquet globalement, lancez ensuite npm uninstall -g @cybedefend/vibedefend.
Jusqu'où vont les Action Guards dans Devin Desktop ?
Les hooks Windsurf pre_write_code, pre_read_code et pre_run_command permettent à VibeDefend de bloquer net les écritures et lectures de fichiers et les commandes shell. Ces hooks n'ont pas d'événement pour les requêtes web et ne filtrent pas les appels d'outils MCP : pour ceux-là, VibeDefend ajoute à .windsurfrules un extrait qui demande à l'agent d'appeler d'abord cybe_guards_check par MCP. Cela tient si le modèle suit son fichier de règles.
Détails techniques pour Devin Desktop
Serveur MCP
Disponible~/.codeium/windsurf/mcp_config.json
Règles avant chaque modification
Écritures seulementpre_write_codeÉcritures de fichiers seulement : pre_write_code est le moment qu'exposent les hooks Windsurf.
Actions dangereuses bloquées
Écritures, lectures, shellpre_write_codepre_read_codepre_run_commandLes écritures et lectures de fichiers et les commandes shell sont bloquées net. Pour les outils MCP et les requêtes web, un extrait de .windsurfrules demande à l'agent d'appeler d'abord cybe_guards_check : cela tient si le modèle suit son fichier de règles.
Règles chargées au démarrage
À chaque promptpre_user_promptLes hooks Windsurf n'ont pas d'événement de début de session. VibeDefend utilise pre_user_prompt, qui se déclenche à chaque tour ; la vérification est légère et répond aussitôt quand rien n'est en attente.
Revue en fin de session
Disponiblepost_cascade_responseTourne à la fin de chaque réponse, une fois le seuil de modifications franchi.
Revue des longues sessions
Non disponiblePas d'équivalentLes hooks Windsurf n'ont pas d'événement avant la compaction.
Rappel à chaque prompt
Non disponiblePas d'équivalentNon disponible dans Devin Desktop.

Ce qu'il écrit pour Devin Desktop

  • ~/.codeium/windsurf/hooks.json
  • ~/.codeium/windsurf/mcp_config.json
  • .windsurfrules

Plus le runner des hooks dans ~/.cybedefend/. Vos propres hooks restent : relancer l'installeur ne remplace que les entrées de VibeDefend.

Lancez l'installeur à la racine de votre dépôt : l'extrait .windsurfrules est écrit dans le dossier d'où vous le lancez.

Les hooks Windsurf exposent moins de moments que les autres agents. Les écritures et lectures de fichiers et les commandes shell sont bloquées net ; les outils MCP et les requêtes web reposent sur l'agent qui suit .windsurfrules.

Quelque chose cloche ? vibedefend status donne un état en lecture seule, et vibedefend doctor répare ce qu'il peut.