// editor
Windsurf
Waar jij en Cascade daadwerkelijk werken.
Voor Windsurf-gebruikers
Windsurf is de editor en Cascade is de agent. In een monorepo heeft de agent nog steeds een kaart nodig van welk bestand ertoe doet. Maguyva indexeert je codebase en levert die terug via MCP (semantic, AST, graph en text), zodat “waar gebeurt authenticatie” de daadwerkelijke auth-flow oplevert, en niet zeven test-stubs.
Free tier: 3 repositories, Tot 50K geïndexeerde repo-regels, geen kaart nodig.
Windsurf bewerkt waar jij naar wijst. Maguyva vertelt Cascade naar welk bestand het moet wijzen.Vier onderdelen. Elk met zijn eigen taak.
// editor
Waar jij en Cascade daadwerkelijk werken.
// handmatige context
Handmatige context wint, tot de repo groot wordt.
// codebase
Automatische codebasefeiten via MCP.
// wie betaalt
Agents betalen geen seats. Bekijk de prijzen
De IDE is niet het probleem. Cascade, tab-completion, multi-file edits en .windsurfrules zijn uitstekend, en je gebruikt ze al voor:
.windsurfrules voor repoconventies en stijlregels.@-mentions om een specifiek bestand in de context te halen.Blijf dat vooral doen. Niets daarvan verdwijnt.
Maar in een echte monorepo (TypeScript met workspace-deps, Python-services, gemengde packages) breekt agentcontext op het moment dat het relevante bestand nog niet op de radar van Cascade staat.
Vier handmatige oplossingen met hun faalmodus. Links = wat je vandaag doet. Rechts = waar het misgaat.
// the fix
Je @-mentiont de drie bestanden waarvan je denkt dat ze ertoe doen. Cascade bewerkt daarbinnen netjes.
// where it breaks
Het werkt als je al weet welke bestanden erbij betrokken zijn. Het hele punt van contexttools is juist om de bestanden naar boven te halen die je niet wist te noemen.
// the fix
Je plakt 200 regels uit een ander package in Cascade om het genoeg context te geven.
// where it breaks
Het snippet dat je om 9 uur plakte, weerspiegelt niet de rebase die je teamgenoot om 11 uur landde. Cascade bewerkt tegen een spookversie van het package.
// the fix
Je schrijft een .windsurfrules-bestand of een architectuur-markdown. Vandaag klopt het nog.
// where it breaks
Alles wat je met de hand schrijft, raakt uit sync. De code is de source of truth. Een doc die de queue-laag uitlegt, klopt een week, en is daarna voorgoed fout.
// the fix
Je voegt .windsurfrules toe voor naming, lint en buildcommando's. Prima voor gedrag.
// where it breaks
.windsurfrules is de juiste plek voor “draai altijd pnpm tsc -b voor commits.” Het is geen doorzoekbare index van elk symbool, bestand en call-site in je monorepo.
Geen vervanging voor Windsurf. De repo-contextlaag die aanhaakt op de MCP-ondersteuning van Cascade.
.windsurfrules blijft zijn werk doen. @-mentions blijven hun werk doen. Maguyva vult het gat dat zij niet vullen.Cascade bewerkt het bestand waar jij naar wijst.
Maguyva vertelt de agent naar welk bestand het moet wijzen.
Cross-package, cross-language. Gefundeerd op de daadwerkelijke call graph, niet op de grep van Cascade.
// workflow 01
cascade> waar gebeurt authenticatie in deze monorepo? graph::query("authentication flow") packages/web/src/auth/session.ts:42 middleware packages/api/src/auth/jwt.ts:88 token verify packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 rbac gate → 4 entry points in 4 packages, gerangschikt op call-site-dichtheid. [exit 0]
Je hebt geen bestand genoemd. Je hebt geen snippet geplakt. Cascade heeft de vier bestanden die ertoe doen, in de juiste volgorde, en kan een gefundeerde wijziging maken.
// workflow 02
cascade> hoe verwerkt normalizePhoneNumber E.164? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← echte impl packages/api/test/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
Namen liegen. Mocks overschaduwen echte code. Maguyva rangschikt de echte implementatie boven de test-mock, in elk package.
// workflow 03
cascade> wat roept QueueDispatcher.publish aan, door de hele monorepo? graph::callers(QueueDispatcher.publish) 3 in packages/billing/* 1 in packages/audit/* 1 in packages/notifications/* 1 in services/python-worker/* ← cross-language via gRPC-stub [exit 0]
Cross-package, en cross-language als je een polyglotte repo hebt, call-sites komen inline naar boven. De diff is gefundeerd op echte importers, niet op de grep van Cascade.
Drie stappen. Free tier: 3 repositories, Tot 50K geïndexeerde repo-regels, geen kaart nodig.
// step 01
Kies de monorepo waar je de meeste contextpijn hebt gevoeld.
// step 02
// ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"maguyva": {
"serverUrl": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Begin niet met je hele bedrijf. Begin met één repo en één verifieerbare vraag, zoals “wat roept formatInvoice aan, door alle packages heen?”