---
title: 簡介
description: 開始使用 OpenCode。
---

import { Tabs, TabItem } from "@astrojs/starlight/components"
import config from "../../../../config.mjs"
export const console = config.console

[**OpenCode**](/) 是一個開源 AI 程式碼代理。它可用作基於終端機的介面、桌面應用程式或 IDE 擴充功能。

![具有 OpenCode 主題的 OpenCode TUI](../../../assets/lander/screenshot.png)

讓我們開始吧。

---

#### 先決條件

要在終端機中使用 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 上使用 Paru**

  ```bash
  sudo pacman -S opencode           # Arch Linux (Stable)
  paru -S opencode-bin              # Arch Linux (Latest from AUR)
  ```

#### Windows

:::tip[建議：使用 WSL]
為了在 Windows 上獲得最佳體驗，我們建議使用[適用於 Linux 的 Windows 子系統 (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
  ```

目前正在支援使用 Bun 在 Windows 上安裝 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)。
