Guardrails para Devin Desktop, hechos con tus propias reglas.

Las reglas de tu empresa llegan a Devin Desktop, el antiguo Windsurf, antes de que escriba en un archivo. Una escritura que las incumple no llega a producirse.

npx -y @cybedefend/vibedefend@latest install

Crear una cuenta gratisCualquier versión reciente de Devin DesktopLeer la documentación

Devin Desktop está escribiendobilling/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);
}

Cada consulta se limita al tenant.

rules/data-access.md

Los reembolsos de más de 500 € necesitan un segundo aprobador.

Aprobada una vez por Sofia M.

Revisado antes del commit: limpio

Listo en cuatro pasos.

  1. Ejecuta un comandoEn cualquier terminal, en macOS, Linux o Windows. Node 18.17 o posterior.
  2. Elige la región e inicia sesiónUE o EE. UU. Tu navegador se abre para iniciar sesión, sin clave que pegar.
  3. Marca Devin DesktopEl instalador encuentra los agentes de tu equipo y los marca por ti.
  4. Programa como siempreAbre Devin Desktop: VibeDefend funciona a su lado.

Compruébalo cuando quieras: vibedefend status

Lo que VibeDefend añade a Devin Desktop.

Reglas servidas

Solo escrituras

Solo escrituras de archivos: pre_write_code es el momento que exponen los hooks de Windsurf.

Devin Desktop está escribiendosrc/billing/cart-checkout.ts

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

Los importes usan Decimal128, nunca Number.

Extraída de src/billing.ts:14

Toda consulta que mezcla datos del usuario va parametrizada.

OWASP Top 10

Servidas antes de la edición

Protección de secretos

Las lecturas directas de secretos se rechazan; Devin Desktop recibe la referencia gestionada.

Devin Desktopwebhooks.ts

  1. cat .env | grep STRIPE

    Bloqueado: lectura directa de un secreto

  2. En su lugarprocess.env.STRIPE_WEBHOOK_SECRET

  3. npm test -- webhooks

    Los tests pasan

Registrado para el equipo

Control de acciones

Comandos destructivos, borrados de esquema y rutas protegidas se detienen antes de ejecutarse.

Devin Desktop

  1. rm -rf dist/

    Permitido: salida del build

  2. rm -rf .cache/

    Permitido: caché

  3. rm -rf ./storage/uploads

    Bloqueado: ruta protegida, archivos de los usuarios

Registrado para el equipo

Hallazgos en vivo

Los hallazgos de SAST, SCA, secretos, IaC y CI/CD, en vivo en la sesión.

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

En el contexto del agente, en vivo

Límites en Devin Desktop

  • Herramientas MCP y peticiones webLos hooks de Windsurf no tienen ninguno para ellas: un fragmento de .windsurfrules pide al agente que las verifique antes.Con .windsurfrules

Preguntas frecuentes.

¿VibeDefend modifica mi configuración de Devin Desktop?
Añade sus hooks y registra el servidor MCP cybedefend, en ~/.codeium/windsurf/hooks.json, ~/.codeium/windsurf/mcp_config.json, .windsurfrules. Tus propios hooks se mantienen: volver a ejecutar el instalador solo sustituye las entradas de VibeDefend.
¿Qué sale de mi máquina?
El análisis se ejecuta en la región que elegiste al instalar, UE o EE. UU. La decisión de bloquear una acción se toma en tu máquina. Antes de una edición, el hook envía la parte del archivo que se está escribiendo, para encontrar las reglas que se aplican. La revisión de fin de sesión envía los archivos que se modificaron durante la sesión. Ambos se analizan al vuelo: no guardamos nada de tu código, solo el registro de las reglas aplicadas y las acciones bloqueadas. Tu token de inicio de sesión se queda en el llavero de tu sistema operativo.
¿Qué versión de Devin Desktop necesito?
Una versión reciente de Devin Desktop, y Node 18.17 o posterior. El instalador funciona en macOS, Linux y Windows.
¿Tengo que vincular cada repositorio?
No en los proyectos importados desde GitHub o GitLab: VibeDefend lee el origin del repositorio y encuentra el proyecto. Para cualquier otro repositorio, ejecuta vibedefend link una vez. El comando escribe .cybedefend/config.json con el ID del proyecto.
¿Cómo lo desinstalo?
Ejecuta vibedefend uninstall: elimina todos los archivos que instaló VibeDefend. Si instalaste el paquete de forma global, ejecuta después npm uninstall -g @cybedefend/vibedefend.
¿Hasta dónde llegan los Action Guards en Devin Desktop?
Los hooks de Windsurf pre_write_code, pre_read_code y pre_run_command permiten a VibeDefend bloquear en firme escrituras y lecturas de archivos y comandos de shell. Estos hooks no tienen evento para las peticiones web y no filtran las llamadas a herramientas MCP: para esas, VibeDefend añade a .windsurfrules un fragmento que pide al agente que llame antes a cybe_guards_check por MCP. Se cumple siempre que el modelo siga su archivo de reglas.
Detalles técnicos para Devin Desktop
Servidor MCP
Disponible~/.codeium/windsurf/mcp_config.json
Reglas antes de cada edición
Solo escrituraspre_write_codeSolo escrituras de archivos: pre_write_code es el momento que exponen los hooks de Windsurf.
Acciones peligrosas bloqueadas
Escrituras, lecturas, shellpre_write_codepre_read_codepre_run_commandLas escrituras y lecturas de archivos y los comandos de shell se bloquean en firme. Para herramientas MCP y peticiones web, un fragmento de .windsurfrules pide al agente que llame antes a cybe_guards_check: se cumple siempre que el modelo siga su archivo de reglas.
Reglas cargadas al inicio
En cada promptpre_user_promptLos hooks de Windsurf no tienen evento de arranque de sesión. VibeDefend usa pre_user_prompt, que se dispara en cada turno; la comprobación es ligera y responde al instante cuando no hay nada pendiente.
Revisión al final de la sesión
Disponiblepost_cascade_responseSe ejecuta al final de cada respuesta, una vez superado el umbral de ediciones.
Revisión de las sesiones largas
No disponibleSin equivalenteLos hooks de Windsurf no tienen ningún evento previo a la compactación.
Recordatorio en cada prompt
No disponibleSin equivalenteNo disponible en Devin Desktop.

Lo que escribe para Devin Desktop

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

Además, el runner de los hooks en ~/.cybedefend/. Tus propios hooks se mantienen: volver a ejecutar el instalador solo sustituye las entradas de VibeDefend.

Ejecuta el instalador desde la raíz de tu repositorio: el fragmento de .windsurfrules se escribe en la carpeta desde la que lo ejecutas.

Los hooks de Windsurf exponen menos momentos que los demás agentes. Las escrituras y lecturas de archivos y los comandos de shell se bloquean en firme; las herramientas MCP y las peticiones web dependen de que el agente siga .windsurfrules.

¿Algo no va bien? vibedefend status da un informe de solo lectura, y vibedefend doctor repara lo que puede.