Appearance
Claude Code — Komplett Guide
Referansedokument for oppsett, workflows og avansert bruk av Claude Code CLI. Oppdatert: 2026-03-23
Innhold
- Grunnleggende oppsett
- CLAUDE.md — prosjektinstruksjoner
- Rules — organiserte instruksjoner
- Auto Memory — læring mellom sesjoner
- Permissions og sikkerhet
- Hooks — automatisering
- Skills — gjenbrukbare workflows
- MCP Servers — eksterne integrasjoner
- Jobbe med én sesjon
- Plan Mode
- Context management
- Subagents — spesialiserte agenter
- Git worktrees — isolert parallelt arbeid
- Agent Teams — samarbeidende agenter
- Praktiske workflows
- Kommandoreferanse
- Tastaturshortcuts
- Troubleshooting
- 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 agentKonfigurasjonsfiler
Claude Code leser konfigurasjon fra flere nivåer (høyest prioritet først):
| Nivå | Plassering | Deles med team? |
|---|---|---|
| Organisasjon | Styrt av IT | Ja |
| Prosjekt | ./CLAUDE.md, .claude/settings.json | Ja (via git) |
| Prosjekt-lokal | .claude/settings.local.json | Nei |
| Bruker | ~/.claude/CLAUDE.md, ~/.claude/settings.json | Nei |
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 timeImportere andre filer med @
Du kan referere til andre filer for å holde CLAUDE.md kort:
markdown
Se @README.md for prosjektoversikt.
Sikkerhetskrav: @docs/security-guidelines.mdGenerere 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.mdPath-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
| Scenario | Løsning |
|---|---|
| Generelle regler for hele prosjektet | CLAUDE.md i prosjektrot |
| Regler for spesifikke filtyper/mapper | .claude/rules/ med paths |
| Personlige preferanser | ~/.claude/CLAUDE.md |
| Store regelset som trenger organisering | Flere 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.mder 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
| Type | Innhold | Eksempel |
|---|---|---|
user | Brukerens rolle, preferanser, kunnskapsnivå | "Senior backend-utvikler, ny med Vue" |
feedback | Korreksjoner og veiledning fra bruker | "Ikke mock databasen i integrasjonstester" |
project | Pågående arbeid, mål, hendelser | "Merge freeze fra 5. mars for mobile release" |
reference | Pekere 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
| Modus | Beskrivelse |
|---|---|
| Normal | Claude spør før hver skrive-handling |
| Plan | Read-only — Claude kan kun lese, ikke skrive |
| Bytt | Shift+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
| Event | Når |
|---|---|
PreToolUse | Før et verktøy brukes |
PostToolUse | Etter et verktøy er brukt |
Notification | Når Claude trenger input |
Stop | Nå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.mdmarkdown
---
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 commitBruke en skill
- Manuelt: Skriv
/fix-issue 1234i 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.pyManuell 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
- Explore: Forstå problemet og kodebasen
- Plan: Lag en plan (bruk Plan Mode for sikkerhet)
- Implement: Skriv koden
- Verify: Kjør tester, sjekk at alt fungerer
- 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 planEller 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
| Strategi | Kommando | Når |
|---|---|---|
| Nullstill kontekst | /clear | Mellom urelaterte oppgaver |
| Komprimer samtale | /compact | Når samtalen blir lang |
| Delegér til subagent | (se seksjon 12) | Oppgaver med mye output |
| Quick side-spørsmål | /btw | Urelated spørsmål som ikke trenger kontekst |
| Navngi sesjoner | /rename | For å finne igjen sesjoner |
Monitorere context-bruk
bash
/cost # Se token-bruk og kostnadTommelfingerregel
- Under 40% context: Full ytelse, jobb fritt
- 40-70%: Vurder
/compacteller delegér verbose oppgaver - Over 70%: Kjør
/compacteller 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 scopeManuelt 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-endringeneEller 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 fungererTest 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 fiksSecurity 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-123Hver 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-aSubagents 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
| Komponent | Rolle |
|---|---|
| Team lead | Hovedsesjonen som koordinerer |
| Teammates | Separate Claude-instanser med egen context |
| Task list | Delte arbeidsoppgaver |
| Mailbox | Meldingssystem mellom teammates |
Kontrollere teamet
Assign UX-designet til teammate 1
Be arkitekten om å lage et design-doc
Oppsummer alle funnDisplay modes
- In-process (default): Alle i samme terminal,
Shift+Downfor å bytte - tmux: Hver teammate i egen pane
Subagents vs Agent Teams
| Aspekt | Subagents | Agent Teams |
|---|---|---|
| Kommunikasjon | Rapporterer tilbake | Snakker med hverandre |
| Context | Egen window, resultat returneres | Fullt uavhengig |
| Best for | Fokuserte oppgaver | Komplekst samarbeid |
| Token-kostnad | Lavere | Hø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 planReview PR #142. Fokusér på:
- Sikkerhet
- Performance
- Test-dekning
- Konsistens med eksisterende patterns15.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." &
done15.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
| Flagg | Beskrivelse |
|---|---|
-n "name" | Navngi sesjonen |
--continue | Gjenoppta siste sesjon |
--resume | Velg sesjon fra liste |
--permission-mode plan | Start i Plan Mode |
--worktree name | Start i isolert worktree |
--agent name | Bruk spesifikk agent |
-p "prompt" | Ikke-interaktiv modus (én prompt) |
--output-format json | JSON-output (for scripting) |
--allowedTools "Edit,Bash" | Begrens tilgjengelige verktøy |
Sesjonskommandoer
| Kommando | Beskrivelse |
|---|---|
/clear | Nullstill kontekst |
/compact | Komprimer samtale |
/cost | Vis token-bruk og kostnad |
/memory | Se instruksjoner og memory |
/init | Generer CLAUDE.md |
/agents | Administrer subagents |
/hooks | Se konfigurerte hooks |
/rename | Gi sesjonen nytt navn |
/rewind | Gå tilbake til tidligere tilstand |
/btw | Quick side-spørsmål |
/help | Vis hjelp |
17. Tastaturshortcuts
| Shortcut | Effekt |
|---|---|
Esc | Stopp Claude midt i handling |
Esc x2 | Åpne rewind-meny |
Shift+Tab | Bytt permission mode |
Ctrl+G | Åpne plan i teksteditor |
Ctrl+O | Toggle verbose mode (se thinking) |
Ctrl+R | Reverse search i kommando-historikk |
Shift+Down | Bytt teammate (agent teams) |
18. Troubleshooting
Claude ignorerer CLAUDE.md
- Kjør
/memoryfor å verifisere at filen er lastet - Sjekk at filen er under ~200 linjer
- Vær mer spesifikk i instruksjonene
- Sjekk for motstridende instruksjoner på tvers av filer
Context blir full / ytelse degraderer
- Kjør
/compactfor å komprimere samtalen - Bruk
/clearmellom urelaterte oppgaver - Delegér verbose oppgaver til subagents
- Start ny sesjon for nytt arbeid
Subagent starter ikke
- Kjør
/agentsfor å se om agenten finnes - Sjekk SKILL.md / agent-filen for syntaksfeil
- Be Claude eksplisitt: "bruk code-reviewer agenten"
Hook blokkerer
- Kjør
/hooksfor å se aktive hooks - Sjekk hook-kommandoens output
- Juster hook eller fjern den midlertidig
Permissions-problemer
- Sjekk
.claude/settings.jsonfor allowlists/denylists - Bruk
Shift+Tabfor å bytte permission mode - 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-minneTips 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
- Start med brainstorming: La Claude utforske krav og design
- Lag en plan: Bruk Plan Mode eller writing-plans skill
- Implementer med subagents: Delegér uavhengige oppgaver
- Review: Bruk code-reviewer agent eller requesting-code-review skill
- 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.