--- 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** ```bash npm install -g opencode-ai ``` ```bash bun install -g opencode-ai ``` ```bash pnpm install -g opencode-ai ``` ```bash yarn global add opencode-ai ``` - **在 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" ``` 接下來描述您希望它做什麼。 ```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" ``` 然後讓它開始實施。 ```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)。