chore(docs): i18n sync (#15417)
This commit is contained in:
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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`.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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**.
|
||||
|
||||
@@ -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` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user