Buckets:
| --- | |
| 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)。 | |
Xet Storage Details
- Size:
- 7.94 kB
- Xet hash:
- befea381493d5bd2aa9aa69a0daa0322ba8b7ac9815527fe71d834c66a7bd5ee
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.