Knossos
Bekijk dependencies, wijzigingsimpact en architectuurregels in een lokale graph.
Knossos (Κνωσός) is een bronstijdpaleis op Kreta, in de Griekse mythologie verbonden met het Labyrint.
- PHP
- TypeScript
- Rust
- MCP
- Claude Code
GitHub (opent in een nieuw tabblad)README (opent in een nieuw tabblad)Changelog (opent in een nieuw tabblad)
Op deze paginaWat het doet
Wat het doet
Dependencies afleiden uit broncode vereist in elke sessie opnieuw zoekwerk en kan onvolledige resultaten opleveren. Knossos scant de repository naar een lokale graph van componenten en relaties, met bestands- en regelverwijzingen voor elke relatie. Relaties die statische analyse niet sluitend kan vaststellen, krijgen een label met de confidence en herkomst.
In Claude Code opent /knossos de graph als live paneel naast je sessie. Hooks voegen ook korte contextnotities toe na relevante bestandslezingen, wijzigingen en commits: afhankelijke bestanden, toepasselijke regels en gerelateerde tests.

/knossos om de architectuur te bekijken, componenten te zoeken en sessiewijzigingen te controleren.Contextnotities voor Claude Code
Vier soorten notities van één regel worden op vaste momenten in een sessie toegevoegd. Elke notitie verschijnt één keer voor het betreffende event en blokkeert geen tool calls.
| Notitie | Wanneer |
|---|---|
| Read | na een Read van een bestand waar veel van afhangt of waarvoor een policy geldt |
| edit | na een edit van een bestand waar veel van afhangt waarvoor geen Read-notitie verscheen |
| einde van de beurt | na een beurt die bestanden bewerkte, zodra die gescand is: de boundary-schendingen die erbij kwamen en de tests die de wijzigingen raken |
| commit | na een commit, over de resterende effecten van sessiewijzigingen |
Een Read-notitie voor een bestand met veel afhankelijke bestanden en een boundary-policy:
knossos: src/Query/ResultEnvelope.php (core) has 47 dependent files. Policy: core may not depend on php-worker, tests.En na een commit:
knossos: this session's changes carry 1 changed file no test reaches (src/Kernel.php); 1 dependency cycle new since the session began (Router → Kernel). Check them before you push.Vóór een wijziging levert knossos_context in één tool call de boundary, toepasselijke regels, afhankelijke bestanden, gerelateerde tests, laatste commits en wijzigingsstatus van een bestand in de huidige sessie.
Elke sessie begint met een korte briefing: of de graph nog klopt met de bestanden, en de regels en vastgelegde notities van het project. Een routing-skill beschrijft wanneer de graph wordt gebruikt en wanneer een tekstzoekactie met grep geschikt is.
Het paneel
/knossos opent de architectuur van het project op acht tabs: Overview, Hubs, Boundaries, Cycles, Issues, Changes, Branch en Churn. Het paneel opent op Overview.

Hubs toont de componenten waar het meest van afhangt. Op een breed paneel staat de omgeving van de gemarkeerde component naast de lijst, zodat je ziet welke dependencies een hub heeft zonder de tab te verlaten.

Cycles tekent elke dependency-cycle als een rij blokken, van het eerste lid terug naar het begin.

Na een beurt die bestanden bewerkte, toont één regel boven de prompt de impact van de wijziging:
knossos · 2 files → 37 dependents · 4 tests · as of 12s ago · reaching core, http +1In Changes staat de rest: elk bestand dat sinds het begin van de sessie veranderde, met de dependents, de tests die het raken en de diff.

Branch vergelijkt de checkout met de merge base, zodat je ziet wat een branch toevoegde voordat je een pull request opent.

Elke component en elk bestand heeft een detailweergave met de impact op dependencies als ringen. Met de finder zoek je componenten op naam.

f, voer een deel van een componentnaam in en druk op Enter voor de detailweergave.Een live watcher, één per project en gedeeld door je sessies, scant opnieuw zodra er bestanden veranderen. Zo volgen het paneel en de notities ook wijzigingen van iemand anders. Het paneel blokkeert geen edits en start geen beurten. Als een vereiste ontbreekt, verschijnt geen paneeloutput.
Snel starten
Knossos staat nog niet op Packagist of in een container-registry, dus je installeert het vanuit een checkout. Je hebt PHP 8.3 of nieuwer nodig, Node 22 of nieuwer, Python 3.11 of nieuwer, Composer 2 en Git. Cargo 1.82 of nieuwer is optioneel en voegt Rust-scanning toe.
Draai de installer vanuit het project dat je als eerste wilt scannen:
git clone https://github.com/AraneaDev/knossos.git /absolute/path/to/knossos
cd /absolute/path/to/your-project
/absolute/path/to/knossos/tools/installDie maakt de datamap ~/.knossos aan met een roots-bestand dat dit project toestaat, scant het en registreert de MCP-server bij Claude Code op user-scope. Installeer daarna de plugin, die het paneel, de notities, de briefing en de skill meebrengt:
ln -s /absolute/path/to/knossos/bin/knossos ~/.local/bin/knossos
knossos install-agent-plugin # preview
knossos install-agent-plugin --data-dir="$HOME/.knossos" --executeStart een nieuwe sessie en typ /knossos.
Installatie via een marketplace wordt niet ondersteund. Een marketplace-kloon bevat geen vendor/, dat nodig is om het meegeleverde knossos-commando uit te voeren.
Integratie via MCP, CLI en CI
MCP-clients. De graph is beschikbaar via 33 MCP-tools: impactanalyse, call sites, paden tussen componenten, cycles, hubs, kandidaten voor dead code, review van een wijziging, test-impact, snapshots en trends. Codex en elke client die de gangbare stdio-entry onder mcpServers leest, kunnen ze gebruiken. Het paneel en de notities zijn Claude Code-hooks en draaien nergens anders.
De CLI. Elke tool behalve server_info is ook een command, met --json voor scripts:
knossos impact-analysis <project-id> 'App\Billing\Invoice'
knossos review-diff <project-id> --base-ref=main --policies=architecture-policies.json
knossos watch /absolute/path/to/projectCI. Boundary-policies leggen vast welk deel van de codebase van welk ander deel mag afhangen, en quality budgets begrenzen achteruitgang, zoals nieuwe cycles of boundary-schendingen, ten opzichte van een goedgekeurde baseline:
knossos quality-gate <project-id> <baseline-snapshot> --budgets=knossos-budgets.json --sarif --jsonExitcode 0 betekent dat elke gate is geslaagd, 1 dat er een gate faalde en 2 dat het resultaat niet te beoordelen was. Met --sarif worden de bevindingen uitgevoerd in SARIF-formaat voor CI-integratie.
Talen
| Taal | Extractie | Framework-verrijking |
|---|---|---|
| PHP 8.3+ | Declaraties, inheritance, calls, constructie, types, injection | Laravel, Symfony |
| TypeScript/JavaScript | Symboolresolutie via de compiler, imports, calls, types, project references, Vue/Svelte/Astro-componenten | Next.js, React, Vue, stores, endpoints |
| Python 3.11+ | AST uit de standaardbibliotheek in een geïsoleerde interpreter; manifests, packages, calls, routes | FastAPI, Django, Flask, Celery |
| Rust 1.82+ | Parsing met syn; Cargo-manifests, impls over bestanden heen, routes. Roept nooit cargo of rustc aan | axum, actix, Rocket |
Een repository met meerdere talen levert één graph op voor impactanalyse over taalgrenzen. Elke relatie heeft een confidence: certain, probable of possible. De confidence van een pad is begrensd door de relatie met de laagste confidence op dat pad.
Scanisolatie en toegangsgrenzen
Scannen installeert nooit dependencies, voert nooit projectcode uit en start nooit een framework op. Workers draaien onder toezicht en met een resource-limiet, en hun output geldt als onbetrouwbaar tot die de validatie doorstaat.
De server leest alleen de roots die je hebt toegestaan. Knossos breidt die lijst tijdens normaal gebruik nooit zelf uit: alleen de installer en knossos allow-root --execute schrijven erin.
Een mislukte scan wordt nooit actief. De laatste complete scan blijft de graph die je bevraagt, en de database is afgeleid van de broncode, dus je kunt de database altijd opnieuw opbouwen.