summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/da
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-28 15:27:11 -0600
committerGitHub <[email protected]>2026-02-28 15:27:11 -0600
commite1e18c7abdb1025d7be63acee1f188b94d16eb9b (patch)
treead14a08aba4752d3ab03452209520c94bb0df59e /packages/web/src/content/docs/da
parent971bd30516fb2b245f87bdf79e36bb64e72265bc (diff)
downloadopencode-e1e18c7abdb1025d7be63acee1f188b94d16eb9b.tar.gz
opencode-e1e18c7abdb1025d7be63acee1f188b94d16eb9b.zip
chore(docs): i18n sync (#15417)
Diffstat (limited to 'packages/web/src/content/docs/da')
-rw-r--r--packages/web/src/content/docs/da/cli.mdx3
-rw-r--r--packages/web/src/content/docs/da/config.mdx15
-rw-r--r--packages/web/src/content/docs/da/custom-tools.mdx26
-rw-r--r--packages/web/src/content/docs/da/keybinds.mdx12
-rw-r--r--packages/web/src/content/docs/da/lsp.mdx5
-rw-r--r--packages/web/src/content/docs/da/plugins.mdx6
-rw-r--r--packages/web/src/content/docs/da/providers.mdx64
-rw-r--r--packages/web/src/content/docs/da/sdk.mdx114
-rw-r--r--packages/web/src/content/docs/da/themes.mdx6
-rw-r--r--packages/web/src/content/docs/da/tui.mdx32
-rw-r--r--packages/web/src/content/docs/da/zen.mdx44
11 files changed, 256 insertions, 71 deletions
diff --git a/packages/web/src/content/docs/da/cli.mdx b/packages/web/src/content/docs/da/cli.mdx
index c29559df2..5eece6fd0 100644
--- a/packages/web/src/content/docs/da/cli.mdx
+++ b/packages/web/src/content/docs/da/cli.mdx
@@ -558,6 +558,7 @@ OpenCode kan konfigureres ved hjælp af miljøvariabler.
| `OPENCODE_AUTO_SHARE` | boolean | Del automatisk session |
| `OPENCODE_GIT_BASH_PATH` | string | Sti til Git Bash eksekverbar på Windows |
| `OPENCODE_CONFIG` | string | Sti til konfigurationsfil |
+| `OPENCODE_TUI_CONFIG` | string | Sti til TUI-konfigurationsfil |
| `OPENCODE_CONFIG_DIR` | string | Sti til konfigurationsmappe |
| `OPENCODE_CONFIG_CONTENT` | string | Indbygget json-konfigurationsindhold |
| `OPENCODE_DISABLE_AUTOUPDATE` | boolean | Deaktiver automatisk opdateringskontrol |
@@ -582,7 +583,7 @@ OpenCode kan konfigureres ved hjælp af miljøvariabler.
---
-### Flag
+### Eksperimentel
Disse miljøvariabler muliggør eksperimentelle funktioner, der kan ændres eller fjernes.
diff --git a/packages/web/src/content/docs/da/config.mdx b/packages/web/src/content/docs/da/config.mdx
index 5b45f8b04..18b462580 100644
--- a/packages/web/src/content/docs/da/config.mdx
+++ b/packages/web/src/content/docs/da/config.mdx
@@ -14,10 +14,11 @@ OpenCode understøtter både **JSON** og **JSONC** (JSON med kommentarer) format
```jsonc title="opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
- // Theme configuration
- "theme": "opencode",
"model": "anthropic/claude-sonnet-4-5",
"autoupdate": true,
+ "server": {
+ "port": 4096,
+ },
}
```
@@ -34,7 +35,7 @@ Konfigurationsfiler **flettes sammen**, erstattes ikke.
Konfigurationsfiler flettes sammen, erstattes ikke. Indstillinger fra følgende konfigurationssteder kombineret. Senere konfigurationer tilsidesætter kun tidligere konfigurationer for modstridende nøgler. Ikke-modstridende indstillinger fra alle konfigurationer bevares.
-For eksempel, hvis dine globale konfigurationssæt `theme: "opencode"` og `autoupdate: true`, og dine projektkonfigurationssæt `model: "anthropic/claude-sonnet-4-5"`, vil den endelige konfiguration integrere alle tre indstillinger.
+For eksempel, hvis dine globale konfigurationssæt `autoupdate: true`, og dine projektkonfigurationssæt `model: "anthropic/claude-sonnet-4-5"`, vil den endelige konfiguration integrere begge indstillinger.
---
@@ -490,13 +491,15 @@ Du kan styre kontekstkomprimeringsadfærd gennem indstillingen `compaction`.
"$schema": "https://opencode.ai/config.json",
"compaction": {
"auto": true,
- "prune": true
+ "prune": true,
+ "reserved": 10000
}
}
```
- `auto` - Komprimer automatisk sessionen, når konteksten er fuld (standard: `true`).
- `prune` - Fjern gamle værktøjsudgange for at gemme tokens (standard: `true`).
+- `reserved` - Tokenbuffer til komprimering. Efterlader nok vindue til at undgå overløb under komprimering
---
@@ -582,8 +585,8 @@ Du kan deaktivere udbydere, der indlæses automatisk gennem `disabled_providers`
Indstillingen `disabled_providers` accepterer en række udbyder-id'er. Når en udbyder er deaktiveret:
-- Det vil ikke blive indlæst, omgivelserne miljøvariabler er indstillet.
-- Den vil ikke blive indlæst, gennem API-nøgler er konfigureret kommandoen `/connect`.
+- Den vil ikke blive indlæst, selvom miljøvariabler er indstillet.
+- Den vil ikke blive indlæst, selvom API-nøgler er konfigureret via `/connect`-kommandoen.
- Udbyderens modeller vises ikke på modelvalgslisten.
---
diff --git a/packages/web/src/content/docs/da/custom-tools.mdx b/packages/web/src/content/docs/da/custom-tools.mdx
index b0839b649..75746dcb4 100644
--- a/packages/web/src/content/docs/da/custom-tools.mdx
+++ b/packages/web/src/content/docs/da/custom-tools.mdx
@@ -79,6 +79,32 @@ Dette skaber værktøjer: `math_add` og `math_multiply`.
---
+#### Navnekollisioner med indbyggede værktøjer
+
+Brugerdefinerede værktøjer er identificeret ved værktøjsnavn. Hvis et brugerdefineret værktøj bruger samme navn som et indbygget værktøj, har det brugerdefinerede værktøj forrang.
+
+For eksempel erstatter denne fil det indbyggede `bash` værktøj:
+
+```ts title=".opencode/tools/bash.ts"
+import { tool } from "@opencode-ai/plugin"
+
+export default tool({
+ description: "Restricted bash wrapper",
+ args: {
+ command: tool.schema.string(),
+ },
+ async execute(args) {
+ return `blocked: ${args.command}`
+ },
+})
+```
+
+:::note
+Foretræk unikke navne, medmindre du bevidst ønsker at erstatte et indbygget værktøj. Hvis du vil deaktivere et indbygget værktøj, men ikke overskrive det, skal du bruge [tilladelser](/docs/permissions).
+:::
+
+---
+
### Argumenter
Du kan bruge `tool.schema`, som kun er [Zod](https://zod.dev), til at definere argumenttyper.
diff --git a/packages/web/src/content/docs/da/keybinds.mdx b/packages/web/src/content/docs/da/keybinds.mdx
index 2da3ff942..9c066fcb4 100644
--- a/packages/web/src/content/docs/da/keybinds.mdx
+++ b/packages/web/src/content/docs/da/keybinds.mdx
@@ -3,11 +3,11 @@ title: Tastebindinger
description: Tilpas dine nøglebindinger.
---
-OpenCode har en liste over nøglebindinger, som du kan tilpasse gennem OpenCode-konfigurationen.
+OpenCode har en liste over nøglebindinger, som du kan tilpasse gennem `tui.json`.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"app_exit": "ctrl+c,ctrl+d,<leader>q",
@@ -117,11 +117,11 @@ Du behøver ikke bruge en ledernøgle til dine nøglebindinger, men vi anbefaler
## Deaktiver tastebinding
-Du kan deaktivere en nøglebinding ved at tilføje nøglen til din konfiguration med værdien "ingen".
+Du kan deaktivere en nøglebinding ved at tilføje nøglen til `tui.json` med værdien "none".
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}
diff --git a/packages/web/src/content/docs/da/lsp.mdx b/packages/web/src/content/docs/da/lsp.mdx
index b0e0d3537..27d43b192 100644
--- a/packages/web/src/content/docs/da/lsp.mdx
+++ b/packages/web/src/content/docs/da/lsp.mdx
@@ -20,13 +20,14 @@ OpenCode leveres med flere indbyggede LSP-servere til populære sprog:
| clojure-lsp | .clj,.cljs,.cljc,.edn | `clojure-lsp` kommando tilgængelig |
| dart | .dart | `dart` kommando tilgængelig |
| deno | .ts,.tsx,.js,.jsx,.mjs | `deno` kommando tilgængelig (auto-detects deno.json/deno.jsonc) |
-| eliksir-ls | .ex,.exs | `elixir` kommando tilgængelig |
+| elixir-ls | .ex,.exs | `elixir` kommando tilgængelig |
| eslint | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts,.vue | `eslint` afhængighed i projekt |
| fsharp | .fs,.fsi,.fsx,.fsscript | `.NET SDK` installere |
| gleam | .gleam | `gleam` kommando tilgængelig |
| gopls | .go | `go` kommando tilgængelig |
| hls | .hs,.lhs | `haskell-language-server-wrapper` kommando tilgængelig |
| jdtls | .java | `Java SDK (version 21+)` installere |
+| julials | .jl | `julia` og `LanguageServer.jl` installeret |
| kotlin-ls | .kt,.kts | Autoinstallationer til Kotlin-projekter |
| lua-ls | .lua | Autoinstallationer til Lua-projekter |
| nixd | .nix | `nixd` kommando tilgængelig |
@@ -46,7 +47,7 @@ OpenCode leveres med flere indbyggede LSP-servere til populære sprog:
| yaml-ls | .yaml,.yml | Autoinstallerer Red Hat yaml-language-server |
| zls | .zig,.zon | `zig` kommando tilgængelig |
-LSP-servere aktiveres automatisk, når en af ​​ovnstående filtypenavne opdages, og kravene er opfyldt.
+LSP-servere aktiveres automatisk, når en af ​​ovenstående filtypenavne opdages, og kravene er opfyldt.
:::note
Du kan deaktivere automatisk LSP-serverdownloads ved at indstille miljøvariablen `OPENCODE_DISABLE_LSP_DOWNLOAD` til `true`.
diff --git a/packages/web/src/content/docs/da/plugins.mdx b/packages/web/src/content/docs/da/plugins.mdx
index a8532d599..908c6e111 100644
--- a/packages/web/src/content/docs/da/plugins.mdx
+++ b/packages/web/src/content/docs/da/plugins.mdx
@@ -119,7 +119,7 @@ Plugin-funktionen modtager:
- `directory`: Den aktuelle arbejdsmappe.
- `worktree`: Git worktree-stien.
- `client`: En opencode SDK klient til interaktion med AI.
-- `-: Buns [shell API](https://bun.com/docs/runtime/shell) til udførelse af kommandoer.
+- `$`: Buns [shell API](https://bun.com/docs/runtime/shell) til udførelse af kommandoer.
---
@@ -308,6 +308,10 @@ export const CustomToolsPlugin: Plugin = async (ctx) => {
Dine tilpassede værktøjer vil være tilgængelige for opencode sammen med indbyggede værktøjer.
+:::note
+Hvis et plugin-værktøj bruger samme navn som et indbygget værktøj, har plugin-værktøjet forrang.
+:::
+
---
### Logning
diff --git a/packages/web/src/content/docs/da/providers.mdx b/packages/web/src/content/docs/da/providers.mdx
index 829ae4613..c5cfe23fa 100644
--- a/packages/web/src/content/docs/da/providers.mdx
+++ b/packages/web/src/content/docs/da/providers.mdx
@@ -81,6 +81,37 @@ Det fungerer som alle andre udbydere i OpenCode og er helt valgfrit at bruge.
---
+## OpenCode Go
+
+OpenCode Go er en billig abonnementsplan, der giver pålidelig adgang til populære åbne kodningsmodeller leveret af OpenCode-teamet, som er testet og verificeret til at fungere godt med OpenCode.
+
+1. Kør kommandoen `/connect` i TUI, vælg `OpenCode Go`, og gå til [opencode.ai/auth](https://opencode.ai/zen).
+
+ ```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
+ ```
+
+4. Kør `/models` i TUI for at se listen over modeller, vi anbefaler.
+
+ ```txt
+ /models
+ ```
+
+Det fungerer som alle andre udbydere i OpenCode og er helt valgfrit at bruge.
+
+---
+
## Katalog
Lad os se på nogle af udbyderne i detaljer. Hvis du vil tilføje en udbyder til listen, er du velkommen til at åbne en PR.
@@ -1474,6 +1505,39 @@ SAP AI Core giver adgang til 40+ modeller fra OpenAI, Anthropic, Google, Amazon,
---
+### STACKIT
+
+STACKIT AI Model Serving leverer fuldt administreret suverænt hostingmiljø til AI-modeller, med fokus på LLM'er som Llama, Mistral og Qwen, med maksimal datasuverænitet på europæisk infrastruktur.
+
+1. Gå til [STACKIT Portal](https://portal.stackit.cloud), naviger til **AI Model Serving**, og opret en auth-token til dit projekt.
+
+ :::tip
+ Du skal have en STACKIT-kundekonto, brugerkonto og projekt, før du opretter auth-tokens.
+ :::
+
+2. Kør kommandoen `/connect` og søg efter **STACKIT**.
+
+ ```txt
+ /connect
+ ```
+
+3. Indtast din STACKIT AI Model Serving auth-token.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Kør kommandoen `/models` for at vælge fra tilgængelige modeller som _Qwen3-VL 235B_ eller _Llama 3.3 70B_.
+
+ ```txt
+ /models
+ ```
+
+---
+
### OVHcloud AI Endpoints
1. Gå til [OVHcloud-panelet](https://ovh.com/manager). Naviger til `Public Cloud`-delen, `AI & Machine Learning` > `AI Endpoints` og i `API Keys`-fanen klikker du på **Opret en ny API-nøgle**.
diff --git a/packages/web/src/content/docs/da/sdk.mdx b/packages/web/src/content/docs/da/sdk.mdx
index 3feff27b3..cde874d5a 100644
--- a/packages/web/src/content/docs/da/sdk.mdx
+++ b/packages/web/src/content/docs/da/sdk.mdx
@@ -117,6 +117,78 @@ try {
---
+## Struktureret output
+
+Du kan anmode om struktureret JSON-output fra modellen ved at angive et `format` med et JSON-skema. Modellen vil bruge et `StructuredOutput`-værktøj til at returnere valideret JSON, der matcher dit skema.
+
+### Grundlæggende brug
+
+```typescript
+const result = await client.session.prompt({
+ path: { id: sessionId },
+ body: {
+ parts: [{ type: "text", text: "Research Anthropic and provide company info" }],
+ format: {
+ type: "json_schema",
+ schema: {
+ type: "object",
+ properties: {
+ company: { type: "string", description: "Company name" },
+ founded: { type: "number", description: "Year founded" },
+ products: {
+ type: "array",
+ items: { type: "string" },
+ description: "Main products",
+ },
+ },
+ required: ["company", "founded"],
+ },
+ },
+ },
+})
+
+// Access the structured output
+console.log(result.data.info.structured_output)
+// { company: "Anthropic", founded: 2021, products: ["Claude", "Claude API"] }
+```
+
+### Outputformat-typer
+
+| Type | Beskrivelse |
+| ------------- | -------------------------------------------------------- |
+| `text` | Standard. Standard tekstsvar (intet struktureret output) |
+| `json_schema` | Returnerer valideret JSON, der matcher det angivne skema |
+
+### JSON-skemaformat
+
+Når du bruger `type: 'json_schema'`, skal du angive:
+
+| Felt | Type | Beskrivelse |
+| ------------ | --------------- | ---------------------------------------------------------- |
+| `type` | `'json_schema'` | Påkrævet. Angiver JSON-skematilstand |
+| `schema` | `object` | Påkrævet. JSON-skemaobjekt, der definerer outputstrukturen |
+| `retryCount` | `number` | Valgfri. Antal valideringsforsøg (standard: 2) |
+
+### Fejlhåndtering
+
+Hvis modellen ikke formår at producere gyldigt struktureret output efter alle forsøg, vil svaret inkludere en `StructuredOutputError`:
+
+```typescript
+if (result.data.info.error?.name === "StructuredOutputError") {
+ console.error("Failed to produce structured output:", result.data.info.error.message)
+ console.error("Attempts:", result.data.info.error.retries)
+}
+```
+
+### Bedste praksis
+
+1. **Giv klare beskrivelser** i dine skemaegenskaber for at hjælpe modellen med at forstå, hvilke data der skal udtrækkes
+2. **Brug `required`** til at angive, hvilke felter der skal være til stede
+3. **Hold skemaer fokuserede** - komplekse indlejrede skemaer kan være sværere for modellen at udfylde korrekt
+4. **Indstil passende `retryCount`** - øg for komplekse skemaer, sænk for enkle
+
+---
+
## API'er
SDK avslører alle server-APIer gjennom en typesikker klient.
@@ -226,27 +298,27 @@ const { providers, default: defaults } = await client.config.providers()
### Sessioner
-| Metode | Beskrivelse | Noter |
-| ---------------------------------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `session.list()` | Liste sessioner | Returnerer <a href={typesUrl}><code>Session[]</code></a> |
-| `session.get({ path })` | Få session | Returnerer <a href={typesUrl}><code>Session</code></a> |
-| `session.children({ path })` | Liste over barnesessioner | Returnerer <a href={typesUrl}><code>Session[]</code></a> |
-| `session.create({ body })` | Opret session | Returnerer <a href={typesUrl}><code>Session</code></a> |
-| `session.delete({ path })` | Slett session | Returnerer `boolean` |
-| `session.update({ path, body })` | Opdater sessionegenskaper | Returnerer <a href={typesUrl}><code>Session</code></a> |
-| `session.init({ path, body })` | Analyser appen og lag `AGENTS.md` | Returnerer `boolean` |
-| `session.abort({ path })` | Avbryt en løpesession | Returnerer `boolean` |
-| `session.share({ path })` | Del sessionen | Returnerer <a href={typesUrl}><code>Session</code></a> |
-| `session.unshare({ path })` | Slutt at dele sessionen | Returnerer <a href={typesUrl}><code>Session</code></a> |
-| `session.summarize({ path, body })` | Oppsummer sessionen | Returnerer `boolean` |
-| `session.messages({ path })` | Liste meldinger i en session | Returnerer `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
-| `session.message({ path })` | Få meldingsdetaljer | Returnerer `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
-| `session.prompt({ path, body })` | Send melding | `body.noReply: true` returnerer UserMessage (kun kontekst). Standard returnerer <a href={typesUrl}><code>AssistantMessage</code></a> med AI svar |
-| `session.command({ path, body })` | Send kommando til session | Returnerer `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
-| `session.shell({ path, body })` | Kjør en shell-kommando | Returnerer <a href={typesUrl}><code>AssistantMessage</code></a> |
-| `session.revert({ path, body })` | Tilbakestill en melding | Returnerer <a href={typesUrl}><code>Session</code></a> |
-| `session.unrevert({ path })` | Gjenopret nulstillete meldinger | Returnerer <a href={typesUrl}><code>Session</code></a> |
-| `postSessionByIdPermissionsByPermissionId({ path, body })` | Svar på en tillatelsesforespørsel | Returnerer `boolean` |
+| Metode | Beskrivelse | Noter |
+| ---------------------------------------------------------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `session.list()` | Liste sessioner | Returnerer <a href={typesUrl}><code>Session[]</code></a> |
+| `session.get({ path })` | Få session | Returnerer <a href={typesUrl}><code>Session</code></a> |
+| `session.children({ path })` | Liste over barnesessioner | Returnerer <a href={typesUrl}><code>Session[]</code></a> |
+| `session.create({ body })` | Opret session | Returnerer <a href={typesUrl}><code>Session</code></a> |
+| `session.delete({ path })` | Slett session | Returnerer `boolean` |
+| `session.update({ path, body })` | Opdater sessionegenskaper | Returnerer <a href={typesUrl}><code>Session</code></a> |
+| `session.init({ path, body })` | Analyser appen og lag `AGENTS.md` | Returnerer `boolean` |
+| `session.abort({ path })` | Avbryt en løpesession | Returnerer `boolean` |
+| `session.share({ path })` | Del sessionen | Returnerer <a href={typesUrl}><code>Session</code></a> |
+| `session.unshare({ path })` | Slutt at dele sessionen | Returnerer <a href={typesUrl}><code>Session</code></a> |
+| `session.summarize({ path, body })` | Oppsummer sessionen | Returnerer `boolean` |
+| `session.messages({ path })` | Liste meldinger i en session | Returnerer `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
+| `session.message({ path })` | Få meldingsdetaljer | Returnerer `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
+| `session.prompt({ path, body })` | Send melding | `body.noReply: true` returnerer UserMessage (kun kontekst). Standard returnerer <a href={typesUrl}><code>AssistantMessage</code></a> med AI svar. Understøtter `body.outputFormat` for [struktureret output](#struktureret-output) |
+| `session.command({ path, body })` | Send kommando til session | Returnerer `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
+| `session.shell({ path, body })` | Kjør en shell-kommando | Returnerer <a href={typesUrl}><code>AssistantMessage</code></a> |
+| `session.revert({ path, body })` | Tilbakestill en melding | Returnerer <a href={typesUrl}><code>Session</code></a> |
+| `session.unrevert({ path })` | Gjenopret nulstillete meldinger | Returnerer <a href={typesUrl}><code>Session</code></a> |
+| `postSessionByIdPermissionsByPermissionId({ path, body })` | Svar på en tillatelsesforespørsel | Returnerer `boolean` |
---
diff --git a/packages/web/src/content/docs/da/themes.mdx b/packages/web/src/content/docs/da/themes.mdx
index 533bef30e..d250e7f02 100644
--- a/packages/web/src/content/docs/da/themes.mdx
+++ b/packages/web/src/content/docs/da/themes.mdx
@@ -61,11 +61,11 @@ Systemtemaet er for brugere som:
## Brug et tema
-Du kan velge et tema ved at hente frem temavalg med kommandoen `/theme`. Eller du kan spesifisere det i [config](/docs/config).
+Du kan velge et tema ved at hente frem temavalg med kommandoen `/theme`. Eller du kan angive det i `tui.json`.
-```json title="opencode.json" {3}
+```json title="tui.json" {3}
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"theme": "tokyonight"
}
```
diff --git a/packages/web/src/content/docs/da/tui.mdx b/packages/web/src/content/docs/da/tui.mdx
index 21cdbe320..c1c0de0fd 100644
--- a/packages/web/src/content/docs/da/tui.mdx
+++ b/packages/web/src/content/docs/da/tui.mdx
@@ -352,24 +352,34 @@ Nogle editorer kræver kommandolinjeargumenter for at køre i blokeringstilstand
## Konfigurer
-Du kan tilpasse TUI-adfærden gennem OpenCode-konfigurationsfilen.
+Du kan tilpasse TUI-adfærd gennem `tui.json` (eller `tui.jsonc`).
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
- "tui": {
- "scroll_speed": 3,
- "scroll_acceleration": {
- "enabled": true
- }
- }
+ "$schema": "https://opencode.ai/tui.json",
+ "theme": "opencode",
+ "keybinds": {
+ "leader": "ctrl+x"
+ },
+ "scroll_speed": 3,
+ "scroll_acceleration": {
+ "enabled": true
+ },
+ "diff_style": "auto"
}
```
+Dette er adskilt fra `opencode.json`, som konfigurerer server-/kørselstidsadfærd.
+
### Indstillinger
-- `scroll_acceleration` - 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: `1`). Standard er `3`. **Bemærk: Dette ignoreres hvis `scroll_acceleration.enabled` er sat til `true`.**
+- `theme` - Indstiller dit brugergrænsefladetema. [Læs mere](/docs/themes).
+- `keybinds` - Tilpasser tastaturgenveje. [Læs mere](/docs/keybinds).
+- `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.
+
+Brug `OPENCODE_TUI_CONFIG` til at indlæse en brugerdefineret TUI-konfigurationssti.
---
diff --git a/packages/web/src/content/docs/da/zen.mdx b/packages/web/src/content/docs/da/zen.mdx
index 128583ad7..e99c626c5 100644
--- a/packages/web/src/content/docs/da/zen.mdx
+++ b/packages/web/src/content/docs/da/zen.mdx
@@ -64,6 +64,7 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints.
| Model | Model ID | Endpoint | AI SDK Pakke |
| ------------------- | ------------------ | -------------------------------------------------- | --------------------------- |
+| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
@@ -73,22 +74,24 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints.
| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
-| Claude Sonnet 4.5 | claude-sonnett-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Sonnet 4 | claude-sonnett-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` |
| Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
| Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
+| MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| MiniMax M2.5 Gratis | minimax-m2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-| MiniMax M2.1 Gratis | minimax-m2.1-free | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-| GLM 4.7 Gratis | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-| Kimi K2.5 Gratis | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 Tenker | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Qwen3-koder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
@@ -117,29 +120,34 @@ Vi støtter en pay-as-you-go-model. Nedenfor er priserne **per 1 million tokens*
| Model | Input | Output | Cached Læs | Cached Skriv |
| --------------------------------- | ------ | ------ | ---------- | ------------ |
| Stor sylteagurk | Gratis | Gratis | Gratis | - |
-| MiniMax M2.1 Gratis | Gratis | Gratis | Gratis | - |
+| MiniMax M2.5 Gratis | Gratis | Gratis | Gratis | - |
+| MiniMax M2.5 | $0,30 | $1,20 | $0,06 | - |
| MiniMax M2.1 | $0,30 | $1,20 | $0,10 | - |
-| GLM 4.7 Gratis | Gratis | Gratis | Gratis | - |
+| GLM 5 | $1,00 | $3,20 | $0,20 | - |
| GLM 4.7 | $0,60 | $2,20 | $0,10 | - |
| GLM 4.6 | $0,60 | $2,20 | $0,10 | - |
-| Kimi K2.5 Gratis | Gratis | Gratis | Gratis | - |
| Kimi K2.5 | $0,60 | $3,00 | $0,08 | - |
| Kimi K2 Tenker | $0,40 | $2,50 | - | - |
| Kimi K2 | $0,40 | $2,50 | - | - |
| Qwen3-koder 480B | $0,45 | $1,50 | - | - |
+| Claude Opus 4.6 (≤ 200K tokens) | $5,00 | $25,00 | $0,50 | $6,25 |
+| Claude Opus 4.6 (> 200K tokens) | $10,00 | $37,50 | $1,00 | $12,50 |
+| Claude Opus 4.5 | $5,00 | $25,00 | $0,50 | $6,25 |
+| Claude Opus 4.1 | $15,00 | $75,00 | $1,50 | $18,75 |
+| Claude Sonnet 4.6 (≤ 200K tokens) | $3,00 | $15,00 | $0,30 | $3,75 |
+| Claude Sonnet 4.6 (> 200K tokens) | $6,00 | $22,50 | $0,60 | $7,50 |
| Claude Sonnet 4.5 (≤ 200K tokens) | $3,00 | $15,00 | $0,30 | $3,75 |
| Claude Sonnet 4.5 (> 200K tokens) | $6,00 | $22,50 | $0,60 | $7,50 |
| Claude Sonnet 4 (≤ 200K tokens) | $3,00 | $15,00 | $0,30 | $3,75 |
| Claude Sonnet 4 (> 200K tokens) | $6,00 | $22,50 | $0,60 | $7,50 |
| Claude Haiku 4.5 | $1,00 | $5,00 | $0,10 | $1,25 |
| Claude Haiku 3.5 | $0,80 | $4,00 | $0,08 | $1,00 |
-| Claude Opus 4.6 (≤ 200K tokens) | $5,00 | $25,00 | $0,50 | $6,25 |
-| Claude Opus 4.6 (> 200K tokens) | $10,00 | $37,50 | $1,00 | $12,50 |
-| Claude Opus 4.5 | $5,00 | $25,00 | $0,50 | $6,25 |
-| Claude Opus 4.1 | $15,00 | $75,00 | $1,50 | $18,75 |
+| Gemini 3.1 Pro (≤ 200K tokens) | $2,00 | $12,00 | $0,20 | - |
+| Gemini 3.1 Pro (> 200K tokens) | $4,00 | $18,00 | $0,40 | - |
| Gemini 3 Pro (≤ 200K tokens) | $2,00 | $12,00 | $0,20 | - |
| Gemini 3 Pro (> 200K tokens) | $4,00 | $18,00 | $0,40 | - |
| Gemini 3 Flash | $0,50 | $3,00 | $0,05 | - |
+| GPT 5.3 Codex | $1,75 | $14,00 | $0,175 | - |
| GPT 5.2 | $1,75 | $14,00 | $0,175 | - |
| GPT 5.2 Codex | $1,75 | $14,00 | $0,175 | - |
| GPT 5.1 | $1,07 | $8,50 | $0,107 | - |
@@ -158,9 +166,7 @@ Kreditkortgebyrer overføres til kostpris (4,4 % + $0,30 per transaktion); vi op
De gratis modeller:
-- GLM 4.7 Gratis er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at samle feedback og forbedre modellen.
-- Kimi K2.5 Gratis er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at samle feedback og forbedre modellen.
-- MiniMax M2.1 Gratis er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at samle feedback og forbedre modellen.
+- MiniMax M2.5 Gratis er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at samle feedback og forbedre modellen.
- Stor sylteagurk er en stealth-model som er gratis på OpenCode i en begrænset periode. Teamet bruger denne tid til at samle feedback og forbedre modellen.
<a href={email}>Kontakt os</a> hvis du har spørgsmål.
@@ -191,9 +197,7 @@ at opkræve dig mere end $20, hvis din saldo går under $5.
Alle vores modeller er hostet i USA. Vores udbydere følger en nul-opbevaringspolitik og bruger ikke dine data til modeltræning, med følgende undtagelser:
- Stor sylteagurk: I løbet af gratisperioden kan indsamlede data bruges til at forbedre modellen.
-- GLM 4.7 Gratis: I løbet af gratisperioden kan indsamlede data bruges til at forbedre modellen.
-- Kimi K2.5 Gratis: I løbet af gratisperioden kan indsamlede data bruges til at forbedre modellen.
-- MiniMax M2.1 Gratis: I løbet af gratisperioden kan indsamlede data bruges til at forbedre modellen.
+- MiniMax M2.5 Gratis: I løbet af gratisperioden kan indsamlede data bruges til at forbedre modellen.
- OpenAI API'er: Anmodninger opbevares i 30 dage i overensstemmelse med [OpenAIs datapolitikker](https://platform.openai.com/docs/guides/your-data).
- Anthropic API'er: Anmodninger opbevares i 30 dage i overensstemmelse med [Anthropics datapolitikker](https://docs.anthropic.com/en/docs/claude-code/data-usage).