# Cursor redigerer filen. Maguyva ser repoet.

Canonical source: https://maguyva.ai/nb/for-cursor

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

Cursor er editoren. I et monorepo trenger agenten likevel et kart over hvilken fil som er relevant. Maguyva indekserer kodebasen din og gir den tilbake over MCP (semantisk, AST, graf og tekst), slik at «hvor skjer autentisering» gir den faktiske auth-flyten, ikke sju test-stubber.

> Cursor redigerer det du peker på. Maguyva forteller agenten hvilken fil den skal peke på.

## Hva hvert lag gjør

Fire deler. Hver har sin jobb.

### Cursor

Der du faktisk koder.

### @-mentions + pins

Manuell kontekst vinner, helt til repoet blir stort.

### Maguyva

Automatiske kodebasefakta over MCP.

### Arbeidsområder, ikke lisenser

Agenter utløser ingen lisenskostnader. [Se priser](https://maguyva.ai/nb/pricing)

## Cursor er editoren. Bruk den.

IDE-en er ikke problemet. Tab-fullføring i Cursor, rediger-med-AI, redigering av flere filer samtidig, og `.cursor/rules` er utmerkede, og du bruker dem allerede til:

- Forslag direkte i koden og rediger-med-AI i den åpne filen.
- Redigering av flere filer når endringen er lokal.
- `.cursor/rules` for repo-konvensjoner og stilregler.
- `@`-mentions for å hente en bestemt fil inn i konteksten.

Fortsett med det. Ingenting av det forsvinner.

Men i et ekte monorepo (TypeScript med workspace-avhengigheter, Python-tjenester, blandede pakker) bryter agentkonteksten sammen i det øyeblikket den relevante filen ikke allerede er på radaren din.

## Manuelle løsninger du allerede har prøvd, og hvor de svikter

Fire manuelle løsninger paret med sin feilmodus. Venstre = det du gjør i dag. Høyre = hvor det svikter.

### // pinn filene

Du `@`-nevner de tre filene du tror er relevante. Cursor redigerer rent i dem.

### // pinning er en gjetning

Pinning fungerer når du allerede vet hvilke filer som er involvert. Hele poenget med kontekstverktøy er å avdekke filene du ikke visste du burde pinne.

### // lim inn utdragene

Du limer inn 200 linjer fra en annen pakke i chatten for å gi agenten nok kontekst.

### // innlimt kode blir foreldet

Utdraget du limte inn klokken 9 gjenspeiler ikke rebasen kollegaen din landet klokken 11. Agenten redigerer mot en fantomversjon av pakken.

### // skriv et kontekstdokument

Du skriver en `.cursor/rules`-fil eller en arkitektur-markdown. Den stemmer i dag.

### // dokumentasjonen kommer raskt ut av takt med koden

Alt du skriver for hånd, blir gradvis utdatert. Koden er sannheten. Et dokument som forklarer kølaget stemmer i en uke, og er feil for alltid deretter.

### // behold regelfilene

Du legger til `.cursor/rules` for navngiving, lint og byggekommandoer. Flott for atferd.

### // regler ≠ indeks

`.cursor/rules` er riktig sted for “kjør alltid pnpm tsc -b før commits.” Det er ikke en søkbar indeks over hvert symbol, hver fil og hvert kallsted i monorepoet ditt.

## Maguyva er laget under

Ikke en erstatning for Cursor. Repo-kontekstlaget som henger på Cursors MCP-støtte.

- **Semantisk + AST + graf + tekst**: søk etter mening, struktur, avhengighet eller ordrett tekst. Hvert treff gir en filbane og et linjenummer.
- **På tvers av pakker som standard**: kallsteder og importører på tvers av alle pakker i monorepoet, ikke bare den som er åpen nå.
- **Branch-bevisst**: Maguyva ser versjonen av koden Cursor redigerer.
- **Utfyllende, ikke konkurrerende**: `.cursor/rules` fortsetter å gjøre jobben sin. `@`-mentions fortsetter å gjøre sin. Maguyva fyller hullet de ikke fyller.

> Cursor redigerer filen du peker på.
> Maguyva forteller agenten *hvilken fil den skal peke på.*

## Tre monorepo-arbeidsflyter

På tvers av pakker og språk. Forankret i den faktiske kallgrafen, ikke grep i Cursor.

### 01. Finn auth-flyten på tvers av pakker, uten å pinne noe

```text
cursor> hvor skjer autentisering i dette monorepoet?

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 inngangspunkter fordelt på 4 pakker, rangert etter kallsted-tetthet.
[exit 0]
```

Du pinnet ingen fil. Du limte ikke inn noe utdrag. Agenten har de fire filene som betyr noe, i riktig rekkefølge, og kan gjøre en forankret endring.

### 02. Finn den faktiske implementasjonen, ikke test-stubben

```text
cursor> hvordan håndterer normalizePhoneNumber E.164?

semantic::query("normalize phone E.164")
  packages/shared/util/phone.ts:88     normalizePhoneNumber()  ← ekte impl
  packages/api/test/phone.spec.ts:14   jest.mock(...)          ← stub
[exit 0]
```

Navn lyver. Mocks skygger for ekte kode. Maguyva rangerer den ekte implementasjonen over test-mocken, i alle pakker.

### 03. Sjekk påvirkningsradiusen før du refaktorerer

```text
cursor> hvilken kode kaller QueueDispatcher.publish i hele monorepoet?

graph::callers(QueueDispatcher.publish)
  3 i packages/billing/*
  1 i packages/audit/*
  1 i packages/notifications/*
  1 i services/python-worker/*  ← på tvers av språk via gRPC-stub
[exit 0]
```

På tvers av pakker, og på tvers av språk når du har et polyglot repo, dukker kallstedene opp direkte. Diffen er forankret i faktiske importører, ikke Cursors grep.

## Oppsett med Cursor

Tre steg. Free-planen: 3 repoer, Opptil 50K indekserte kodelinjer, uten kredittkort.

### 01. Indekser et repo på maguyva.ai

Velg monorepoet der du har kjent mest på problemer med manglende kontekst.

### 02. Legg til Maguyva som en MCP-server i Cursors innstillinger

`~/.cursor/mcp.json`

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

### 03. Still ett spørsmål du allerede vet svaret på

Ikke start med hele selskapet ditt. Start med ett repo og ett verifiserbart spørsmål, som «hvilken kode kaller `formatInvoice` på tvers av pakker?»

## Indekser ett repo du allerede kjenner.

Test ett spørsmål du kan verifisere svaret på.
