Skip to content

Claude Code — Komplett Guide

Referansedokument for oppsett, workflows og avansert bruk av Claude Code CLI. Oppdatert: 2026-03-23


Innhold

  1. Grunnleggende oppsett
  2. CLAUDE.md — prosjektinstruksjoner
  3. Rules — organiserte instruksjoner
  4. Auto Memory — læring mellom sesjoner
  5. Permissions og sikkerhet
  6. Hooks — automatisering
  7. Skills — gjenbrukbare workflows
  8. MCP Servers — eksterne integrasjoner
  9. Jobbe med én sesjon
  10. Plan Mode
  11. Context management
  12. Subagents — spesialiserte agenter
  13. Git worktrees — isolert parallelt arbeid
  14. Agent Teams — samarbeidende agenter
  15. Praktiske workflows
  16. Kommandoreferanse
  17. Tastaturshortcuts
  18. Troubleshooting
  19. Mappestruktur-referanse

1. Grunnleggende oppsett

Starte Claude Code

bash
claude                           # Start ny sesjon
claude -n "task-name"            # Navngi sesjonen
claude --continue                # Gjenoppta siste sesjon
claude --resume                  # Velg sesjon fra liste
claude --permission-mode plan    # Start i Plan Mode (read-only)
claude --worktree feature-a      # Start i isolert worktree
claude --agent reviewer          # Start med spesifikk agent

Konfigurasjonsfiler

Claude Code leser konfigurasjon fra flere nivåer (høyest prioritet først):

NivåPlasseringDeles med team?
OrganisasjonStyrt av ITJa
Prosjekt./CLAUDE.md, .claude/settings.jsonJa (via git)
Prosjekt-lokal.claude/settings.local.jsonNei
Bruker~/.claude/CLAUDE.md, ~/.claude/settings.jsonNei

2. CLAUDE.md — prosjektinstruksjoner

CLAUDE.md er en markdown-fil Claude leser ved start av hver sesjon. Den forteller Claude hvordan den skal oppføre seg i dette prosjektet.

Plassering

  • Prosjektrot (./CLAUDE.md) — deles med teamet via git
  • Hjemmemappe (~/.claude/CLAUDE.md) — personlige preferanser for alle prosjekter
  • Prosjekt-lokal (.claude/CLAUDE.md) — kun for deg, kun dette prosjektet

Skrive effektiv CLAUDE.md

Hold den under ~200 linjer. Lengre filer fører til at instruksjoner ignoreres.

Vær spesifikk og konkret:

markdown
# Kodestil
- Bruk ES modules (import/export), ikke CommonJS
- 2-space indentation
- Destructure imports når mulig

# Workflow
- Kjør `npm test` før commit
- Type-sjekk med `npm run typecheck` etter endringer

# Prosjektspesifikt
- API-endpoints ligger i src/api/handlers/
- Vi bruker JWT tokens i httpOnly cookies
- Redis cache timeout er 1 time

Importere andre filer med @

Du kan referere til andre filer for å holde CLAUDE.md kort:

markdown
Se @README.md for prosjektoversikt.
Sikkerhetskrav: @docs/security-guidelines.md

Generere starter-CLAUDE.md

Kjør /init i en sesjon — Claude analyserer prosjektet og genererer en CLAUDE.md basert på kodebasen.


3. Rules — organiserte instruksjoner

For store prosjekter kan du dele opp instruksjoner i .claude/rules/:

.claude/
└── rules/
    ├── code-style.md
    ├── testing.md
    ├── api-design.md
    └── frontend/
        └── vue-conventions.md

Path-basert filtrering

Rules kan begrenses til spesifikke filer med paths frontmatter:

markdown
---
paths:
  - "src/api/**/*.ts"
---

# API Development Rules
- Alle endpoints må ha input-validering
- Bruk standard error response format
- Version APIs i URL-path (/v1/, /v2/)

Denne regelen lastes kun når Claude jobber med filer som matcher mønsteret.

Bruksområder

ScenarioLøsning
Generelle regler for hele prosjektetCLAUDE.md i prosjektrot
Regler for spesifikke filtyper/mapper.claude/rules/ med paths
Personlige preferanser~/.claude/CLAUDE.md
Store regelset som trenger organiseringFlere filer i .claude/rules/

4. Auto Memory — læring mellom sesjoner

Claude har et persistent minnesystem som kumulerer læring på tvers av sesjoner.

Hvordan det fungerer

  • Lagres i ~/.claude/projects/<project>/memory/
  • MEMORY.md er indeksfilen (første 200 linjer lastes hver sesjon)
  • Claude skriver selv til memory basert på viktig informasjon
  • Alt er plain markdown du kan redigere manuelt

Minnetyper

TypeInnholdEksempel
userBrukerens rolle, preferanser, kunnskapsnivå"Senior backend-utvikler, ny med Vue"
feedbackKorreksjoner og veiledning fra bruker"Ikke mock databasen i integrasjonstester"
projectPågående arbeid, mål, hendelser"Merge freeze fra 5. mars for mobile release"
referencePekere til eksterne ressurser"Pipeline-bugs trackes i Linear prosjekt INGEST"

Be Claude huske

Husk at vi alltid bruker kebab-case for CSS-klassenavn i dette prosjektet.

Claude lagrer dette som en feedback-memory som påvirker fremtidige sesjoner.

Kommandoer

  • /memory — se alle lastede instruksjoner og auto memory status
  • Be Claude "glem at..." for å fjerne spesifikke minner

5. Permissions og sikkerhet

Permission modes

ModusBeskrivelse
NormalClaude spør før hver skrive-handling
PlanRead-only — Claude kan kun lese, ikke skrive
ByttShift+Tab i sesjonen

Allowlists — reduser avbrytelser

I .claude/settings.json:

json
{
  "permissions": {
    "allow": [
      "Bash(npm test*)",
      "Bash(npm run dev*)",
      "Bash(git commit*)",
      "Bash(git push*)",
      "Edit(src/**/*)"
    ]
  }
}

Nå slipper du å godkjenne disse handlingene manuelt.

Deny-lister

json
{
  "permissions": {
    "deny": [
      "Bash(rm -rf*)",
      "Bash(git push --force*)"
    ]
  }
}

6. Hooks — automatisering

Hooks kjører shell-kommandoer automatisk ved spesifikke hendelser.

Hook-typer

EventNår
PreToolUseFør et verktøy brukes
PostToolUseEtter et verktøy er brukt
NotificationNår Claude trenger input
StopNår Claude stopper

Eksempel: Auto-format etter filredigering

I .claude/settings.json:

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit",
        "hooks": [
          {
            "type": "command",
            "command": "npx eslint --fix $CLAUDE_FILE_PATH"
          }
        ]
      }
    ]
  }
}

Eksempel: macOS-notifikasjon når Claude venter

json
{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude trenger input\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

Se aktive hooks

Kjør /hooks i en sesjon.


7. Skills — gjenbrukbare workflows

Skills er mini-prompts som Claude kan bruke automatisk når de er relevante, eller som du kan trigge manuelt.

Opprette en skill

Lag en mappe under .claude/skills/ med en SKILL.md:

.claude/skills/
└── fix-issue/
    └── SKILL.md
markdown
---
name: fix-issue
description: Fix a GitHub issue by number
---

1. Hent issue-detaljer med `gh issue view $ARGUMENTS`
2. Forstå problemet
3. Søk i kodebasen etter relevante filer
4. Implementer fix
5. Skriv og kjør tester
6. Lag en beskrivende commit

Bruke en skill

  • Manuelt: Skriv /fix-issue 1234 i chatten
  • Automatisk: Claude velger skills basert på description-feltet

Skill-typer

  • Workflow-skills (disable-model-invocation: true): Steg-for-steg oppskrifter
  • Kunnskaps-skills: Domene-spesifikk veiledning Claude bruker automatisk

8. MCP Servers — eksterne integrasjoner

MCP (Model Context Protocol) kobler Claude til eksterne tjenester og gir den nye verktøy.

Legge til en MCP-server

bash
# HTTP-basert
claude mcp add --transport http github https://mcp.github.com

# Stdio-basert (lokal prosess)
claude mcp add --transport stdio database python3 db-connector.py

Manuell konfigurasjon i .mcp.json

json
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://mcp.github.com"
    },
    "database": {
      "type": "stdio",
      "command": "python3",
      "args": ["db-connector.py"]
    }
  }
}

Bruksområder

  • GitHub-integrasjon (issues, PRs, code search)
  • Database-tilgang
  • Slack/Teams-integrasjon
  • Egne API-er og tjenester
  • Dokumentasjonsoppslag (f.eks. Context7 for library-docs)

9. Jobbe med én sesjon

Den grunnleggende syklusen

Explore → Plan → Implement → Verify → Commit

  1. Explore: Forstå problemet og kodebasen
  2. Plan: Lag en plan (bruk Plan Mode for sikkerhet)
  3. Implement: Skriv koden
  4. Verify: Kjør tester, sjekk at alt fungerer
  5. Commit: Lag commit og eventuelt PR

Gode prompts

Vær spesifikk og gi kontekst:

Skriv tester for email-validering i src/utils/validate.ts.
Dekk edge cases: ugyldige formater, tomme strenger, unicode.
Kjør testene etterpå og fiks eventuelle feil.

Lim inn feilmeldinger og stacktraces:

Jeg får denne feilen ved login:
[lim inn feilmelding]

Forventet oppførsel: bruker redirectes til dashboard.
Faktisk oppførsel: blank side etter submit.

Be om verifisering:

Implementer OAuth-flyten. Skriv tester for callback-handleren,
kjør test-suiten og fiks eventuelle feil.

Gi feedback underveis

Claude lærer av korreksjoner. Vær direkte:

Nei, ikke bruk mocks her — vi trenger integrasjonstester mot ekte database.

Dette lagres som feedback-memory og påvirker fremtidige sesjoner.


10. Plan Mode

Plan Mode låser Claude i read-only modus — den kan lese filer og kjøre kommandoer, men ikke redigere.

Bruksområder

  • Utforske ukjent kodebase uten risiko
  • Planlegge store endringer
  • Code review
  • Arkitektur-analyse

Starte i Plan Mode

bash
claude --permission-mode plan

Eller toggle i sesjonen med Shift+Tab.

Redigere planer

Trykk Ctrl+G for å åpne planen i din teksteditor. Rediger, lagre, og Claude fortsetter derfra.


11. Context management

Claude sin context window fylles over tid. Når den er full, degraderer ytelsen.

Strategier

StrategiKommandoNår
Nullstill kontekst/clearMellom urelaterte oppgaver
Komprimer samtale/compactNår samtalen blir lang
Delegér til subagent(se seksjon 12)Oppgaver med mye output
Quick side-spørsmål/btwUrelated spørsmål som ikke trenger kontekst
Navngi sesjoner/renameFor å finne igjen sesjoner

Monitorere context-bruk

bash
/cost    # Se token-bruk og kostnad

Tommelfingerregel

  • Under 40% context: Full ytelse, jobb fritt
  • 40-70%: Vurder /compact eller delegér verbose oppgaver
  • Over 70%: Kjør /compact eller start ny sesjon med /clear

12. Subagents — spesialiserte agenter

Subagents er mini-Claude-instanser med egen context window. De kjører fokuserte oppgaver og returnerer resultatet.

Hvorfor subagents?

  • Beskytter main context — verbose output (tester, logs) forurenser ikke samtalen
  • Spesialisering — kan ha egne instruksjoner og verktøysbegrensninger
  • Parallellitet — flere subagents kan jobbe samtidig

Opprette subagents

Interaktivt:

/agents → Create New Agent → Personal eller Project scope

Manuelt i .claude/agents/:

markdown
---
name: code-reviewer
description: Reviews code for quality, security, and maintainability
tools: Read, Grep, Glob, Bash
model: sonnet
---

Du er en senior code reviewer. Når du invokeres:
1. Kjør git diff for å se endringer
2. Fokusér på modifiserte filer
3. Vurder: klarhet, navngiving, duplisering, feilhåndtering, sikkerhet

Format output:
- **Kritisk** (må fikses)
- **Advarsel** (bør fikses)
- **Forslag** (vurder)

Bruke subagents

bruk code-reviewer agenten til å sjekke auth-endringene

Eller bruk @code-reviewer i chatten.

Nyttige subagent-eksempler

Debugger:

markdown
---
name: debugger
description: Debugging specialist for errors and test failures
tools: Read, Edit, Bash, Grep, Glob
---

1. Fang error og stack trace
2. Identifiser reproduksjonssteg
3. Isoler feilsted
4. Implementer minimal fix
5. Verifiser at løsningen fungerer

Test Runner (isolerer stort output):

markdown
---
name: test-runner
description: Run tests and report failures concisely
tools: Bash, Read
---

Kjør test-suiten og rapportér kun:
- Totalt antall tester og pass/fail-ratio
- Navn på feilende tester
- Feilmeldinger
- Forslag til fiks

Security Reviewer:

markdown
---
name: security-reviewer
description: Reviews code for security vulnerabilities
tools: Read, Grep, Glob, Bash
model: opus
---

Sjekk kode for: injection, auth-feil, secrets i kode,
usikker datahåndtering. Gi spesifikke linje-referanser og fiksforslag.

Subagent med persistent memory

markdown
---
name: api-architect
description: Design API endpoints following team conventions
memory: project
---

Memory scope:

  • user~/.claude/agent-memory/<name>/ (alle prosjekter)
  • project.claude/agent-memory/<name>/ (deles via git)
  • local.claude/agent-memory-local/<name>/ (kun lokalt)

13. Git worktrees — isolert parallelt arbeid

Git worktrees lar deg ha flere uavhengige arbeidskataloger fra samme repo, med egne branches.

Bruksområder

  • Jobbe på feature-branch mens du fikser bugs på en annen
  • Kjøre tester i én worktree mens du koder i en annen
  • Isolere eksperimentelt arbeid

Starte Claude i worktree

bash
# Terminal 1
claude --worktree feature-auth

# Terminal 2
claude --worktree bugfix-123

Hver worktree får:

  • Eget filsystem (.claude/worktrees/<name>/)
  • Egen git-branch (worktree-<name>)
  • Delt git-history og remotes

Manuell worktree-håndtering

bash
# Opprett
git worktree add .claude/worktrees/feature-a -b feature-a
cd .claude/worktrees/feature-a && claude

# Rydde opp
git worktree remove .claude/worktrees/feature-a

Subagents i worktrees

Subagents kan også kjøre isolert:

markdown
---
name: feature-worker
description: Implement features in isolation
isolation: worktree
---

14. Agent Teams — samarbeidende agenter (eksperimentelt)

Agent Teams er flere uavhengige Claude-instanser som kan kommunisere og koordinere.

Aktivere

json
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

Opprette et team

Lag et agent team for å reviewe PR #142:
- Teammate 1: Security-fokus (auth, injection, secrets)
- Teammate 2: Performance-fokus (algoritmer, caching, queries)
- Teammate 3: Testing-fokus (coverage, edge cases)

Komponenter

KomponentRolle
Team leadHovedsesjonen som koordinerer
TeammatesSeparate Claude-instanser med egen context
Task listDelte arbeidsoppgaver
MailboxMeldingssystem mellom teammates

Kontrollere teamet

Assign UX-designet til teammate 1
Be arkitekten om å lage et design-doc
Oppsummer alle funn

Display modes

  • In-process (default): Alle i samme terminal, Shift+Down for å bytte
  • tmux: Hver teammate i egen pane

Subagents vs Agent Teams

AspektSubagentsAgent Teams
KommunikasjonRapporterer tilbakeSnakker med hverandre
ContextEgen window, resultat returneresFullt uavhengig
Best forFokuserte oppgaverKomplekst samarbeid
Token-kostnadLavereHøyere

Velg subagents når:

  • Du bare trenger resultatet
  • Oppgaven er fokusert og selvdrevet
  • Du vil bevare main context

Velg agent teams når:

  • Teammates må diskutere og utfordre hverandre
  • Parallell utforsking av konkurrerende hypoteser
  • Komplekse features som krever koordinering

15. Praktiske workflows

15.1 Feature-utvikling

bash
claude -n "oauth-migration"
# Fase 1: Forstå
Analyser hvordan auth-systemet fungerer i dag.

# Fase 2: Planlegg (Plan Mode)
Lag en plan for Google OAuth-integrasjon. Hvilke filer må endres?

# Fase 3: Implementer (Normal Mode)
Implementer OAuth-flyten fra planen. Skriv tester.

# Fase 4: Verifiser og commit
Kjør alle tester. Lag commit og åpne PR.

15.2 Bug-fiks

Jeg ser denne feilen ved login:
[lim inn feil]

Skriv en feilende test som reproduserer problemet, fiks det,
og verifiser at testen passerer.

15.3 Code review

bash
claude --permission-mode plan
Review PR #142. Fokusér på:
- Sikkerhet
- Performance
- Test-dekning
- Konsistens med eksisterende patterns

15.4 Refaktorering

Refaktorer utils.js til moderne JavaScript.
Lag en plan som bevarer bakoverkompatibilitet.
Implementer steg for steg, kjør tester etter hvert steg.

15.5 Writer + Reviewer pattern

Kjør to sesjoner:

Sesjon A (Writer):

Implementer rate limiter for API-endpunktene.

Sesjon B (Reviewer):

Review rate limiter-implementasjonen. Se etter edge cases,
race conditions, og konsistens med eksisterende patterns.

Sesjon A (fiks feedback):

Adresser issues fra reviewen.

15.6 Stor migrering (fanout)

bash
# Generer oppgaveliste
claude -p 'list alle Python-filer som trenger migrering' > files.txt

# Kjør parallelt
for file in $(cat files.txt); do
  claude -p "Migrer $file fra React til Vue. Returner OK eller FAIL." &
done

15.7 Research med subagents

Bruk subagents til å undersøke:
1. Hvordan auth-systemet håndterer token refresh
2. Om vi har eksisterende OAuth-utilities
3. Hvordan database-skjemaet ser ut for brukere

Hver subagent utforsker uavhengig og rapporterer funn.

Main conversation forblir ren for implementasjon.


16. Kommandoreferanse

CLI-flagg

FlaggBeskrivelse
-n "name"Navngi sesjonen
--continueGjenoppta siste sesjon
--resumeVelg sesjon fra liste
--permission-mode planStart i Plan Mode
--worktree nameStart i isolert worktree
--agent nameBruk spesifikk agent
-p "prompt"Ikke-interaktiv modus (én prompt)
--output-format jsonJSON-output (for scripting)
--allowedTools "Edit,Bash"Begrens tilgjengelige verktøy

Sesjonskommandoer

KommandoBeskrivelse
/clearNullstill kontekst
/compactKomprimer samtale
/costVis token-bruk og kostnad
/memorySe instruksjoner og memory
/initGenerer CLAUDE.md
/agentsAdministrer subagents
/hooksSe konfigurerte hooks
/renameGi sesjonen nytt navn
/rewindGå tilbake til tidligere tilstand
/btwQuick side-spørsmål
/helpVis hjelp

17. Tastaturshortcuts

ShortcutEffekt
EscStopp Claude midt i handling
Esc x2Åpne rewind-meny
Shift+TabBytt permission mode
Ctrl+GÅpne plan i teksteditor
Ctrl+OToggle verbose mode (se thinking)
Ctrl+RReverse search i kommando-historikk
Shift+DownBytt teammate (agent teams)

18. Troubleshooting

Claude ignorerer CLAUDE.md

  1. Kjør /memory for å verifisere at filen er lastet
  2. Sjekk at filen er under ~200 linjer
  3. Vær mer spesifikk i instruksjonene
  4. Sjekk for motstridende instruksjoner på tvers av filer

Context blir full / ytelse degraderer

  1. Kjør /compact for å komprimere samtalen
  2. Bruk /clear mellom urelaterte oppgaver
  3. Delegér verbose oppgaver til subagents
  4. Start ny sesjon for nytt arbeid

Subagent starter ikke

  1. Kjør /agents for å se om agenten finnes
  2. Sjekk SKILL.md / agent-filen for syntaksfeil
  3. Be Claude eksplisitt: "bruk code-reviewer agenten"

Hook blokkerer

  1. Kjør /hooks for å se aktive hooks
  2. Sjekk hook-kommandoens output
  3. Juster hook eller fjern den midlertidig

Permissions-problemer

  1. Sjekk .claude/settings.json for allowlists/denylists
  2. Bruk Shift+Tab for å bytte permission mode
  3. Godkjenn enkelthandlinger manuelt

19. Mappestruktur-referanse

prosjekt/
├── CLAUDE.md                         # Prosjektinstruksjoner (deles via git)
├── .claude/
│   ├── settings.json                 # Prosjektinnstillinger (deles)
│   ├── settings.local.json           # Lokale overrides (ikke i git)
│   ├── agents/                       # Custom subagents
│   │   ├── code-reviewer.md
│   │   ├── debugger.md
│   │   └── test-runner.md
│   ├── rules/                        # Organiserte instruksjoner
│   │   ├── code-style.md
│   │   ├── testing.md
│   │   └── api-design.md
│   ├── skills/                       # Gjenbrukbare workflows
│   │   └── fix-issue/
│   │       └── SKILL.md
│   └── .mcp.json                     # MCP server-konfigurasjon

~/.claude/                            # Bruker-nivå (alle prosjekter)
├── CLAUDE.md                         # Personlige preferanser
├── settings.json                     # Globale innstillinger
├── agents/                           # Personlige subagents
├── rules/                            # Personlige regler
└── projects/<project>/memory/        # Auto memory per prosjekt
    ├── MEMORY.md                     # Indeksfil
    ├── user_role.md                  # Bruker-minne
    ├── feedback_testing.md           # Feedback-minne
    └── project_feature_x.md          # Prosjekt-minne

Tips til Nicolay / Cavai-teamet

Eksisterende oppsett

Cavai-prosjektet har allerede:

  • Custom skills i .claude/skills/ (local-setup, local-teardown, osv.)
  • MCP-server for Cavai API (mcp__cavai__*)
  • Auto memory med prosjekthistorikk
  • Superpowers-skills for brainstorming, planning, debugging, TDD, code review

Anbefalt tilnærming for nye features

  1. Start med brainstorming: La Claude utforske krav og design
  2. Lag en plan: Bruk Plan Mode eller writing-plans skill
  3. Implementer med subagents: Delegér uavhengige oppgaver
  4. Review: Bruk code-reviewer agent eller requesting-code-review skill
  5. Verifiser: Kjør verification-before-completion skill

Nyttige spørsmål å stille Claude

Hvordan bør vi gå fram med [feature]?
Hva er den beste tilnærmingen for [problem]?
Analyser [fil/modul] og foreslå forbedringer.
Lag en plan for [oppgave] med estimat på kompleksitet.

Internal documentation