---
title: Intro
description: Kom i gang med opencode.
---

import { Tabs, TabItem } from "@astrojs/starlight/components"
import config from "../../../../config.mjs"
export const console = config.console

[**opencode**](/) er en åpen kildekode AI kodeagent. Den er tilgjengelig som et terminalbasert grensesnitt, skrivebordsapp eller IDE-utvidelse.

![opencode TUI med opencode-temaet](../../../assets/lander/screenshot.png)

La oss komme i gang.

---

#### Forutsetninger

For å bruke opencode i terminalen din trenger du:

1. En moderne terminalemulator som:
   - [WezTerm](https://wezterm.org), på tvers av plattformer
   - [Alacritty](https://alacritty.org), på tvers av plattformer
   - [Ghostty](https://ghostty.org), Linux og macOS
   - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux og macOS

2. API-nøkler for LLM-leverandørene du vil bruke.

---

## Installer

Den enkleste måten å installere opencode på er gjennom installasjonsskriptet.

```bash
curl -fsSL https://opencode.ai/install | bash
```

Du kan også installere den med følgende kommandoer:

- **Bruke Node.js**

        <Tabs>

      <TabItem label="npm">
      ```bash
      npm install -g opencode-ai
      ```

          </TabItem>

        <TabItem label="Bun">
        ```bash
        bun install -g opencode-ai
        ```

          </TabItem>

        <TabItem label="pnpm">
        ```bash
        pnpm install -g opencode-ai
        ```

          </TabItem>

        <TabItem label="Yarn">
        ```bash
        yarn global add opencode-ai
        ```

      </TabItem>

  </Tabs>

- **Bruke Homebrew på macOS og Linux**

  ```bash
  brew install anomalyco/tap/opencode
  ```

  > Vi anbefaler å bruke opencode-tappen for de mest oppdaterte utgivelsene. Den offisielle `brew install opencode`-formelen vedlikeholdes av Homebrew-teamet og oppdateres sjeldnere.

- **Bruke Paru på Arch Linux**

  ```bash
  paru -S opencode-bin
  ```

#### Windows

:::tip[Anbefalt: Bruk WSL]
For den beste opplevelsen på Windows anbefaler vi å bruke [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Det gir bedre ytelse og full kompatibilitet med funksjonene i opencode.
:::

- **Bruker sjokolade**

  ```bash
  choco install opencode
  ```

- **Bruke Scoop**

  ```bash
  scoop install opencode
  ```

- **Bruker NPM**

  ```bash
  npm install -g opencode-ai
  ```

- **Bruker Mise**

  ```bash
  mise use -g github:anomalyco/opencode
  ```

- **Bruke Docker**

  ```bash
  docker run -it --rm ghcr.io/anomalyco/opencode
  ```

Støtte for å installere opencode på Windows med Bun pågår for øyeblikket.

Du kan også hente binæren fra [Releases](https://github.com/anomalyco/opencode/releases).

---

## Konfigurer

Med opencode kan du bruke hvilken som helst LLM-leverandør ved å konfigurere deres API-nøkler.

Hvis du er ny til å bruke LLM-leverandører, anbefaler vi å bruke [OpenCode Zen](/docs/zen).
Det er en kuratert liste over modeller som har blitt testet og verifisert av opencode
team.

1. Kjør kommandoen `/connect` i TUI, velg opencode og gå til [opencode.ai/auth](https://opencode.ai/auth).

   ```txt
   /connect
   ```

2. Logg på, legg til faktureringsdetaljene dine og kopier API-nøkkelen.

3. Lim inn API-nøkkelen.

   ```txt
   ┌ API key
   │
   │
   └ enter
   ```

Alternativt kan du velge en av de andre leverandørene. [Finn ut mer](/docs/providers#directory).

---

## Initialiser

Nå som du har konfigurert en leverandør, kan du navigere til et prosjekt som
du vil jobbe med.

```bash
cd /path/to/project
```

Og kjør opencode.

```bash
opencode
```

Deretter initialiserer du opencode for prosjektet ved å kjøre følgende kommando.

```bash frame="none"
/init
```

Dette vil få opencode til å analysere prosjektet ditt og opprette en `AGENTS.md`-fil i
prosjektroten.

:::tip
Du bør overgi prosjektets `AGENTS.md`-fil til Git.
:::

Dette hjelper opencode med å forstå prosjektstrukturen og kodingsmønstrene
brukt.

---

## Bruk

Du er nå klar til å bruke opencode for å jobbe med prosjektet ditt. Spør det gjerne
noe!

Hvis du er ny til å bruke en AI kodeagent, her er noen eksempler som kan
hjelp.

---

### Still spørsmål

Du kan be opencode forklare kodebasen for deg.

:::tip
Bruk `@`-tasten for uklart søk etter filer i prosjektet.
:::

```txt frame="none" "@packages/functions/src/api/index.ts"
How is authentication handled in @packages/functions/src/api/index.ts
```

Dette er nyttig hvis det er en del av kodebasen du ikke har jobbet med.

---

### Legg til funksjoner

Du kan be opencode legge til nye funksjoner i prosjektet ditt. Selv om vi først anbefaler å be den om å lage en plan.

1. **Lag en plan**

   opencode har en _Plan-modus_ som deaktiverer evnen til å gjøre endringer og
   foreslå i stedet _hvordan_ det vil implementere funksjonen.

   Bytt til den ved å bruke **Tab**-tasten. Du vil se en indikator for dette i nedre høyre hjørne.

   ```bash frame="none" title="Switch to Plan mode"
   <TAB>
   ```

   La oss nå beskrive hva vi vil at den skal gjøre.

   ```txt frame="none"
   When a user deletes a note, we'd like to flag it as deleted in the database.
   Then create a screen that shows all the recently deleted notes.
   From this screen, the user can undelete a note or permanently delete it.
   ```

   Du vil gi opencode nok detaljer til å forstå hva du ønsker. Det hjelper
   å snakke med det som om du snakker med en juniorutvikler på laget ditt.

   :::tip
   Gi opencode mye kontekst og eksempler for å hjelpe den å forstå hva du gjør
   ønsker.
   :::

2. **Gjenta på planen**

   Når den gir deg en plan, kan du gi den tilbakemelding eller legge til flere detaljer.

   ```txt frame="none"
   We'd like to design this new screen using a design I've used before.
   [Image #1] Take a look at this image and use it as a reference.
   ```

   :::tip
   Dra og slipp bilder i terminalen for å legge dem til ledeteksten.
   :::

   opencode kan skanne alle bilder du gir den og legge dem til i ledeteksten. Du kan
   gjør dette ved å dra og slippe et bilde inn i terminalen.

3. **Bygg funksjonen**

   Når du føler deg komfortabel med planen, bytt tilbake til _Byggemodus_ av
   trykke på **Tab**-tasten igjen.

   ```bash frame="none"
   <TAB>
   ```

   Og ber den om å gjøre endringene.

   ```bash frame="none"
   Sounds good! Go ahead and make the changes.
   ```

---

### Gjør endringer

For mer enkle endringer kan du be opencode om å bygge den direkte
uten å måtte gjennomgå planen først.

```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts"
We need to add authentication to the /settings route. Take a look at how this is
handled in the /notes route in @packages/functions/src/notes.ts and implement
the same logic in @packages/functions/src/settings.ts
```

Du vil sørge for at du gir en god mengde detaljer, slik at opencode gjør det rette
endringer.

---

### Angre endringer

La oss si at du ber opencode om å gjøre noen endringer.

```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```

Men du skjønner at det ikke er det du ønsket. Du **kan angre** endringene
ved å bruke kommandoen `/undo`.

```bash frame="none"
/undo
```

opencode vil nå tilbakestille endringene du har gjort og vise den opprinnelige meldingen
igjen.

```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```

Herfra kan du justere ledeteksten og be opencode om å prøve igjen.

:::tip
Du kan kjøre `/undo` flere ganger for å angre flere endringer.
:::

Eller du **kan gjøre om** endringene ved å bruke `/redo`-kommandoen.

```bash frame="none"
/redo
```

---

## Del

Samtalene du har med opencode kan [deles med din
team](/docs/share).

```bash frame="none"
/share
```

Dette vil opprette en kobling til den gjeldende samtalen og kopiere den til utklippstavlen.

:::note
Samtaler deles ikke som standard.
:::

Her er en [eksempelsamtale](https://opencode.ai/s/4XP1fce5) med opencode.

---

## Tilpass

Og det er det! Du er nå en proff på å bruke opencode.

For å gjøre det til ditt eget anbefaler vi å [velge et tema](/docs/themes), [tilpasse nøkkelbindingene](/docs/keybinds), [konfigurere kodeformatere](/docs/formatters), [opprette egendefinerte kommandoer](/docs/commands) eller leke med [opencode-konfigurasjonen](/docs/config).
