19 resultaten

desktop

op je machine

skills

Knossos

Breng dependencies in kaart, bekijk wijzigingsimpact en bewaar architectuurkennis naast je werk.

Knossos (Κνωσός) is een bronstijdpaleis op Kreta, in de Griekse mythologie verbonden met het Labyrint.
Een Claude Code-sessie met het Knossos-paneel: /knossos opent het, de tabs Hubs, Cycles en Boundaries komen langs, de finder opent de blast radius van één component, daarna een edit van één regel, de band die samenvat wat die raakt, en de diff op de tab Changes
Een sessie: /knossos opent het paneel, een rondgang langs de tabs en een zoekactie, dan een edit, de band die de wijziging samenvat, en de diff in Changes.
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.

Wat zo'n graph vindt dat een agent die bestand voor bestand leest mist, laat ik zien in Wat een dependency-graph vindt dat je coding agent mist.

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.

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.

NotitieWanneer
Readna een Read van een bestand waar veel van afhangt of waarvoor een policy geldt
editna een edit van een bestand waar veel van afhangt waarvoor geen Read-notitie verscheen
einde van de beurtna een beurt die bestanden bewerkte, zodra die gescand is: de boundary-schendingen die erbij kwamen en de tests die de wijzigingen raken
commitna een commit, over de resterende effecten van sessiewijzigingen

Een Read-notitie voor een bestand met veel afhankelijke bestanden en een boundary-policy:

text
knossos: src/Query/ResultEnvelope.php (core) has 47 dependent files. Policy: core may not depend on php-worker, tests.

En na een commit:

text
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 file_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 negen tabs: Overview, Hubs, Boundaries, Cycles, Issues, Changes, Branch, Churn en Notes. Het paneel opent op Overview.

Knossos Overview naast Claude Code met sessiewijzigingen, samenstelling en dependencyconcentratie
Overview. Dezelfde architectuurwerkplek met negen tabs is ook te openen in je browser met knossos web.

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.

Hubs met ResultEnvelope geselecteerd en de dependencies naast de componentenlijst
Hubs: componenten met de meeste afhankelijke componenten en de dependencies van de selectie.

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

Cycles met een dependency-cycle en de lijst van cycles
Cycles: dependencies tussen componenten in een cycle, inclusief de terugkeer naar het begin.

Na een beurt die bestanden bewerkte, toont één regel boven de prompt de impact van de wijziging:

text
knossos · 2 files → 37 dependents · 4 tests · as of 12s ago · reaching core, http +1

In 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.

Changes met hooks/lib/paths.ts, afhankelijke bestanden, gerelateerde tests en de sessiediff
Changes: gewijzigde bestanden, afhankelijke bestanden, gerelateerde tests en sessiediffs.

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

Branch met nieuwe dependencies tussen boundaries, groei van hubs, mogelijke dead code en churn-hotspots ten opzichte van de merge base met main
Branch: wijzigingen ten opzichte van de merge base, inclusief boundary-overschrijdingen en mogelijke dead code.

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

Componentzoekfunctie met ResultEnv ingevoerd en twintig resultaten, met ResultEnvelope geselecteerd
Druk op 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.

Open het paneel in je terminal ​

knossos zonder command opent dezelfde negen tabs schermvullend in je terminal, met de muis en de toetsen van het paneel. Zet het in een tmux-split naast je werk:

bash
cd /path/to/your-project
knossos

Ctrl-C sluit het af, en q ook, behalve op een project dat nog nooit gescand is: daar start q de scan. Het paneel in de terminal deelt de server van het project met knossos web, dus een browser op hetzelfde project toont hetzelfde paneel. Je hebt Node 24 of nieuwer nodig.

Knossos in een terminal op de Hubs-tab, met ArchitectureQueryService geselecteerd, de dependencies ernaast en daaronder de bestanden waar het meest van afhangt
De Hubs-tab in een terminal: dezelfde tabs, toetsen en details als het paneel in Claude Code.

Open de werkplek in je browser ​

Met knossos web open je dezelfde architectuurwerkplek met negen tabs vanuit Codex, een andere editor of buiten een agentsessie. Zoeken, component- en bestandsdetails, impactringen, diffs en notities zijn ook hier beschikbaar. Changes volgt ongecommitteerd werk ten opzichte van de laatste commit.

bash
cd /path/to/your-project
knossos web

Laat het commando draaien zolang je de werkplek gebruikt. Ctrl-C stopt de lokale server. Een ander project of een vaste poort kies je zonder automatisch een browser te openen:

bash
knossos web /path/to/your-project --port=8123 --no-open

Gebruik het afgedrukte adres, inclusief het token.

Knossos in de browser met architectuuroverzicht, samenstelling en relaties tussen boundaries
De browserwerkplek gebruikt dezelfde graph en weergaven als het paneel in Claude Code.

Bewaar kennis bij de component ​

Leg blijvende projectkennis vast bij de component waarop die betrekking heeft. Notities blijven bewaard na een nieuwe scan. Een eigen notitie gaat vóór die van de agent. De Notes-tab groepeert ze per boundary en map, markeert verouderde notities en helpt zoeken als je de component niet meer weet.

Knossos Notes-tab met componentnotities in een boom per boundary en map
Projectkennis blijft bij de architectuur die ze beschrijft.

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 24 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:

bash
git clone https://github.com/AraneaDev/knossos.git /absolute/path/to/knossos
cd /absolute/path/to/your-project
/absolute/path/to/knossos/tools/install

Die 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:

bash
ln -s /absolute/path/to/knossos/bin/knossos ~/.local/bin/knossos
knossos install-agent-plugin                                        # preview
knossos install-agent-plugin --data-dir="$HOME/.knossos" --execute

Start 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 37 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 native paneel en de sessiemeldingen gebruiken Claude Code-hooks. Andere clients kunnen de graph bekijken via knossos in een terminal of knossos web.

De CLI. Elke tool behalve server_info is ook een command, met --json voor scripts, en knossos usage zet ze op een rij:

bash
knossos impact-analysis . 'App\Billing\Invoice'
knossos review-diff . --base-ref=main --policies=architecture-policies.json
knossos watch /absolute/path/to/project

CI. 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:

bash
knossos quality-gate . <baseline-snapshot> --budgets=knossos-budgets.json --sarif --json

Exitcode 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 ​

TaalExtractieFramework-verrijking
PHP 8.3+Declaraties, inheritance, calls, constructie, types, injectionLaravel, Livewire, Symfony
TypeScript/JavaScriptSymboolresolutie via de compiler, imports, calls, types, project references, Vue/Svelte/Astro-componentenNext.js, NestJS, React, Vue, stores, endpoints
Python 3.11+AST uit de standaardbibliotheek in een geïsoleerde interpreter; manifests, packages, calls, routesFastAPI, Django, Flask, Celery
Rust 1.82+Parsing met syn; Cargo-manifests, impls over bestanden heen, routes. Roept nooit cargo of rustc aanaxum, 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.