
Colección curada de recursos de aprendizaje en ciberseguridad, writeups de CTF, artículos de investigación y laboratorios prácticos para el desarrollo de habilidades prácticas en seguridad web, explotación, OSINT y forense digital.
El IDE de IA de código abierto que planifica antes de codificar.
Licencia MIT · Inicio rápido · Qué aporta Modo · Contribuir
Quería una pequeña función en una herramienta de codificación con IA. No encontré forma de sugerirla. Así que me pregunté: ¿qué tan difícil es construir algo como Kiro, Cursor o Windsurf?
Resulta que no es tan difícil como parece. Partiendo del editor Void (que a su vez es un fork de VS Code), llegué aproximadamente al 60-70% de lo que ofrecen esas herramientas en poco tiempo de desarrollo. Fue genuinamente divertido.
Esto es Modo. Un IDE de escritorio autónomo donde los prompts se convierten en planes estructurados antes de convertirse en código. Código abierto, licencia MIT, tuyo para modificarlo.
Todo lo siguiente se construyó sobre el chat de IA, la edición en línea (Cmd+K), el autocompletado, el soporte multi-proveedor de LLM, el uso de herramientas y la integración MCP existentes en Void. Esto es lo nuevo:
La mayoría de las herramientas de IA van de prompt a código. Modo va de prompt a requisitos, a diseño, a tareas, a código.
Una especificación vive en .modo/specs/<nombre>/ como tres archivos markdown:
.modo/specs/auth-flow/
├── requirements.md # historias de usuario, criterios de aceptación
├── design.md # arquitectura, componentes, modelos de datos
└── tasks.md # lista de verificación de pasos de implementación
Crea una con Cmd+Shift+S o seleccionando el modo Spec en el selector de sesiones. Elige feature o bugfix, y luego flujo de trabajo primero requisitos o primero diseño. El agente rellena cada documento, tú lo revisas, luego ejecuta las tareas una por una, marcándolas como completadas.
Las tareas persisten en el disco. Cierra el IDE, vuelve, retoma donde lo dejaste.
Abre cualquier tasks.md y cada tarea pendiente tiene un botón "▶ Run Task" en línea. Un botón "Run All Pending Tasks" aparece arriba. Las tareas en ejecución muestran un spinner, las completadas una marca. El agente marca - [ ] → - [~] → - [x] mientras trabaja.
Documentos Markdown en .modo/steering/ que inyectan reglas del proyecto en cada interacción de IA, sin necesidad de repetirlas.
---
inclusion: always
---
# Reglas del proyecto
- Usar TypeScript modo estricto
- Todos los endpoints necesitan validación de entrada
Tres modos de inclusión:
always: en cada interacciónfileMatch: cuando el archivo activo coincide con un patrón globmanual: referenciado mediante comandos / en el chatSoporta referencias #[[file:path]] para enlazar especificaciones OpenAPI, esquemas GraphQL o cualquier documento del proyecto.
Configuraciones JSON en .modo/hooks/ que automatizan acciones en torno al ciclo de vida del agente.
{
"name": "Lint al guardar",
"version": "1.0.0",
"when": { "type": "fileEdited", "patterns": ["**/*.ts"] },
"then": { "type": "runCommand", "command": "npx eslint --fix ${filePath}" }
}
10 tipos de evento: fileEdited, fileCreated, fileDeleted, promptSubmit, agentStop, preToolUse, postToolUse, preTaskExecution, postTaskExecution, userTriggered. Dos tipos de acción: askAgent o runCommand. Los hooks previos a herramienta pueden denegar la ejecución. Detección de dependencias circulares incorporada.
Una píldora en la barra de estado que cambia entre Autopiloto (el agente actúa autónomamente) y Supervisado (el agente pausa para aprobación). Conectada directamente a la configuración de auto-aprobación para ediciones, comandos de terminal y herramientas MCP.
Múltiples sesiones de chat como pestañas. Cada una tiene su propio hilo, contexto e historial. Abre nuevas, cierra antiguas o ejecútalas todas a la vez. Un panel de historial con búsqueda permite encontrar conversaciones pasadas.
Inicia una sesión en modo Vibe para exploración libre, o modo Spec para desarrollo estructurado. En modo Spec, tu prompt desencadena el flujo completo de requisitos → diseño → tareas. El contenido de la especificación activa se inyecta automáticamente en el prompt del sistema del LLM.
Genera agentes en paralelo para subtareas independientes. Cada uno recibe su propio hilo y acceso a herramientas. Haz seguimiento del estado, cancela tareas en ejecución o limpia las completadas.
Paquetes de conocimiento instalables que agrupan documentación, archivos de dirección y configuraciones MCP. Powers incorporados para TypeScript, React, Testing, API Design y Docker. Se activan según palabras clave en tus prompts. Instala powers personalizados desde URLs.
Una barra lateral con secciones plegables para Especificaciones (con barras de progreso y conteo de tareas), Hooks del agente (mostrando flujo evento → acción), Dirección (mostrando modo de inclusión) y Powers.
Escribe / en el chat para acceder a hooks manuales, archivos de dirección y comandos integrados: crear especificación, ejecutar tareas, exportar conversación, inicializar espacio de trabajo.
Los archivos de dirección y la especificación activa se anteponen automáticamente a cada interacción con el LLM. El agente sigue las reglas de tu proyecto y sabe lo que está construyendo sin necesidad de decírselo cada vez.
Un tema "Modo Dark" diseñado específicamente, con acentos verde azulado, resaltado de sintaxis ajustado y colores de terminal.
Un avatar de Modo aparece antes de cada respuesta con expresiones aleatorias durante la transmisión y una expresión calmada por defecto al finalizar.
Icono de aplicación personalizado, título de ventana, marca de agua, identidad del producto, protocolo URL (modo://) y directorios de datos (.modo-editor/). Todas las referencias a Void en la interfaz se reemplazaron por equivalentes de Modo.
Modo: Initialize Workspace crea la estructura completa del directorio .modo/ con archivos de dirección predeterminados y plantillas de configuración.
Exporta cualquier conversación como Markdown al portapapeles desde la paleta de comandos.
Modo no existiría sin estos proyectos:
| Proyecto | Qué proporciona | Licencia |
|---|---|---|
| Void | Chat de IA, edición en línea, autocompletado, LLM multi-proveedor, uso de herramientas, MCP, motor de aplicación | MIT |
| VS Code | Núcleo del editor, sistema de extensiones, terminal, sistema de archivos, todo lo subyacente | MIT |
| Roo Code | Algunos patrones referenciados durante el desarrollo | Apache 2.0 |
Void mismo proporciona: soporte multi-proveedor (Anthropic, OpenAI, Gemini, Ollama, Mistral, Groq, OpenRouter), barra lateral de chat, edición en línea Cmd+K, autocompletado, aplicación rápida/lenta, llamada a herramientas, integración MCP, integración SCM y el sistema de configuración.