// editor
Devin Desktop
Hvor du og Devin Local rent faktisk arbejder.
Til Devin Desktop-brugere
Devin Desktop (Windsurf-IDE'en) er editoren, og Devin Local er agenten. I et monorepo har agenten stadig brug for et kort over, hvilken fil der betyder noget. Maguyva indekserer din kodebase og leverer den tilbage over MCP (semantisk, AST, graf og tekst), så “hvor sker auth” giver det rigtige auth-flow tilbage — ikke syv teststubbe.
Free-niveau: 3 repos, Op til 50K indekserede repo-linjer, intet kreditkort.
Devin Desktop retter det, du peger på. Maguyva fortæller Devin Local, hvilken fil den skal pege på. Fire dele. Hver har en opgave.
// editor
Hvor du og Devin Local rent faktisk arbejder.
// manuel kontekst
Manuel kontekst vinder, indtil repoet bliver stort.
// kodebase
Automatiske kodebasefakta over MCP.
// hvem betaler
Agenter medfører ingen ekstra gebyrer pr. bruger. Se priser
IDE'en er ikke problemet. Devin Local, tab-completion, rettelser på tværs af flere filer og .devin/rules/ er glimrende, og du bruger dem allerede til:
.devin/rules/ til repo-konventioner og stilregler.@-nævnelser til at trække en bestemt fil ind i konteksten.Bliv ved med det. Intet af det forsvinder.
Men i et rigtigt monorepo (TypeScript med workspace-afhængigheder, Python-services, blandede pakker) går agentkonteksten i stykker i det øjeblik, den relevante fil ikke allerede er på Devin Locals radar.
Fire manuelle løsninger parret med deres svigttilstand. Venstre = det, du gør i dag. Højre = hvor det går i stykker.
// the fix
Du @-nævner de tre filer, du tror betyder noget. Devin Local retter rent inde i dem.
// where it breaks
Det virker, når du allerede ved, hvilke filer der er involveret. Hele pointen med kontekstværktøjer er at fremdrage de filer, du ikke vidste, du skulle nævne.
// the fix
Du indsætter 200 linjer fra en anden pakke i Devin Local for at give den nok kontekst.
// where it breaks
Uddraget, du indsatte klokken 9, afspejler ikke den rebase, din kollega landede klokken 11. Devin Local retter mod en fantomversion af pakken.
// the fix
Du skriver en .devin/rules/-fil eller en arkitektur-markdown. Den er korrekt i dag.
// where it breaks
Alt, du skriver i hånden, kommer gradvist ud af trit med virkeligheden. Koden er den eneste sandhed. Et dokument, der forklarer kølaget, er korrekt i en uge — og forkert for evigt derefter.
// the fix
Du tilføjer .devin/rules/ til navngivning, lint og build-kommandoer. Fremragende til adfærd.
// where it breaks
.devin/rules/ er det rette sted til “kør altid pnpm tsc -b før commits.” Det er ikke et søgbart indeks over hvert symbol, hver fil og hvert kaldested i dit monorepo.
Ikke en erstatning for Devin Desktop. Repo-kontekstlaget, der hægter sig på Devin Locals MCP-understøttelse.
.devin/rules/ bliver ved med at gøre sit arbejde. @-nævnelser bliver ved med at gøre deres. Maguyva udfylder det hul, de ikke udfylder. Devin Local retter den fil, du peger på.
Maguyva fortæller agenten, hvilken fil den skal pege på.
På tværs af pakker og sprog. Forankret i den faktiske kaldgraf — ikke Devin Locals grep.
// workflow 01
devin> hvor sker autentificering i dette monorepo? graph::query("authentication flow") packages/web/src/auth/session.ts:42 middleware packages/api/src/auth/jwt.ts:88 token-verificering packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 rbac-tjek → 4 indgangspunkter på tværs af 4 pakker, rangeret efter kaldested-tæthed. [exit 0]
Du nævnte ikke en fil. Du indsatte ikke et uddrag. Devin Local har de fire filer, der betyder noget, i den rette rangering, og kan lave en forankret rettelse.
// workflow 02
devin> hvordan håndterer normalizePhoneNumber E.164? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← rigtig impl. packages/api/test/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
Navne lyver. Mocks overskygger rigtig kode. Maguyva rangerer den rigtige implementering over test-mock'en, på tværs af alle pakker.
// workflow 03
devin> hvad kalder QueueDispatcher.publish på tværs af monorepoet? graph::callers(QueueDispatcher.publish) 3 i packages/billing/* 1 i packages/audit/* 1 i packages/notifications/* 1 i services/python-worker/* ← på tværs af sprog via gRPC-stub [exit 0]
På tværs af pakker, og på tværs af sprog når du har et polyglot repo, dukker kaldesteder op direkte. Diffen er forankret i de rigtige importører, ikke Devin Locals grep.
Tre trin. Free-niveau: 3 repos, Op til 50K indekserede repo-linjer, intet kreditkort.
// step 01
Vælg det monorepo, hvor manglende kontekst har givet flest problemer.
// step 02
~/.config/devin/mcp_config.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
}
}
}
} // step 03
Start ikke med hele din virksomhed. Start med ét repo og ét verificerbart spørgsmål, som “hvad kalder formatInvoice på tværs af pakker?”