# Devin Desktop bewerkt het bestand. Maguyva ziet de repo.

Canonical source: https://maguyva.ai/nl/for-windsurf

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Devin Desktop (de Windsurf-IDE) is de editor en Devin Local 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 (semantiek, AST, graaf en tekst), zodat “waar gebeurt authenticatie” de daadwerkelijke auth-flow oplevert, en niet zeven test-stubs.

> Devin Desktop bewerkt waar jij naar wijst. Maguyva vertelt Devin Local naar welk bestand het moet wijzen.

## Wat elke laag doet

Vier onderdelen. Elk met zijn eigen taak.

### Devin Desktop

Waar jij en Devin Local daadwerkelijk werken.

### @ mentions + .devin/rules/

Handmatige context wint, tot de repo groot wordt.

### Maguyva

Automatische codebasefeiten via MCP.

### Per workspace, niet per gebruiker

Voor agents betaal je geen gebruikerslicenties. [Bekijk de prijzen](https://maguyva.ai/nl/pricing)

## Devin Desktop is de editor. Gebruik hem.

De IDE is niet het probleem. Devin Local, tab-completion, multi-file edits en `.devin/rules/` zijn uitstekend, en je gebruikt ze al voor:

- Inline suggesties en Devin Local-edits in het geopende bestand.
- Multi-file edits wanneer de wijziging lokaal is.
- `.devin/rules/` 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 Devin Local staat.

## Handmatige oplossingen die je al hebt geprobeerd, en waar ze stuklopen

Vier handmatige oplossingen met hun faalmodus. Links = wat je vandaag doet. Rechts = waar het misgaat.

### // noem de bestanden

Je `@`-mentiont de drie bestanden waarvan je denkt dat ze ertoe doen. Devin Local bewerkt daarbinnen netjes.

### // noemen is gokken

Het werkt als je al weet welke bestanden erbij betrokken zijn. Contexttools dienen juist om bestanden te vinden waarvan je niet wist dat je ze moest noemen.

### // plak de snippets

Je plakt 200 regels uit een ander package in Devin Local om het genoeg context te geven.

### // geplakte code veroudert

Het snippet dat je om 9 uur plakte, weerspiegelt niet de rebase die je teamgenoot om 11 uur landde. Devin Local bewerkt tegen een spookversie van het package.

### // schrijf een contextdoc

Je schrijft een `.devin/rules/`-bestand of een architectuur-markdown. Vandaag klopt het nog.

### // docs verouderen sneller dan code

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.

### // houd de instructiebestanden bij

Je voegt `.devin/rules/` toe voor naming, lint en buildcommando's. Prima voor gedrag.

### // regels ≠ index

`.devin/rules/` 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.

## Maguyva is de laag eronder

Geen vervanging voor Devin Desktop. De repo-contextlaag die aanhaakt op de MCP-ondersteuning van Devin Local.

- **Semantiek + AST + graaf + tekst**: zoek op betekenis, structuur, dependency of letterlijke tekst. Elke hit levert een bestandspad en regelnummer op.
- **Standaard over pakketten heen**: call-sites en importers door de hele monorepo, niet alleen het package dat Devin Local nu open heeft staan.
- **Branch-bewust**: Maguyva ziet de versie van de code die Devin Local aan het bewerken is.
- **Aanvullend, niet concurrerend**: `.devin/rules/` blijft zijn werk doen. `@`-mentions blijven hun werk doen. Maguyva vult het gat dat zij niet vullen.

> Devin Local bewerkt het bestand waar jij naar wijst.
> Maguyva vertelt de agent *naar welk bestand het moet wijzen.*

## Drie monorepo-workflows

Cross-package, cross-language. Gefundeerd op de daadwerkelijke call graph, niet op de grep van Devin Local.

### 01. Vind de auth-flow door alle packages heen, zonder iets te noemen

```text
devin> 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. Devin Local heeft de vier bestanden die ertoe doen, in de juiste volgorde, en kan een gefundeerde wijziging maken.

### 02. Vind de echte implementatie, niet de test-stub

```text
devin> 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.

### 03. Check de impactradius voordat je refactort

```text
devin> vanuit welke code wordt QueueDispatcher.publish aangeroepen, 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]
```

Aanroeplocaties uit verschillende pakketten worden direct getoond, en bij een meertalige repo ook uit verschillende talen. De diff is gefundeerd op echte importers, niet op de grep van Devin Local.

## Setup met Devin Desktop

Drie stappen. Free-abonnement: 3 repositories, Tot 50K geïndexeerde repo-regels, geen creditcard nodig.

### 01. Indexeer een repo op maguyva.ai

Kies de monorepo waar je de meeste problemen met ontbrekende context hebt gehad.

### 02. Voeg Maguyva toe als MCP-server in Devin Desktop

`~/.config/devin/mcp_config.json`

```json
{
  "mcpServers": {
    "maguyva": {
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Stel één vraag waarvan je het antwoord al weet

Begin niet met je hele bedrijf. Begin met één repo en één verifieerbare vraag, zoals “vanuit welke code wordt `formatInvoice` aangeroepen, door alle packages heen?”

## Indexeer één repo die je al kent.

Test één vraag waarvan je het antwoord kunt verifiëren.
