---
title: Intro
description: Kom godt i gang med OpenCode.
---

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

[**OpenCode**](/) er en open source AI-kodningsagent. Den er tilgængelig som en terminalbaseret grænseflade, desktop-app eller IDE-udvidelse.

![OpenCode TUI with the opencode theme](../../../assets/lander/screenshot.png)

Lad os komme i gang.

---

#### Forudsætninger

For at bruge OpenCode i din terminal skal du bruge:

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

2. API-nøgler til de LLM udbydere, du vil bruge.

---

## Installationsprogram

Den nemmeste måde at installere OpenCode på er gennem installationsscriptet.

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

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

- **Bruger 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>

- **Brug af Homebrew på macOS og Linux**

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

  > Vi anbefaler at bruge OpenCode-tap for at få de mest opdaterede udgivelser. Den officielle `brew install opencode`-formel vedligeholdes af Homebrew-teamet og opdateret sjældnere.

- **Brug af Paru på Arch Linux**

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

#### Windows

:::tip[Anbefalet: Brug WSL]
For at få den bedste oplevelse på Windows anbefaler vi at bruge [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Det giver bedre ydeevne og fuld kompatibilitet med OpenCodes funktioner.
:::

- **Brug af Chocolatey**

  ```bash
  choco install opencode
  ```

- **Brug af Scoop**

  ```bash
  scoop install opencode
  ```

- **Bruger NPM**

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

- **Brug af Mise**

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

- **Brug af Docker**

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

Support til installation af OpenCode på Windows ved hjælp af Bun er i gang.

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

---

## Konfigurer

Med OpenCode kan du bruge enhver LLM udbyder ved at konfigurere deres API-nøgler.

Hvis du er ny til at bruge LLM-udbydere, anbefaler vi at bruge [OpenCode Zen](/docs/zen).
Det er en udvalgt liste over modeller, der er blevet testet og verificeret af OpenCode
holde.

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

   ```txt
   /connect
   ```

2. Log ind, tilføj dine faktureringsoplysninger, og kopier din API-nøgle.

3. Indsæt din API-nøgle.

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

Alternativt kan du vælge en af ​​de andre udbydere. [Læs mere](/docs/providers#directory).

---

## Initialiser

Nu hvor du har konfigureret en udbyder, kan du navigere til et projekt, der
du vil arbejde på.

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

Og kør OpenCode.

```bash
opencode
```

Derefter initialiseres OpenCode for projektet ved at køre følgende kommando.

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

Dette får OpenCode til at analysere dit projekt og oprette en `AGENTS.md` fil i
projektets rod.

:::tip
Du bør overgive dit projekter `AGENTS.md` fil til Git.
:::

Dette hjælper OpenCode med at forstå projektstrukturen og kodningsmønstrene
brugt.

---

## Brug

Du er nu klar til at bruge OpenCode til at arbejde på dit projekt. Spørg det gerne
noget!

Hvis du er ny til at bruge en AI-kodningsagent, er her nogle eksempler, der evt
hjælp.

---

### Stil spørgsmål

Du kan bede OpenCode om at forklare kodebasen for dig.

:::tip
Brug `@`-tasten til at søge efter filer i projektet.
:::

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

Dette er nyttigt, hvis der er en del af kodebasen, som du ikke har arbejdet på.

---

### Tilføj funktioner

Du kan bede OpenCode om at tilføje nye funktioner til dit projekt. Selvom vi først anbefaler, at du beder den om at lave en plan.

1. **Opret en plan**

   OpenCode har en _Plan mode_, der deaktiverer dens evne til at foretage ændringer og
   foreslå i stedet _hvordan_ det vil implementere funktionen.

   Skift til det ved hjælp af **Tab**-tasten. Du vil se en indikator for dette i nederste højre hjørne.

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

   Lad os nu beskrive, hvad vi vil have den til at gø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 give OpenCode nok detaljer til at forstå, hvad du ønsker. Det hjælper
   at tale med det, som om du taler med en juniorudvikler på dit team.

:::tip
Giv OpenCode masser af kontekst og eksempler for at hjælpe den med at forstå, hvad du
ønsker.
:::

2. **Gentag om planen**

   Når det giver dig en plan, kan du give den feedback eller tilføje 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
Træk og slip billeder i terminalen for at tilføje dem til prompten.
:::

OpenCode kan scanne alle billeder, du giver dem og tilføje dem til prompten. Det kan du
gør dette ved at trække og slippe et billede ind i terminalen.

3. **Byg funktionen**

   Når du føler dig godt tilpas med planen, skal du skifte tilbage til _Byggetilstand_ ved
   trykke på **Tab**-tasten igen.

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

   Og beder den om at foretage ændringerne.

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

---

### Foretag ændringer

For mere ligetil ændringer kan du bede OpenCode om at bygge den direkte
uden at skulle gennemgå 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 sikre dig, at du giver en god mængde detaljer, så OpenCode gør det rigtige
ændringer.

---

### Fortryd ændringer

Lad os sige, at du beder OpenCode om at foretage nogle ændringer.

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

Men du indser, at det ikke er, hvad du ønskede. Du **kan fortryde** ændringerne
ved hjælp af kommandoen `/undo`.

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

OpenCode vil nu vende tilbage til ændringerne, du har foretaget, og vise din oprindelige besked
igen.

```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 prompten og bede OpenCode om at prøve igen.

:::tip
Du kan køre `/undo` flere gange for at fortryde flere ændringer.
:::

Eller du **kan gentage** ændringerne ved hjælp af kommandoen `/redo`.

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

---

## Del

De samtaler, du har med OpenCode, kan [deles med din
team](/docs/share).

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

Dette vil oprette et link til den aktuelle samtale og kopiere det til denne udklipsholder.

:::note
Samtaler dele ikke som standard.
:::

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

---

## Tilpas

Og det er det! Du er nu en professionel i at bruge OpenCode.

For at gøre det til dit eget, anbefaler vi [picking a theme](/docs/themes), [customizing the keybinds](/docs/keybinds), [configuring code formatters](/docs/formatters), [creating custom commands](/docs/commands) eller at lege med [OpenCode config](/docs/config).
