---
title: TUI
description: Brug af OpenCode-terminalbrugergrænsefladen.
---

import { Tabs, TabItem } from "@astrojs/starlight/components"

OpenCode giver en interaktiv terminalgrænseflade eller TUI til at arbejde med dine projekter med en LLM.

At køre OpenCode starter TUI for den nuværende mappe.

```bash
opencode
```

Eller du kan starte den for en bestemt arbejdsmappe.

```bash
opencode /path/to/project
```

Når du er i TUI, kan du spørge den med en besked.

```text
Give me a quick summary of the codebase.
```

---

## Filreferencer

Du kan referere til filer i dine beskeder med `@`. Det laver en fuzzy filsøgning i den nuværende arbejdsmappe.

:::tip
Du kan også bruge `@` til at referere til filer i dine beskeder.
:::

```text "@packages/functions/src/api/index.ts"
How is auth handled in @packages/functions/src/api/index.ts?
```

Indholdet i filen tilføjes automatisk til samtalen.

---

## Bash-kommandoer

Start en besked med `!` for at køre en shell-kommando.

```bash frame="none"
!ls -la
```

Outputtet fra kommandoen tilføjes til samtalen som et værktøjsresultat.

---

## Kommandoer

Når du bruger OpenCode TUI, kan du skrive `/` efterfulgt af et kommandonavn for hurtigt at udføre handlinger. For eksempel:

```bash frame="none"
/help
```

De fleste kommandoer har også genvejstaster som bruger `ctrl+x` som Leader-tast, hvor `ctrl+x` er standard Leader-tast. [Læs mere](/docs/keybinds).

Her er alle tilgængelige skråstregskommandoer:

---

### connect

Tilføj en udbyder til OpenCode. Lader dig vælge fra tilgængelige udbydere og tilføje deres API-nøgler.

```bash frame="none"
/connect
```

---

### compact

Komprimer nuværende session. _Alias_: `/summarize`

```bash frame="none"
/compact
```

**Genvejstast:** `ctrl+x c`

---

### details

Skift visning af værktøjsudførelsesdetaljer.

```bash frame="none"
/details
```

**Genvejstast:** `ctrl+x d`

---

### editor

Åbn eksternt redigeringsprogram for at skrive beskeder. Bruger redigeringsprogrammet i miljøvariablen `EDITOR`. [Læs mere](#editor-setup).

```bash frame="none"
/editor
```

**Genvejstast:** `ctrl+x e`

---

### exit

Afslut OpenCode. _Aliaser_: `/quit`, `/q`

```bash frame="none"
/exit
```

**Genvejstast:** `ctrl+x q`

---

### export

Eksporter nuværende samtale til Markdown og åbn i standardredigeringsprogrammet. Bruger redigeringsprogrammet i miljøvariablen `EDITOR`. [Læs mere](#editor-setup).

```bash frame="none"
/export
```

**Genvejstast:** `ctrl+x x`

---

### help

Vis hjælpedialogen.

```bash frame="none"
/help
```

**Genvejstast:** `ctrl+x h`

---

### init

Opret eller opdater `AGENTS.md`-fil. [Læs mere](/docs/rules).

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

**Genvejstast:** `ctrl+x i`

---

### models

Liste over tilgængelige modeller.

```bash frame="none"
/models
```

**Genvejstast:** `ctrl+x m`

---

### new

Start en ny session. _Alias_: `/clear`

```bash frame="none"
/new
```

**Genvejstast:** `ctrl+x n`

---

### redo

Gentag en tidligere fortrudt besked. Kun tilgængelig efter brug af `/undo`.

:::tip
Eventuelle filændringer vil også blive genoprettet.
:::

Internt bruger dette Git til at administrere filændringerne. Så dit projekt **skal være et Git-depot**.

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

**Genvejstast:** `ctrl+x r`

---

### sessions

List og skift mellem sessioner. _Aliaser_: `/resume`, `/continue`

```bash frame="none"
/sessions
```

**Genvejstast:** `ctrl+x l`

---

### share

Del nuværende session. [Læs mere](/docs/share).

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

**Genvejstast:** `ctrl+x s`

---

### themes

Liste over tilgængelige temaer.

```bash frame="none"
/theme
```

**Genvejstast:** `ctrl+x t`

---

### thinking

Skift synligheden af tænke-/ræsonneringsblokke i samtalen. Når den er aktiveret, kan du se modellens ræsonneringsproces for modeller, som understøtter udvidet tænkning.

:::note
Denne kommando kontrollerer bare om tænkeblokke **vises** - den aktiverer eller deaktiverer ikke modellens ræsonneringsmuligheder. For at skifte mellem faktiske ræsonneringsmuligheder, brug `ctrl+t` for at bladre gennem modelvarianter.
:::

```bash frame="none"
/thinking
```

---

### undo

Fortryd sidste besked i samtalen. Fjerner den sidste brugerbesked, alle efterfølgende svar og eventuelle filændringer.

:::tip
Eventuelle filændringer vil også blive nulstillet.
:::

Internt bruger dette Git til at administrere filændringerne. Så dit projekt **skal være et Git-depot**.

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

**Genvejstast:** `ctrl+x u`

---

### unshare

Ophæv deling af nuværende session. [Læs mere](/docs/share#un-sharing).

```bash frame="none"
/unshare
```

---

## Opsætning af editor

Både kommandoerne `/editor` og `/export` bruger editoren som er specificeret i miljøvariablen `EDITOR`.

<Tabs>
  <TabItem label="Linux/macOS">
    ```bash
    # Example for nano or vim
    export EDITOR=nano
    export EDITOR=vim

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    export EDITOR="code --wait"
    ```

    For at gøre det permanent, tilføj dette til din shellprofil;
    `~/.bashrc`, `~/.zshrc` osv.

  </TabItem>

  <TabItem label="Windows (CMD)">
    ```bash
    set EDITOR=notepad

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    set EDITOR=code --wait
    ```

    For at gøre det permanent, brug **Systemegenskaber** > **Miljøvariabler**.

  </TabItem>

  <TabItem label="Windows (PowerShell)">
    ```powershell
    $env:EDITOR = "notepad"

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    $env:EDITOR = "code --wait"
    ```

    For at gøre det permanent, tilføj dette til din PowerShell-profil.

  </TabItem>
</Tabs>

Populære redigeringsalternativer inkluderer:

- `code` - Visual Studio Code
- `cursor` - Cursor
- `windsurf` - Windsurf
- `nvim` - Neovim-editor
- `vim` - Vim editor
- `nano` - Nano-editor
- `notepad` - Windows Notesblok
- `subl` - Sublime Text

:::note
Nogle editorer som VS Code skal startes med flaget `--wait`.
:::

Nogle editorer kræver kommandolinjeargumenter for at køre i blokeringstilstand. `--wait`-flaget gør at redigeringsprocessen blokeres indtil den lukkes.

---

## Konfigurer

Du kan tilpasse TUI-adfærd gennem `tui.json` (eller `tui.jsonc`).

```json title="tui.json"
{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "opencode",
  "leader_timeout": 2000,
  "keybinds": {
    "leader": "ctrl+x",
    "command_list": "ctrl+p"
  },
  "scroll_speed": 3,
  "scroll_acceleration": {
    "enabled": false
  },
  "diff_style": "auto",
  "mouse": true,
  "attention": {
    "enabled": true,
    "notifications": true,
    "sound": true,
    "volume": 0.4,
    "sound_pack": "opencode.default",
    "sounds": {
      "error": "./sounds/error.mp3"
    }
  }
}
```

Dette er adskilt fra `opencode.json`, som konfigurerer server-/kørselstidsadfærd.

`keybinds` flettes sammen med de indbyggede standarder, så du behøver kun at konfigurere de genveje, du vil ændre.

### Indstillinger

- `theme` - Indstiller dit brugergrænsefladetema. [Læs mere](/docs/themes).
- `keybinds` - Tilpasser tastaturgenveje. [Læs mere](/docs/keybinds).
- `leader_timeout` - Styrer hvor længe OpenCode venter efter leader key. Standard er `2000`.
- `scroll_acceleration.enabled` - Aktiver rulleacceleration i macOS-stil for jævn, naturlig rulning. Når aktiveret, øger rullehastigheden med hurtige rullebevægelser og forbliver præcis for langsommere bevægelser. **Denne indstilling har forrang over `scroll_speed` og tilsidesætter den, når den er aktiveret.**
- `scroll_speed` - Styrer hvor hurtigt TUI ruller, når du bruger rullekommandoer (minimum: `0.001`, understøtter decimalværdier). Standard er `3`. **Bemærk: Dette ignoreres hvis `scroll_acceleration.enabled` er sat til `true`.**
- `diff_style` - Styrer diff-gengivelse. `"auto"` tilpasser sig terminalbredde, `"stacked"` viser altid et enkeltkolonne-layout.
- `mouse` - Aktiverer eller deaktiverer musefangst i TUI (standard: `true`). Når den er deaktiveret, bevares terminalens oprindelige musemarkering og rulning.
- `attention` - Konfigurerer skrivebordsnotifikationer og lyde for TUI. Deaktiveret som standard.

Brug `OPENCODE_TUI_CONFIG` til at indlæse en brugerdefineret TUI-konfigurationssti.

### Attention

Attention lader TUI give dig besked, når OpenCode venter på et svar, kræver godkendelse af en tilladelse, rapporterer en sessionsfejl eller har afsluttet en session. Aktivér det med `attention.enabled`; indbyggede hændelser afspiller en lyd, når de sker. Skrivebordsnotifikationer sendes kun, når terminalvinduet ikke er i fokus, og bruges ikke til subagent-hændelser.

- `enabled` - Aktiverer alle notifikationer og lyde for Attention. Standard er `false`.
- `notifications` - Når Attention er aktiveret, lader dette TUI sende skrivebordsnotifikationer via terminalen. Standard er `true`.
- `sound` - Når Attention er aktiveret, tillader dette advarselslyde. Standard er `true`.
- `volume` - Standard lydstyrke for advarselslyde fra `0` til `1`. Standard er `0.4`.
- `sound_pack` - Sound pack-ID der skal bruges. Standard er `opencode.default`.
- `sounds` - Angiver brugerdefinerede lydfiler for `default`, `question`, `permission`, `error`, `done` eller `subagent_done`. Stier kan være absolutte, `file://` URL'er eller relative til `tui.json`.

---

## Tilpasning

Du kan tilpasse forskellige aspekter af TUI-visningen ved at bruge kommandopaletten (`ctrl+x h` eller `/help`). Disse indstillinger gemmes ved genstart.

---

#### Visning af brugernavn

Skift om dit brugernavn vises i chat-beskeder. Få adgang til dette gennem:

- Kommandopalet: Søg efter "brugernavn" eller "skjul brugernavn"
- Indstillingen gemmes automatisk og vil blive husket over TUI-sessioner
