Scegli il tuo OS — i comandi qui sotto si adattano:
v0.2.x · alpha

QuickStart — VibeCoded Orchestrator pronto in 10 minuti

Knowledge orchestrator local-first per workflow di coding AI. Open source. Gira interamente sulla tua macchina.

Cos'è VCO?

VibeCoded Orchestrator (VCO) gira in background mentre lavori in VS Code con la estensione Claude Code. Indicizza la tua knowledge, il codice e le chiamate ai tool, dando a Claude memoria persistente e retrieval consapevole del codice — senza cambiare come lavori.

VCO funziona con qualsiasi client Claude Code che legga la cartella .claude/ del progetto. VS Code con l'estensione Claude Code è il target principale; la CLI standalone e altri client compatibili funzionano allo stesso modo.

Open source (AGPL-3.0). Nessuna dipendenza dal cloud.

VS Code con il pannello dell'estensione Claude Code aperto a fianco di un file Python
Target principale: VS Code con l'estensione Claude Code. VCO indicizza automaticamente la cartella .claude/ del workspace.
v0.2.x è alpha. Linux e Windows sono validati end-to-end; macOS arm64 è Tier-2 sperimentale (binario non firmato — Gatekeeper ti chiederà conferma al primo lancio). Aspettati qualche imperfezione; segnalala via GitHub Issues.

Prerequisiti

CosaPerchéVerifica con
Python 3.11+ (3.12 consigliato)Orchestrator + server MCPpython3 --version
Docker o PodmanEsegue Weaviate, Ollama, SearXNG, code-embedding servicedocker --version oppure podman --version
Abbonamento Claude (Pro / Max / Team / Enterprise)Necessario per autenticare Claude Codelogin su claude.ai
(opzionale) Node.js 18+Solo se compili la GUI launcher dai sorgentinode --version
(opzionale) Claude Code CLIUsata per riassumere i nuovi nodi KG; se assente, VCO fa fallback su Ollama con un modello locale adatto all'hardwareclaude --version

Lo script first-install.* rileva ciò che manca e propone di installarlo. Su Linux ti chiede sudo per installare i pacchetti di sistema.

Come installare i prerequisiti su Windows / macOS / Linux (clicca per espandere)

Salta questa sezione se hai già tutto il necessario. I link puntano alle pagine ufficiali — verifica versioni e firme prima di eseguire qualsiasi installer.

StrumentoWindowsmacOSLinux
Python 3.11+python.org/downloads/windowsHomebrew: brew install python@3.12 · python.org/downloads/macosPacchetto di sistema (es. apt install python3.12 python3.12-venv) · python.org/downloads/source
Docker oppure PodmanDocker Desktop: docs.docker.com (Windows) · Podman: podman.io/docs/installationDocker Desktop: docs.docker.com (macOS) · Podman: podman.io/docs/installationDocker Engine: docs.docker.com/engine/install · Podman: podman.io/docs/installation
Node.js (LTS)nodejs.org/en/downloadHomebrew: brew install node · nodejs.org/en/downloadnodejs.org/en/download
VS Codecode.visualstudio.com/downloadcode.visualstudio.com/downloadcode.visualstudio.com/download
Estensione Claude Code per VS Codemarketplace.visualstudio.commarketplace.visualstudio.commarketplace.visualstudio.com
Claude Code CLI (opzionale)PowerShell: irm https://claude.ai/install.ps1 | iex · Guida: code.claude.com/docs/en/quickstartcurl -fsSL https://claude.ai/install.sh | bash · Guida: code.claude.com/docs/en/quickstartcurl -fsSL https://claude.ai/install.sh | bash · Guida: code.claude.com/docs/en/quickstart

Step 1 — Prendi il codice

A. Clona il repo (consigliato per chi sviluppa)

cd ~/dev    # or wherever you keep your code
git clone https://github.com/hotak92/vibecoded-orchestrator.git
cd vibecoded-orchestrator

B. Scarica un archive di release (consigliato per chi installa)

Ogni release pubblica un archive completo per OS su Releases: vibecoded-orchestrator-0.2.0-linux-x64.tar.gz, vibecoded-orchestrator-0.2.0-macos-arm64.tar.gz, vibecoded-orchestrator-0.2.0-windows-x64.zip. Ogni archive contiene launcher + CLI vco + stack Python MCP + template (agent / skill / hook) + script di install — niente git clone necessario. Estrai e doppio-click su first-install.{sh,command,desktop,bat}. Ogni archive ha un sidecar .sha256; il binario del launcher è anche SLSA-attestato:

gh attestation verify <downloaded-binary> --repo hotak92/vibecoded-orchestrator
Pagina GitHub Releases con archive per-OS v0.2.0 e binari Linux / macOS / Windows
Pagina GitHub Releases con archive per-OS e binari standalone del launcher. Tutti gli artefatti sono SLSA-attestati.

Step 2 — Esegui l'installer

Un solo comando. L'installer rileva le dipendenze mancanti, chiede conferma prima di installare pacchetti di sistema e prepara il venv Python dell'orchestrator e i container.

bash first-install.sh

(oppure doppio click su first-install.desktop dal file manager — alcuni DE richiedono di abilitare prima "Esegui file di testo eseguibili")

L'installer impiega 5–10 minuti più i download iniziali delle immagini (~5 GB).

Step 3 — Avvia l'orchestrator

L'installer non avvia il launcher in automatico. Quando first-install stampa [install] done, avvia manualmente la GUI del launcher dalla stessa cartella in cui hai eseguito l'installer. Da lì registri progetti, gestisci secret e controlli lo stato dei servizi.

cd ~/dev/vibecoded-orchestrator   # the directory you cloned into
bash start-launcher.sh

Oppure doppio click su start-launcher.desktop dal file manager.

"No such file or directory" sul binario del launcher? Probabilmente stai provando ./launcher/dist/linux-x64/vct-launcher direttamente. Quel path esiste solo dentro al repo VCO, non nella tua cartella di install. Usa start-launcher.sh (o .bat / .command): è l'entry point che l'installer crea nella cartella di install. Se non c'è, l'install non è andato a buon fine; rilancia first-install.

Si apre una finestra GUI nativa.

Home del launcher VCT — sidebar Library a sinistra, install fresco senza progetti
La home del launcher — "Your Library" con la sidebar (Workspace · Knowledge · Team · System). Su un install fresco il pannello principale mostra "Catalog unavailable" finché non registri il primo progetto.
Vuoi riaprirlo dopo? Stesso comando. Il launcher è l'entry point di tutta la configurazione post-install: ogni volta che vuoi aggiungere un secret, registrare un nuovo progetto, o controllare che Weaviate / Ollama siano attivi, parti da lì. È idempotente — eseguirlo due volte non è un problema; la seconda volta riusa i servizi già attivi.
Se mostra "Could not connect to localhost": vedi TROUBLESHOOTING.md. Di solito si risolve con bash scripts/build-bundled-launcher.sh e riavvio.

Step 4 — Segui il wizard

Al primo avvio, l'OnboardingWizard ti guida in 4 step. Il wizard parte automaticamente; gli avvii successivi vanno dritti alla tua library.

4a. Welcome (step 1 di 4)

Una breve intro a cosa fa VCO. Clicca su Next → per continuare.

OnboardingWizard step 1 Welcome to VibeCoded Tools

4b. System (step 2 di 4)

Il wizard sonda il sistema: versione di Python, runtime container (Docker o Podman), GPU, RAM/VRAM disponibili. La maggior parte degli utenti vede tutti i tick verdi. Se manca qualcosa, il wizard ti dice cosa installare. Clicca su Next → quando tutto il necessario è stato rilevato.

OnboardingWizard step 2 System with detected OS / Python / Container runtime / RAM / GPU
System detection reale su Linux: OS, Python 3.12, Podman, RAM, GPU NVIDIA tutti rilevati.

4c. Containers (step 3 di 4)

Il wizard installa il venv Python di VCO nel tuo repo sorgente. Il path di install è auto-rilevato dalla cartella di clone, non selezionabile dall'utente. La pagina lo mostra in sola lettura: "Installing into /your/clone/path (your source repo)".

Sonda anche i servizi condivisi e propone di avviarli se mancano:

Se i servizi sono già up (es. hai un altro install di VCO sulla stessa macchina), il wizard li riusa — stessi dati, niente doppio install. Il toggle "Use separate containers for this install (advanced)" è per power user che vogliono isolamento totale.

La posizione dei volumi container è mostrata per trasparenza. Clicca su Install quando sei pronto, conferma nel modal, poi Next → quando i servizi sono attivi.

OnboardingWizard step 3 Containers with read-only install path, shared services detected
Step Containers reale su Linux. Path di install in sola lettura ("Installing into /home/.../vibecoded-orchestrator") senza Browse picker. I servizi condivisi sono rilevati e riusati; il footer "Orchestrator already installed at this path" appare quando l'install è aggiornato.

4d. First project (step 4 di 4)

Qui registri il tuo primo progetto. Inserisci:

OnboardingWizard step 4 First project with Browse button and GitHub token section

Clicca su Finish. Il wizard registra il progetto, crea le sue collection KG e code-graph in Weaviate, e scrive lo stato per-progetto in ~/.vct/launcher.db. Subito dopo, il launcher fa partire tre task in background sul progetto appena registrato: code-graph build, KG sync (0.2.2 — knowledge/**/*.md + docs/**/*.md → Weaviate via kg-sync --all), e KG summaries (0.2.3 — generate-kg-summary.py per ogni nodo, fallback claude CLI → Ollama → ANTHROPIC_API_KEY → silent skip). Ognuno mostra un banner sotto l'header del progetto: pending / running / failed restano visibili, success / skipped si auto-nascondono dopo 30 s. I tre bottoni in alto a destra (Re-build code graph, Re-sync KG, Re-build KG summaries) li rilanciano on-demand. Se il launcher crasha a metà run, al boot successivo le righe running vengono marcate failed con un messaggio "launcher crashed mid-run; click Retry to re-run" — niente silent re-spawn.

Step 5 — Verifica che tutto funzioni

Dopo Finish vieni portato sulla home Library con il nuovo progetto in lista. Clicca sulla card del progetto per aprirne la dashboard.

Ora apri Claude Code dalla cartella del progetto:

cd ~/dev/test_project
claude

(oppure apri la cartella in VS Code con l'estensione Claude Code installata)

Impostazioni di sessione consigliate per Claude Code

Prima della tua prima sessione in questo progetto, apri la command palette di Claude Code (Cmd/Ctrl + K) e configura la sezione Model. L'impostazione corretta dipende dal modello che stai usando:

Claude Code command palette showing Effort dial and Thinking toggle in the Model section
Claude Code command palette: selettore Effort e toggle Thinking nella sezione Model. Il toggle controlla il thinking a budget fisso su 4.6 / Sonnet 4.6 (impostalo su Off); su Opus 4.7 non ha effetto.
Alternativa CLI se non hai la palette dell'IDE: /effort max (4.6) o /effort xhigh (4.7) all'inizio della sessione, oppure CLAUDE_CODE_EFFORT_LEVEL=max / =xhigh nel file rc della tua shell. Per disabilitare il thinking a budget fisso su 4.6 imposta CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 (no-op su 4.7).

Modifica un file qualsiasi nel progetto. Gli hook dell'orchestrator scattano in background, in silenzio — niente toast o riga di log nella finestra del launcher. Cosa fanno:

Due posti per gestire KG/Codegraph: per-progetto (binding) vs. machine-wide (accesso)

Il launcher espone la configurazione KG/Codegraph in due posti distinti, ognuno per un compito diverso:

Flow comuni

Conferma che gli hook scattano: scrivi un piccolo nodo KG (es. knowledge/concepts/test.md nel progetto) e dopo ~5 secondi lancia hybrid_search("test") da una sessione Claude Code. Se torna il nodo, gli hook funzionano. I log per-sessione si trovano in ~/.claude/logs/; quello dell'orchestrator in state/logs/.

Step 6 — Tour della configurazione (post-wizard)

Una volta registrato il progetto, clicca sulla sua card nella Library home per aprire la pagina settings per-progetto. Ogni progetto ha la sua configurazione su sette tab.

Per-project settings page on Agents tab showing the seven-tab strip
Pagina settings del progetto sul tab Agents. Il banner di stato segnala quando è disponibile un update dell'orchestrator; "Re-build code graph" forza un re-index.

Tab Agents — cosa gira nel progetto

Il launcher porta 19 agent Claude Code bundle (code-explorer, coder, planner, gui-tester, doc-organizer, ecc.). Il tab Agents ti permette di abilitarli/disabilitarli per-progetto e registrare i tuoi custom.

Agents tab with Register form expanded
Clicca su + Register per aggiungere un agent custom. Name (filename senza .md), Source (user per i tuoi, bundled per quelli forniti da VCO), Source module opzionale, Model (es. claude/sonnet, claude/haiku, claude/opus).
Toggle del checkbox Enabled NON tocca MAI il filesystem utente — solo la riga nel registry DB. Gli agent disabilitati restano su disco e si riabilitano in un click.

Tab Skills — slash command

Stesso pattern degli Agents ma per gli slash-command skill (/architect, /tdd, /api-designer, /security-reviewer, ecc.). 28 skill bundle.

Skills tab with Register form open
Form di registrazione skill. Alcuni hanno preferenze di modello implicite (es. /architect default opus).

Tab Hooks — automazioni che scattano a ogni tool call

Registry hook per-progetto. 20 hook bundle scattano automaticamente: file edit sincronizzati a KG, controlli di sintassi sui write, scanner credenziali, KG-update nudge ogni 150k token, e altro. Disabilita singoli hook per-progetto se uno è rumoroso in un certo workflow.

Hooks tab showing PostToolUse / PreToolUse hooks with matchers
Tab Hooks — eventi (PostToolUse / PreToolUse / ecc.), matcher (quali tool li triggerano), source, stato enabled.

Tab Permissions — allow/deny list per i tool degli agent

Per default gli agent hanno accesso ampio; restringi per i progetti sensibili. 5 tipi di regola distinti danno controllo fine:

Permissions tab with Add form open
Form Permissions. Subject: a chi si applica (agent:planner, @global, ecc.). Kind: write_scope, allowed_tool, denied_tool, mcp_server, oppure permission_mode. Value: nome del tool, glob, o ID del server MCP.

Tab Secret refs — env var per-progetto (GITHUB_TOKEN, ecc.) ⭐

La maggior parte dei workflow ha bisogno almeno di GITHUB_TOKEN per le operazioni sui repo e magari OPENAI_API_KEY se usi OpenAI come fallback. Il launcher tiene traccia di quali chiavi servono al progetto; i valori vivono nel keychain dell'OS, non in nessun file VCO. Il launcher conserva solo il riferimento, mai il plaintext.

Secrets panel on Per-project tab
Pannello Secrets. Tre tab di scope in alto, dropdown progetto per Per-project (auto-popolato dai progetti registrati, ↻ refresh), form ADD SECRET sotto. L'icona (?) accanto a Sensitive spiega la semantica del preview mascherato in hover.

Tre scope

Read order (come i moduli trovano un secret)

Quando un modulo nel progetto P chiede un secret K, il launcher controlla in ordine:

  1. Bag per-progetto di P (i secret di P)
  2. Collection shared (i secret shared dei tuoi altri progetti)
  3. Global (machine-wide)

Vince il primo hit. Un modulo in P non vede mai il bag per-progetto di un altro progetto — è la garanzia di isolamento.

Il checkbox "Sensitive"

Default ON, e quasi sempre quello che vuoi.

Lifecycle Set / Unset / Reactivate / Remove

Ogni secret registrato ha quattro operazioni:

Tab KG / Codegraph bindings ⭐

Decide quale collection Weaviate colpiscono hybrid_search e le query code-graph del progetto. Il wizard pre-compila default sensati ma verifica al day one — setting sbagliato → confusione "non trovo i miei appunti".

KG/Codegraph bindings tab showing Knowledge graph block and Code graph block
Knowledge graph (sopra): Role dropdown (primary / shared / archive), Collection name, Embedding model, Weaviate URL. Code graph (centro): Collection prefix, Embedding model, checkbox Enabled. Snapshot summary in fondo coi conteggi a colpo d'occhio.

Tab Settings — metadata + note env var del progetto

Modifica nome del progetto, vedi folder/host/created-at, e (importante) tieni una lista solo-note delle env var che i tuoi agent si aspettano. Comodo per onboardare un teammate senza passargli i valori.

Settings tab showing Metadata block and Project env vars section
Tab Settings. La sezione Project env vars (notes only) sono solo reminder placeholder. I secret gestiti dal launcher vivono nel keychain dell'OS — vedi il pannello Secrets. La CLI vct indipendente in tools/vct-secrets/ usa file in ~/.vct-secrets/ per chi preferisce un workflow file-based.

Route top-level che vale la pena conoscere

Oltre ai tab per-progetto, la sidebar di sinistra del launcher ha una sezione SYSTEM con queste route top-level:

Services — gestisci i container condivisi

Avvia/ferma il vector DB Weaviate, il server LLM Ollama, la ricerca SearXNG e il servizio code_embed da una sola pagina. Il launcher rileva i servizi già attivi (es. avviati da un altro install VCO o da un precedente podman-compose up -d) e li tratta come external · adopt, niente doppia gestione.

Services page showing weaviate / ollama / code_embed all RUNNING
Pagina Services. Tutti e tre i container core in run, Podman come runtime, status "external · adopt" che indica l'adozione da parte del launcher invece dell'avvio diretto.

MCP servers — la dashboard delle capability di Claude

Mostra ogni server Model-Context-Protocol registrato con Claude Code. Il launcher porta 5 server abilitati di default: Knowledge Graph (Weaviate), Local LLM (Ollama, con vision via qwen3.5:9b e summarization), Web & Code Search (SearXNG + GitHub + arXiv), Code Embeddings (CodeSage-Large-v2 GPU, con fallback Ollama jina su CPU) e Playwright per la browser automation. Da qui aggiungi anche server MCP custom.

MCP servers dashboard
Dashboard MCP a /mcp. Ogni card mostra il ruolo del server, il path di config, e un bottone Remove. Quelli enabled di default hanno il check verde.

Altre route

RouteA cosa serve
/preferencesModello di default, tema, update channel, e il pannello Manage GitHub token per impostare, aggiornare o rimuovere il PAT senza dover rilanciare il wizard. Rilancia l'onboarding wizard da qui se hai saltato uno step.
/auditStorico di ogni cambio config. Utile per i compliance review.
/coordinationInvia/ricevi messaggi del team (vct-coordination MCP).
/hubBus di integrazione cross-tool (HTTP API su 127.0.0.1:7700). Le app si registrano per condividere dati con l'orchestrator. Il hub richiede Authorization: Bearer <token> su tutte le rotte /api/v1/* tranne /health; il token viene rigenerato a ogni avvio del launcher e salvato in ~/.vct/hub.token (mode 0o600). I wrapper bundle e la vco CLI gestiscono l'autenticazione in automatico; gli script custom devono leggere il file token a ogni chiamata.
/glossarySpiegazioni in linguaggio semplice dei termini usati nel launcher.
Audit log page
L'audit log a /audit. Ogni cambio config viene registrato con timestamp, attore, operazione, e un blob JSON di dettaglio. Utile per i compliance review.

Cose da sapere che non sono nella GUI

VS Code workspace KG_COLLECTION: il tab KG / Codegraph del progetto non sovrascrive la env var KG_COLLECTION che una sessione Claude Code embedded legge. Quella la controlla il .vscode/settings.json per-workspace nella cartella del progetto. Se hai più progetti aperti in VS Code, ognuno ha bisogno del suo .vscode/settings.json col KG_COLLECTION giusto. Facile dimenticarsene.
Location dei volumi container: Podman/Docker decidono di default dove vivono i volumi nominati (~/.local/share/containers/storage/volumes/ su Linux user-mode, simile su macOS/Windows). Per spostarli, vai in Settings → Preferences → Volume location: il launcher fa un dry-run con stima dimensione, ETA e check dello spazio libero, copia con cp -a, scrive un override bind-mount in infrastructure/docker-compose.override.yml e VCT_VOLUMES_PATH in .env, e rimuove i volumi vecchi solo dopo che gli health-check su Weaviate e Ollama passano. Se la migrazione fallisce a metà, i dati restano dov'erano.

Troubleshooting

Runtime container rilevato ma non attivo

Hai Docker o Podman installato ma il daemon non è partito.

# Linux Podman:
systemctl --user start podman.socket

# Linux Docker:
sudo systemctl start docker

Python è 3.10 o più vecchio

VCO richiede Python 3.11+. L'installer propone di installare Python 3.12 col tuo package manager (apt / dnf / pacman). Puoi anche installarlo via pyenv prima di lanciare l'installer.

16 GB di RAM e warning "OOM" durante il caricamento modelli

Il modello vision Ollama di default (qwen3.5:9b) ha bisogno di ~24 GB effettivi. Su sistemi 16 GB il launcher fa fallback automatico a modelli più piccoli. Se vai ancora in OOM sui code embedding, imposta CODE_EMBED_BACKEND=ollama per usare il jina-v2-base-code (768-dim) più leggero invece del modello GPU CodeSage.

"Could not connect to localhost" al lancio

Il frontend del binario launcher bundle è mancante o rotto. Fix:

bash scripts/build-bundled-launcher.sh

poi riavvia. La defense a 4 layer aggiunta in v0.1.0 evita che ricapiti su build fresche.

Per altro, vedi KNOWN_ISSUES.md e INSTALL_RECOVERY.md.

Prossimi passi