361 lines
8.5 KiB
Plaintext
361 lines
8.5 KiB
Plaintext
---
|
||
title: Introduktion
|
||
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.
|
||
|
||

|
||
|
||
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.
|
||
|
||
---
|
||
|
||
## Installation
|
||
|
||
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
|
||
sudo pacman -S opencode # Arch Linux (Stable)
|
||
paru -S opencode-bin # Arch Linux (Latest from AUR)
|
||
```
|
||
|
||
#### 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).
|
||
|
||
---
|
||
|
||
## Konfiguration
|
||
|
||
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).
|
||
|
||
---
|
||
|
||
## Initialisering
|
||
|
||
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="Skift til Plan-tilstand"
|
||
<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
|
||
```
|
||
|
||
---
|
||
|
||
## Deling
|
||
|
||
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.
|
||
|
||
---
|
||
|
||
## Tilpasning
|
||
|
||
Og det er det! Du er nu en professionel i at bruge OpenCode.
|
||
|
||
For at gøre det til dit eget, anbefaler vi [at vælge et tema](/docs/themes), [tilpasse genvejstaster](/docs/keybinds), [konfigurere kodeformater](/docs/formatters), [oprette brugerdefinerede kommandoer](/docs/commands) eller at lege med [OpenCode-konfiguration](/docs/config).
|