mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-01 10:16:37 +00:00
344 lines
7.8 KiB
Plaintext
344 lines
7.8 KiB
Plaintext
---
|
||
title: 簡介
|
||
description: 開始使用 OpenCode。
|
||
---
|
||
|
||
import { Tabs, TabItem } from "@astrojs/starlight/components"
|
||
import config from "../../../../config.mjs"
|
||
export const console = config.console
|
||
|
||
[**OpenCode**](/) 是一個開源的 AI 編碼代理。它提供終端機介面、桌面應用程式和 IDE 擴充功能等多種使用方式。
|
||
|
||

|
||
|
||
讓我們開始吧。
|
||
|
||
---
|
||
|
||
#### 前提條件
|
||
|
||
要在終端機中使用 OpenCode,您需要:
|
||
|
||
1. 一款現代終端機模擬器,例如:
|
||
- [WezTerm](https://wezterm.org),跨平台
|
||
- [Alacritty](https://alacritty.org),跨平台
|
||
- [Ghostty](https://ghostty.org),Linux 和 macOS
|
||
- [Kitty](https://sw.kovidgoyal.net/kitty/),Linux 和 macOS
|
||
|
||
2. 您想使用的 LLM 供應商的 API 金鑰。
|
||
|
||
---
|
||
|
||
## 安裝
|
||
|
||
安裝 OpenCode 最簡單的方法是透過安裝指令碼。
|
||
|
||
```bash
|
||
curl -fsSL https://opencode.ai/install | bash
|
||
```
|
||
|
||
您也可以使用以下方式安裝:
|
||
|
||
- **使用 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>
|
||
|
||
- **在 macOS 和 Linux 上使用 Homebrew**
|
||
|
||
```bash
|
||
brew install anomalyco/tap/opencode
|
||
```
|
||
|
||
> 我們推薦使用 OpenCode tap 以取得最新版本。官方的 `brew install opencode` formula 由 Homebrew 團隊維護,更新頻率較低。
|
||
|
||
- **在 Arch Linux 上安裝**
|
||
|
||
```bash
|
||
sudo pacman -S opencode # Arch Linux (Stable)
|
||
paru -S opencode-bin # Arch Linux (Latest from AUR)
|
||
```
|
||
|
||
#### Windows
|
||
|
||
:::tip[推薦:使用 WSL]
|
||
為了在 Windows 上獲得最佳體驗,我們推薦使用 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl)。它提供更好的效能,並完全相容 OpenCode 的所有功能。
|
||
:::
|
||
|
||
- **使用 Chocolatey**
|
||
|
||
```bash
|
||
choco install opencode
|
||
```
|
||
|
||
- **使用 Scoop**
|
||
|
||
```bash
|
||
scoop install opencode
|
||
```
|
||
|
||
- **使用 NPM**
|
||
|
||
```bash
|
||
npm install -g opencode-ai
|
||
```
|
||
|
||
- **使用 Mise**
|
||
|
||
```bash
|
||
mise use -g github:anomalyco/opencode
|
||
```
|
||
|
||
- **使用 Docker**
|
||
|
||
```bash
|
||
docker run -it --rm ghcr.io/anomalyco/opencode
|
||
```
|
||
|
||
在 Windows 上透過 Bun 安裝 OpenCode 的支援目前正在開發中。
|
||
|
||
您也可以從 [Releases](https://github.com/anomalyco/opencode/releases) 頁面直接下載二進位檔案。
|
||
|
||
---
|
||
|
||
## 設定
|
||
|
||
透過 OpenCode,您可以設定 API 金鑰來使用任意 LLM 供應商。
|
||
|
||
如果您剛開始接觸 LLM 供應商,我們推薦使用 [OpenCode Zen](/docs/zen)。這是一組經過 OpenCode 團隊測試和驗證的精選模型。
|
||
|
||
1. 在 TUI 中執行 `/connect` 指令,選擇 opencode,然後前往 [opencode.ai/auth](https://opencode.ai/auth)。
|
||
|
||
```txt
|
||
/connect
|
||
```
|
||
|
||
2. 登入並新增帳單資訊,然後複製您的 API 金鑰。
|
||
|
||
3. 貼上您的 API 金鑰。
|
||
|
||
```txt
|
||
┌ API key
|
||
│
|
||
│
|
||
└ enter
|
||
```
|
||
|
||
您也可以選擇其他供應商。[了解更多](/docs/providers#directory)。
|
||
|
||
---
|
||
|
||
## 初始化
|
||
|
||
設定好供應商後,導覽到您想要處理的專案目錄。
|
||
|
||
```bash
|
||
cd /path/to/project
|
||
```
|
||
|
||
然後執行 OpenCode。
|
||
|
||
```bash
|
||
opencode
|
||
```
|
||
|
||
接下來,執行以下指令為專案初始化 OpenCode。
|
||
|
||
```bash frame="none"
|
||
/init
|
||
```
|
||
|
||
OpenCode 會分析您的專案並在專案根目錄建立一個 `AGENTS.md` 檔案。
|
||
|
||
:::tip
|
||
您應該將專案的 `AGENTS.md` 檔案提交到 Git。
|
||
:::
|
||
|
||
這有助於 OpenCode 理解專案結構和編碼規範。
|
||
|
||
---
|
||
|
||
## 使用
|
||
|
||
現在您已經準備好使用 OpenCode 來處理專案了,儘管提問吧!
|
||
|
||
如果您是第一次使用 AI 編碼代理,以下範例可能會對您有所幫助。
|
||
|
||
---
|
||
|
||
### 提問
|
||
|
||
您可以讓 OpenCode 為您講解程式碼庫。
|
||
|
||
:::tip
|
||
使用 `@` 鍵可以模糊搜尋專案中的檔案。
|
||
:::
|
||
|
||
```txt frame="none" "@packages/functions/src/api/index.ts"
|
||
How is authentication handled in @packages/functions/src/api/index.ts
|
||
```
|
||
|
||
當您遇到不熟悉的程式碼時,這個功能非常有用。
|
||
|
||
---
|
||
|
||
### 新增功能
|
||
|
||
您可以讓 OpenCode 為專案新增新功能。不過我們建議先讓它制定一個計畫。
|
||
|
||
1. **制定計畫**
|
||
|
||
OpenCode 有一個*計畫模式*,該模式下它不會進行任何修改,而是建議*如何*實作該功能。
|
||
|
||
使用 **Tab** 鍵切換到計畫模式。您會在右下角看到模式指示器。
|
||
|
||
```bash frame="none" title="Switch to Plan mode"
|
||
<TAB>
|
||
```
|
||
|
||
接下來描述您希望它做什麼。
|
||
|
||
```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.
|
||
```
|
||
|
||
您需要提供足夠的細節,讓 OpenCode 理解您的需求。可以把它當作團隊中的一名初級開發者來溝通。
|
||
|
||
:::tip
|
||
為 OpenCode 提供充足的上下文和範例,幫助它理解您的需求。
|
||
:::
|
||
|
||
2. **迭代計畫**
|
||
|
||
當它給出計畫後,您可以提供回饋或補充更多細節。
|
||
|
||
```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
|
||
將圖片拖放到終端機中即可將其新增到提示詞中。
|
||
:::
|
||
|
||
OpenCode 可以掃描您提供的圖片並將其新增到提示詞中。只需將圖片拖放到終端機視窗即可。
|
||
|
||
3. **建置功能**
|
||
|
||
當您對計畫滿意後,再次按 **Tab** 鍵切換回*建置模式*。
|
||
|
||
```bash frame="none"
|
||
<TAB>
|
||
```
|
||
|
||
然後讓它開始實施。
|
||
|
||
```bash frame="none"
|
||
Sounds good! Go ahead and make the changes.
|
||
```
|
||
|
||
---
|
||
|
||
### 直接修改
|
||
|
||
對於比較簡單的修改,您可以直接讓 OpenCode 實施,無需先審查計畫。
|
||
|
||
```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
|
||
```
|
||
|
||
請確保提供足夠的細節,以便 OpenCode 做出正確的修改。
|
||
|
||
---
|
||
|
||
### 復原修改
|
||
|
||
假設您讓 OpenCode 做了一些修改。
|
||
|
||
```txt frame="none" "@packages/functions/src/api/index.ts"
|
||
Can you refactor the function in @packages/functions/src/api/index.ts?
|
||
```
|
||
|
||
但您發現結果不是您想要的。您**可以使用** `/undo` 指令來復原修改。
|
||
|
||
```bash frame="none"
|
||
/undo
|
||
```
|
||
|
||
OpenCode 會還原所做的修改,並重新顯示您之前的訊息。
|
||
|
||
```txt frame="none" "@packages/functions/src/api/index.ts"
|
||
Can you refactor the function in @packages/functions/src/api/index.ts?
|
||
```
|
||
|
||
您可以調整提示詞,讓 OpenCode 重新嘗試。
|
||
|
||
:::tip
|
||
您可以多次執行 `/undo` 來復原多次修改。
|
||
:::
|
||
|
||
您也**可以使用** `/redo` 指令來重做修改。
|
||
|
||
```bash frame="none"
|
||
/redo
|
||
```
|
||
|
||
---
|
||
|
||
## 分享
|
||
|
||
您與 OpenCode 的對話可以[與團隊分享](/docs/share)。
|
||
|
||
```bash frame="none"
|
||
/share
|
||
```
|
||
|
||
這會生成當前對話的連結並複製到剪貼簿。
|
||
|
||
:::note
|
||
對話預設不會被分享。
|
||
:::
|
||
|
||
這是一個與 OpenCode 的[範例對話](https://opencode.ai/s/4XP1fce5)。
|
||
|
||
---
|
||
|
||
## 個人化
|
||
|
||
以上就是全部內容!您現在已經是 OpenCode 的使用高手了。
|
||
|
||
要讓它更符合您的習慣,我們推薦[選擇一個主題](/docs/themes)、[自訂快捷鍵](/docs/keybinds)、[設定程式碼格式化器](/docs/formatters)、[建立自訂指令](/docs/commands),或者探索 [OpenCode 設定](/docs/config)。
|