
Collezione curata di risorse didattiche sulla cybersecurity, writeup di CTF, articoli di ricerca e laboratori pratici per lo sviluppo di competenze pratiche in ambito di sicurezza web, exploitation, OSINT e forensics.
L'IDE AI open-source che pianifica prima di programmare.
Licenza MIT · Avvio rapido · Cosa aggiunge Modo · Contribuire
Volevo una piccola funzionalità in uno strumento di codifica AI. Non ho trovato un modo per suggerirla. Così mi sono chiesto: quanto è difficile costruire qualcosa come Kiro, Cursor o Windsurf?
A quanto pare — non così difficile come si pensa. Partendo dall'editor Void (a sua volta un fork di VS Code), sono arrivato circa al 60–70% di ciò che offrono questi strumenti in un breve periodo di sviluppo. È stato davvero divertente.
Questo è Modo. Un IDE desktop autonomo in cui i prompt diventano piani strutturati prima di diventare codice. Open source, con licenza MIT, tuo da modificare.
Tutto ciò che segue è stato costruito sopra la chat AI esistente di Void, modifica inline (Cmd+K), completamento automatico, supporto LLM multi-provider, uso di strumenti e integrazione MCP. Ecco le novità:
La maggior parte degli strumenti AI va da prompt a codice. Modo va da prompt a requisiti → progettazione → compiti → codice.
Una spec vive in .modo/specs/<name>/ come tre file markdown:
.modo/specs/auth-flow/
├── requirements.md # user stories, acceptance criteria
├── design.md # architecture, components, data models
└── tasks.md # checklist of implementation steps
Creane uno con Cmd+Shift+S o selezionando la modalità Spec nel selettore di sessione. Scegli funzionalità o correzione bug, quindi flusso di lavoro requisiti-primo o progettazione-primo. L'agente compila ogni documento, tu lo rivedi, poi esegue i compiti uno per uno — segnandoli come completati man mano.
I compiti persistono su disco. Chiudi l'IDE, torna e riprendi da dove avevi lasciato.
Apri qualsiasi tasks.md e ogni compito in sospeso ottiene un pulsante cliccabile "▶ Esegui compito" in linea. Un pulsante "Esegui tutti i compiti in sospeso" appare in cima. I compiti in esecuzione mostrano uno spinner, quelli completati mostrano un segno di spunta. L'agente segna - [ ] → - [~] → - [x] mentre lavora.
Documenti Markdown in .modo/steering/ che iniettano regole di progetto in ogni interazione AI — senza bisogno di ripeterti.
---
inclusion: always
---
# Project Rules
- Use TypeScript strict mode
- All endpoints need input validation
Tre modalità di inclusione:
always — ogni interazionefileMatch — quando il file attivo corrisponde a un pattern globmanual — referenziato tramite comandi / in chatSupporta riferimenti #[[file:path]] per collegare specifiche OpenAPI, schemi GraphQL o qualsiasi documento di progetto.
Configurazioni JSON in .modo/hooks/ che automatizzano azioni attorno al ciclo di vita dell'agente.
{
"name": "Lint on Save",
"version": "1.0.0",
"when": { "type": "fileEdited", "patterns": ["**/*.ts"] },
"then": { "type": "runCommand", "command": "npx eslint --fix ${filePath}" }
}
10 tipi di evento: fileEdited (file modificato), fileCreated (file creato), fileDeleted (file eliminato), promptSubmit (invio prompt), agentStop (arresto agente), preToolUse (prima dell'uso strumento), postToolUse (dopo uso strumento), preTaskExecution (prima esecuzione compito), postTaskExecution (dopo esecuzione compito), userTriggered (attivato dall'utente). Due tipi di azione: askAgent (chiedi all'agente) o runCommand (esegui comando). Gli hook pre-strumento possono negare l'esecuzione. Rilevamento di dipendenze circolari integrato.
Una pillola nella barra di stato che passa tra Autopilota (l'agente agisce autonomamente) e Supervisionato (l'agente si ferma per approvazione). Collegato direttamente alle impostazioni di auto-approvazione per modifiche, comandi terminale e strumenti MCP.
Sessioni chat multiple come schede. Ognuna ha il proprio thread, contesto e cronologia. Aprine di nuove, chiudi quelle vecchie o eseguile tutte insieme. Un pannello di cronologia ricercabile ti permette di trovare conversazioni passate.
Avvia una sessione in modalità Vibe per esplorazione libera, o modalità Spec per sviluppo strutturato. In modalità Spec, il tuo prompt attiva l'intero flusso requisiti → progettazione → compiti. Il contenuto della spec attiva viene automaticamente iniettato nel prompt di sistema del LLM.
Genera agenti paralleli per sottoattività indipendenti. Ognuno ha il proprio thread e accesso agli strumenti. Tieni traccia dello stato, annulla compiti in esecuzione o cancella quelli completati.
Pacchetti di conoscenza installabili che raggruppano documentazione, file di steering e configurazioni MCP. Poteri integrati per TypeScript, React, Testing, API Design e Docker. Attivati in base a parole chiave nei tuoi prompt. Installa poteri personalizzati da URL.
Una barra laterale con sezioni comprimibili per Spec (con barre di avanzamento e conteggi compiti), Hook dell'agente (che mostrano flusso evento → azione), Steering (che mostrano modalità di inclusione) e Poteri.
Digita / in chat per accedere a hook manuali, steering files e comandi integrati: crea spec, esegui compiti, esporta conversazione, inizializza workspace.
I file di steering e la spec attiva vengono automaticamente preposti a ogni interazione LLM. L'agente segue le regole del tuo progetto e sa cosa sta costruendo senza doverglielo dire ogni volta.
Un tema "Modo Dark" costruito appositamente con accenti verde acqua, evidenziazione sintassi ottimizzata e colori del terminale.
Un avatar di Modo appare prima di ogni risposta con espressioni casuali durante lo streaming e una calma predefinita dopo il completamento.
Icona app personalizzata, titolo finestra, logo filigrana, identità prodotto, protocollo URL (modo://) e directory dati (.modo-editor/). Tutti i riferimenti a Void nell'interfaccia sostituiti con equivalenti Modo.
Modo: Initialize Workspace crea l'intera struttura di directory .modo/ con file di steering predefiniti e modelli di configurazione.
Esporta qualsiasi conversazione come Markdown negli appunti dalla palette comandi.
Modo non esisterebbe senza questi progetti:
| Progetto | Cosa fornisce | Licenza |
|---|---|---|
| Void | AI chat, inline edit, autocomplete, multi-provider LLM, tool use, MCP, apply engine | MIT |
| VS Code | Editor core, extension system, terminal, file system, everything underneath | MIT |
| Roo Code | Alcuni pattern referenziati durante lo sviluppo | Apache 2.0 |
Void stesso fornisce: supporto multi-provider (Anthropic, OpenAI, Gemini, Ollama, Mistral, Groq, OpenRouter), barra laterale chat, modifica inline Cmd+K, completamento automatico, applicazione veloce/lenta, chiamata di strumenti, integrazione MCP, integrazione SCM e il sistema di impostazioni.