cli.mdx 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603
  1. ---
  2. title: 命令行界面
  3. description: opencode CLI 选项和命令。
  4. ---
  5. import { Tabs, TabItem } from "@astrojs/starlight/components"
  6. 默认情况下,opencode CLI 在不带任何参数运行时启动[途径易](/docs/tui)。
  7. ```bash
  8. opencode
  9. ```
  10. 但它也接受允许本页记录的命令。这您以Smashing方式与opencode交互。
  11. ```bash
  12. opencode run "Explain how closures work in JavaScript"
  13. ```
  14. ---
  15. ### 推
  16. 启动opencode用户终端界面。
  17. ```bash
  18. opencode [project]
  19. ```
  20. #### 旗幟
  21. | 旗幟 | 短 | 描述 |
  22. | ------------ | ---- | --------------------------------------------------------- |
  23. | `--continue` | `-c` | 继续上期 |
  24. | `--session` | `-s` | 会话 ID 继续 |
  25. | `--fork` | | 继续时分叉会话(与 `--continue` 或 `--session` 一起使用) |
  26. | `--prompt` | | 提示使用 |
  27. | `--model` | `-m` | 以提供商/模型形式使用的模型 |
  28. | `--agent` | | 代理使用 |
  29. | `--port` | | 监听端口 |
  30. | `--hostname` | | 监听的主机名 |
  31. ---
  32. ## 命令
  33. opencode CLI 还具有以下命令。
  34. ---
  35. ### 代理人
  36. 管理 opencode 代理。
  37. ```bash
  38. opencode agent [command]
  39. ```
  40. ---
  41. ### 附
  42. 将终端通过 `serve` 或 `web` 命令启动已运行的 opencode 耳机服务器。
  43. ```bash
  44. opencode attach [url]
  45. ```
  46. 这允许将 TUI 与远程 opencode 钱包一起使用。例如:
  47. ```bash
  48. # Start the backend server for web/mobile access
  49. opencode web --port 4096 --hostname 0.0.0.0
  50. # In another terminal, attach the TUI to the running backend
  51. opencode attach http://10.20.30.40:4096
  52. ```
  53. #### 旗幟
  54. | 旗幟 | 短 | 描述 |
  55. | ----------- | ---- | ------------------- |
  56. | `--dir` | | 启动 TUI 的工作目录 |
  57. | `--session` | `-s` | 会话 ID 继续 |
  58. ---
  59. #### 创建
  60. 使用自定義配置创建新代理。
  61. ```bash
  62. opencode agent create
  63. ```
  64. 此命令将指導您使用自定義系統提示和工具配置创建新代理。
  65. ---
  66. #### 列表
  67. 列出所有可用的代理。
  68. ```bash
  69. opencode agent list
  70. ```
  71. ---
  72. ### 授權
  73. 用于管理提供商的憑據和登錄的命令。
  74. ```bash
  75. opencode auth [command]
  76. ```
  77. ---
  78. #### 登录
  79. opencode 由 [Models.dev](https://models.dev) 上的模型列表提供支持,因此您可以使用 `opencode auth login` 来为您想要使用的任何模型配置 API 按键。它存储在 `~/.local/share/opencode/auth.json` 中。
  80. ```bash
  81. opencode auth login
  82. ```
  83. 当opencode启动时,它会从auth 文件加载提供商。如果您的环境中定义了任何按键或项目中的`.env`文件。
  84. ---
  85. #### 列表
  86. 列出憑證文件中存儲的所有經过身份验证的提供商。
  87. ```bash
  88. opencode auth list
  89. ```
  90. 或者簡短的版本。
  91. ```bash
  92. opencode auth ls
  93. ```
  94. ---
  95. #### 註銷
  96. 通过從憑據文件中清除提供商,将您從提供商中註銷。
  97. ```bash
  98. opencode auth logout
  99. ```
  100. ---
  101. ### github
  102. 管理 GitHub 代理以实现存储库自动化。
  103. ```bash
  104. opencode github [command]
  105. ```
  106. ---
  107. #### 安装
  108. 在您的存储库中安装 GitHub 代理。
  109. ```bash
  110. opencode github install
  111. ```
  112. 这将设置必要的 GitHub Actions 工作流程并指导您完成配置过程。 [了解更多](/docs/github)。
  113. ---
  114. #### 跑步
  115. 运行 GitHub 代理。这通常用在 GitHub Actions 中。
  116. ```bash
  117. opencode github run
  118. ```
  119. ##### 旗幟
  120. | 旗幟 | 描述 |
  121. | --------- | ------------------------------ |
  122. | `--event` | 用于运行代理的 GitHub 模拟事件 |
  123. | `--token` | GitHub 个人访问Tokens |
  124. ---
  125. ### MCP
  126. 管理模型上下文協議服務器。
  127. ```bash
  128. opencode mcp [command]
  129. ```
  130. ---
  131. #### 添加
  132. 将 MCP 服务器添加到您的配置中。
  133. ```bash
  134. opencode mcp add
  135. ```
  136. 此命令将指导您添加本地或远程 MCP 服务器。
  137. ---
  138. #### 列表
  139. 列出所有已配置的 MCP 服务器及其连接状态。
  140. ```bash
  141. opencode mcp list
  142. ```
  143. 或者使用簡短版本。
  144. ```bash
  145. opencode mcp ls
  146. ```
  147. ---
  148. #### 授權
  149. 使用启用 OAuth 的 MCP 服务器进行身份验证。
  150. ```bash
  151. opencode mcp auth [name]
  152. ```
  153. 如果您不提供服务器名称,系统将提示您从可用的支持 OAuth 的服务器中进行选择。
  154. 您还可以开始支持 OAuth 的及其服务器身份验证状态。
  155. ```bash
  156. opencode mcp auth list
  157. ```
  158. 或者使用簡短版本。
  159. ```bash
  160. opencode mcp auth ls
  161. ```
  162. ---
  163. #### 註銷
  164. 删除 MCP 服务器的 OAuth 工具。
  165. ```bash
  166. opencode mcp logout [name]
  167. ```
  168. ---
  169. #### 偵錯
  170. 调试MCP服务器的OAuth连接问题。
  171. ```bash
  172. opencode mcp debug <name>
  173. ```
  174. ---
  175. ### 模型
  176. 列出已配置提供商的所有可用模型。
  177. ```bash
  178. opencode models [provider]
  179. ```
  180. 此命令以 `provider/model` 格式显示您配置的提供商中可用的所有模型。
  181. 这对于确定[你的配置](/docs/config/)中使用的意图模型名称很有帮助。
  182. 您可以选择提供项目ID并按该提供项目筛选模型。
  183. ```bash
  184. opencode models anthropic
  185. ```
  186. #### 旗幟
  187. | 旗幟 | 描述 |
  188. | ----------- | ---------------------------------------- |
  189. | `--refresh` | 从 models.dev 刷新模型缓存 |
  190. | `--verbose` | 使用更详细的模型输出(包括成本等元数据) |
  191. 使用`--refresh`标志来更新服务器的模型列表。当新模型已添加到提供商并且您希望在opencode中查看它们时,这非常有用。
  192. ```bash
  193. opencode models --refresh
  194. ```
  195. ---
  196. ### 跑步
  197. 通过直接传递提示以非交互模式运行 opencode。
  198. ```bash
  199. opencode run [message..]
  200. ```
  201. 这对于编写脚本、自动化,或者当您想要快速获得答案而不是完整的 TUI 时非常有用。例如。
  202. ```bash "opencode run"
  203. opencode run Explain the use of context in Go
  204. ```
  205. 您还可以添加到正在运行的`opencode serve`实例,会员每次运行时MCP服务器冷启动时间:
  206. ```bash
  207. # Start a headless server in one terminal
  208. opencode serve
  209. # In another terminal, run commands that attach to it
  210. opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
  211. ```
  212. #### 旗幟
  213. | 旗幟 | 短 | 描述 |
  214. | ------------ | ---- | --------------------------------------------------------------- |
  215. | `--command` | | 要运行的命令,使用消息作为参数 |
  216. | `--continue` | `-c` | 继续上期 |
  217. | `--session` | `-s` | 会话 ID 继续 |
  218. | `--fork` | | 继续时分叉会话(与 `--continue` 或 `--session` 一起使用) |
  219. | `--share` | | 分享会议 |
  220. | `--model` | `-m` | 以提供商/模型形式使用的模型 |
  221. | `--agent` | | 代理使用 |
  222. | `--file` | `-f` | 要附加到消息的文件 |
  223. | `--format` | | 格式:默认(格式化)或json(原始JSON事件) |
  224. | `--title` | | 会话标题(如果未提供值,则使用断断的提示) |
  225. | `--attach` | | 连接到正在运行的 opencode 服务器(例如,http://localhost:4096) |
  226. | `--port` | | 本地服务器的端口(默认为随机端口) |
  227. ---
  228. ### 服務
  229. 启动无头opencode服务器以进行API访问。查看[服务器文档](/docs/server)以获取完整的HTTP 接口。
  230. ```bash
  231. opencode serve
  232. ```
  233. 这将启动一个 HTTP 服务器,该服务器提供对 opencode 功能的 API 访问,并占用 TUI 接口。设置 `OPENCODE_SERVER_PASSWORD` 以启用 HTTP 基本身份验证(用户名默认为 `opencode`)。
  234. #### 旗幟
  235. | 旗幟 | 描述 |
  236. | ------------ | ------------------------ |
  237. | `--port` | 监听端口 |
  238. | `--hostname` | 监听的主机名 |
  239. | `--mdns` | 启用 mDNS 发现 |
  240. | `--cors` | 允许 CORS 的其他浏览器源 |
  241. ---
  242. ### 会话
  243. 管理 opencode 会话。
  244. ```bash
  245. opencode session [command]
  246. ```
  247. ---
  248. #### 列表
  249. 列出所有 opencode 会话。
  250. ```bash
  251. opencode session list
  252. ```
  253. ##### 旗幟
  254. | 旗幟 | 短 | 描述 |
  255. | ------------- | ---- | ------------------------------ |
  256. | `--max-count` | `-n` | 限制为最近的 N 个会话 |
  257. | `--format` | | 输出格式:table 或 json(table) |
  258. ---
  259. ### 統計數據
  260. 显示opencode会话的Tokens使用情况和成本统计信息。
  261. ```bash
  262. opencode stats
  263. ```
  264. #### 旗幟
  265. | 旗幟 | 描述 |
  266. | ----------- | -------------------------------------------------------- |
  267. | `--days` | 显示过去N天(所有时间)的统计数据 |
  268. | `--tools` | 显示工具数量(全部) |
  269. | `--models` | 隐藏显示模型使用情况解读(默认)。输入一个数字来显示前 N |
  270. | `--project` | 按项目过滤(所有项目,空字符串:当前项目) |
  271. ---
  272. ### 出口
  273. 将会话数据导出为JSON。
  274. ```bash
  275. opencode export [sessionID]
  276. ```
  277. 如果您不提供会话 ID,系统将提示您从可用的会话中进行选择。
  278. ---
  279. ### 進口
  280. 从 JSON 文件或 opencode 共享 URL 导入会话数据。
  281. ```bash
  282. opencode import <file>
  283. ```
  284. 您可以从本地文件或 opencode 共享 URL 导入。
  285. ```bash
  286. opencode import session.json
  287. opencode import https://opncd.ai/s/abc123
  288. ```
  289. ---
  290. ### 網絡
  291. 使用Web界面启动无头opencode服务器。
  292. ```bash
  293. opencode web
  294. ```
  295. 这将启动HTTP服务器并打开Web浏览器以通过Web界面访问opencode。设置`OPENCODE_SERVER_PASSWORD`以启用HTTP基本身份验证(用户名默认为`opencode`)。
  296. #### 旗幟
  297. | 旗幟 | 描述 |
  298. | ------------ | ------------------------ |
  299. | `--port` | 监听端口 |
  300. | `--hostname` | 监听的主机名 |
  301. | `--mdns` | 启用 mDNS 发现 |
  302. | `--cors` | 允许 CORS 的其他浏览器源 |
  303. ---
  304. ### 丙烯酰胺
  305. 启动ACP(代理客户端协议)服务器。
  306. ```bash
  307. opencode acp
  308. ```
  309. 此启动一个ACP服务器,该服务器使用nd-JSON通过stdin/stdout进行通信命令。
  310. #### 旗幟
  311. | 旗幟 | 描述 |
  312. | ------------ | ------------ |
  313. | `--cwd` | 工作目录 |
  314. | `--port` | 监听端口 |
  315. | `--hostname` | 监听的主机名 |
  316. ---
  317. ### 解除安装
  318. 卸载opencode并删除所有相关文件。
  319. ```bash
  320. opencode uninstall
  321. ```
  322. #### 旗幟
  323. | 旗幟 | 短 | 描述 |
  324. | --------------- | ---- | -------------------------------- |
  325. | `--keep-config` | `-c` | 保留配置文件 |
  326. | `--keep-data` | `-d` | 保留会话数据和快照 |
  327. | `--dry-run` | | 在显示不删除的情况下将删除的内容 |
  328. | `--force` | `-f` | 跳过确认提示 |
  329. ---
  330. ### 升級
  331. 将 opencode 更新到最新版本或特定版本。
  332. ```bash
  333. opencode upgrade [target]
  334. ```
  335. 升級到最新版本。
  336. ```bash
  337. opencode upgrade
  338. ```
  339. 升級到特定版本。
  340. ```bash
  341. opencode upgrade v0.1.48
  342. ```
  343. #### 旗幟
  344. | 旗幟 | 短 | 描述 |
  345. | ---------- | ---- | ------------------------------------------ |
  346. | `--method` | `-m` | 使用的安装方法;卷曲、npm、pnpm、bun、brew |
  347. ---
  348. ## 全球旗幟
  349. opencode CLI采用以下全局标志。
  350. | 旗幟 | 短 | 描述 |
  351. | -------------- | ---- | ---------------------------------- |
  352. | `--help` | `-h` | 显示帮助 |
  353. | `--version` | `-v` | 打印版本号 |
  354. | `--print-logs` | | 将日志打印到stderr |
  355. | `--log-level` | | 日志级别(调试、信息、警告、错误) |
  356. ---
  357. ## 環境變量
  358. 可以使用环境变量配置opencode。
  359. | 變量 | 類型 | 描述 |
  360. | ------------------------------------- | ------ | ---------------------------------------- |
  361. | `OPENCODE_AUTO_SHARE` | 布尔 | 自动共享会话 |
  362. | `OPENCODE_GIT_BASH_PATH` | 字符串 | Windows 上 Git Bash 可执行文件的路径 |
  363. | `OPENCODE_CONFIG` | 字符串 | 配置文件路径 |
  364. | `OPENCODE_CONFIG_DIR` | 字符串 | 配置目录的路径 |
  365. | `OPENCODE_CONFIG_CONTENT` | 字符串 | 内联 json 配置内容 |
  366. | `OPENCODE_DISABLE_AUTOUPDATE` | 布尔 | 取消自动更新检查 |
  367. | `OPENCODE_DISABLE_PRUNE` | 布尔 | 取消数据的裁剪 |
  368. | `OPENCODE_DISABLE_TERMINAL_TITLE` | 布尔 | 取消自动终端标题更新 |
  369. | `OPENCODE_PERMISSION` | 字符串 | 内联 json 权限配置 |
  370. | `OPENCODE_DISABLE_DEFAULT_PLUGINS` | 布尔 | 取消默认插件 |
  371. | `OPENCODE_DISABLE_LSP_DOWNLOAD` | 布尔 | 禁用自动 LSP 服务器下载 |
  372. | `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | 布尔 | 制作实验模型 |
  373. | `OPENCODE_DISABLE_AUTOCOMPACT` | 布尔 | 取消自动上下文压缩 |
  374. | `OPENCODE_DISABLE_CLAUDE_CODE` | 布尔 | 禁止从 `.claude` 读取(提示+技巧) |
  375. | `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | 布尔 | 禁用读取`~/.claude/CLAUDE.md` |
  376. | `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | 布尔 | 禁用加载`.claude/skills` |
  377. | `OPENCODE_DISABLE_MODELS_FETCH` | 布尔 | 禁止从远程源获取模型 |
  378. | `OPENCODE_FAKE_VCS` | 字符串 | 用于测试目的的假 VCS 成立 |
  379. | `OPENCODE_DISABLE_FILETIME_CHECK` | 布尔 | 取消文件时间检查以进行优化 |
  380. | `OPENCODE_CLIENT` | 字符串 | 客户端标识符(默认为`cli`) |
  381. | `OPENCODE_ENABLE_EXA` | 布尔 | 启用 Exa 网络搜索工具 |
  382. | `OPENCODE_SERVER_PASSWORD` | 字符串 | 为 `serve`/`web` 赠送基本身份验证 |
  383. | `OPENCODE_SERVER_USERNAME` | 字符串 | 覆盖基本身份验证用户名(默认`opencode`) |
  384. | `OPENCODE_MODELS_URL` | 字符串 | 用于获取模型配置的自定义 URL |
  385. ---
  386. ### 實驗性的
  387. 这些環境變量启用可能会更改或删除的實驗性功能。
  388. | 變量 | 類型 | 描述 |
  389. | ----------------------------------------------- | ---- | ----------------------------------- |
  390. | `OPENCODE_EXPERIMENTAL` | 布尔 | 实现所有实验性功能 |
  391. | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | 布尔 | 添加图标发现 |
  392. | `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | 布尔 | 在 TUI 中禁用选择时复制 |
  393. | `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | 数量 | bash 命令的默认超时(以毫秒为单位) |
  394. | `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | 数量 | LLM 响应的最大输出Tokens |
  395. | `OPENCODE_EXPERIMENTAL_FILEWATCHER` | 布尔 | 为整个目录启用文件观察器 |
  396. | `OPENCODE_EXPERIMENTAL_OXFMT` | 布尔 | 启用 oxfmt 清理程序 |
  397. | `OPENCODE_EXPERIMENTAL_LSP_TOOL` | 布尔 | 实现实验性 LSP 工具 |
  398. | `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | 布尔 | 禁用文件观察器 |
  399. | `OPENCODE_EXPERIMENTAL_EXA` | 布尔 | 实现实验性Exa功能 |
  400. | `OPENCODE_EXPERIMENTAL_LSP_TY` | 布尔 | 实现实验性 LSP 类型检查 |
  401. | `OPENCODE_EXPERIMENTAL_MARKDOWN` | 布尔 | 实现实验性 Markdown 功能 |
  402. | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | 布尔 | 启用计划模式 |