summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/zh-tw/cli.mdx
blob: 4df9d13fdd8018a8f90e9008c4003418c67f4536 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
---
title: CLI
description: OpenCode CLI 選項和指令。
---

import { Tabs, TabItem } from "@astrojs/starlight/components"

OpenCode CLI 在不帶任何參數執行時,預設啟動 [TUI](/docs/tui)。

```bash
opencode
```

但它也接受本頁面中記錄的指令,使您可以透過程式方式與 OpenCode 進行互動。

```bash
opencode run "Explain how closures work in JavaScript"
```

---

### tui

啟動 OpenCode 終端機使用者介面。

```bash
opencode [project]
```

#### 旗標

| 旗標         | 簡寫 | 說明                                                          |
| ------------ | ---- | ------------------------------------------------------------- |
| `--continue` | `-c` | 繼續上一個工作階段                                            |
| `--session`  | `-s` | 要繼續的工作階段 ID                                           |
| `--fork`     |      | 繼續時分岔工作階段(與 `--continue` 或 `--session` 搭配使用) |
| `--prompt`   |      | 要使用的提示詞                                                |
| `--model`    | `-m` | 要使用的模型,格式為 provider/model                           |
| `--agent`    |      | 要使用的代理                                                  |
| `--port`     |      | 監聽連接埠                                                    |
| `--hostname` |      | 監聽主機名稱                                                  |

---

## 指令

OpenCode CLI 還提供以下指令。

---

### agent

管理 OpenCode 的代理。

```bash
opencode agent [command]
```

---

### attach

將終端機連接到已透過 `serve` 或 `web` 指令啟動的 OpenCode 後端伺服器。

```bash
opencode attach [url]
```

這允許將 TUI 與遠端 OpenCode 後端搭配使用。例如:

```bash
# Start the backend server for web/mobile access
opencode web --port 4096 --hostname 0.0.0.0

# In another terminal, attach the TUI to the running backend
opencode attach http://10.20.30.40:4096
```

#### 旗標

| 旗標        | 簡寫 | 說明                |
| ----------- | ---- | ------------------- |
| `--dir`     |      | 啟動 TUI 的工作目錄 |
| `--session` | `-s` | 要繼續的工作階段 ID |

---

#### create

使用自訂設定建立新的代理。

```bash
opencode agent create
```

此指令將引導您使用自訂系統提示詞和工具設定來建立新的代理。

---

#### list

列出所有可用的代理。

```bash
opencode agent list
```

---

### auth

管理供應商的憑證和登入資訊的指令。

```bash
opencode auth [command]
```

---

#### login

OpenCode 基於 [Models.dev](https://models.dev) 的供應商列表運作,因此您可以使用 `opencode auth login` 為任何想要使用的供應商設定 API 金鑰。金鑰儲存在 `~/.local/share/opencode/auth.json` 中。

```bash
opencode auth login
```

OpenCode 啟動時會從憑證檔案載入供應商資訊,同時也會載入環境變數或專案中 `.env` 檔案中定義的金鑰。

---

#### list

列出憑證檔案中儲存的所有已認證供應商。

```bash
opencode auth list
```

或使用簡寫版本。

```bash
opencode auth ls
```

---

#### logout

從憑證檔案中清除供應商資訊以完成登出。

```bash
opencode auth logout
```

---

### github

管理用於儲存庫自動化的 GitHub 代理。

```bash
opencode github [command]
```

---

#### install

在您的儲存庫中安裝 GitHub 代理。

```bash
opencode github install
```

此指令會設定必要的 GitHub Actions 工作流程並引導您完成設定過程。[了解更多](/docs/github)。

---

#### run

執行 GitHub 代理。通常在 GitHub Actions 中使用。

```bash
opencode github run
```

##### 旗標

| 旗標      | 說明                           |
| --------- | ------------------------------ |
| `--event` | 用於執行代理的 GitHub 模擬事件 |
| `--token` | GitHub 個人存取權杖            |

---

### mcp

管理 Model Context Protocol 伺服器。

```bash
opencode mcp [command]
```

---

#### add

將 MCP 伺服器新增到您的設定中。

```bash
opencode mcp add
```

此指令將引導您新增本地或遠端 MCP 伺服器。

---

#### list

列出所有已設定的 MCP 伺服器及其連線狀態。

```bash
opencode mcp list
```

或使用簡寫版本。

```bash
opencode mcp ls
```

---

#### auth

對支援 OAuth 的 MCP 伺服器進行認證。

```bash
opencode mcp auth [name]
```

如果您不提供伺服器名稱,系統將提示您從可用的支援 OAuth 的伺服器中進行選擇。

您還可以列出支援 OAuth 的伺服器及其認證狀態。

```bash
opencode mcp auth list
```

或使用簡寫版本。

```bash
opencode mcp auth ls
```

---

#### logout

移除 MCP 伺服器的 OAuth 憑證。

```bash
opencode mcp logout [name]
```

---

#### debug

偵錯 MCP 伺服器的 OAuth 連線問題。

```bash
opencode mcp debug <name>
```

---

### models

列出已設定供應商的所有可用模型。

```bash
opencode models [provider]
```

此指令以 `provider/model` 的格式顯示所有已設定供應商中可用的模型。

這對於確定在[設定檔](/docs/config/)中使用的確切模型名稱非常有用。

您可以選擇傳入供應商 ID 來按供應商篩選模型。

```bash
opencode models anthropic
```

#### 旗標

| 旗標        | 說明                                       |
| ----------- | ------------------------------------------ |
| `--refresh` | 從 models.dev 重新整理模型快取             |
| `--verbose` | 使用更詳細的模型輸出(包含費用等中繼資料) |

使用 `--refresh` 旗標可以更新快取的模型列表。當供應商新增了模型並且您希望在 OpenCode 中看到它們時,此功能非常有用。

```bash
opencode models --refresh
```

---

### run

以非互動模式執行 OpenCode,直接傳入提示詞。

```bash
opencode run [message..]
```

這對於指令碼編寫、自動化或無需啟動完整 TUI 即可快速取得答案的情境非常有用。例如:

```bash "opencode run"
opencode run Explain the use of context in Go
```

您還可以連接到正在執行的 `opencode serve` 實例,以避免每次執行時 MCP 伺服器的冷啟動時間:

```bash
# Start a headless server in one terminal
opencode serve

# In another terminal, run commands that attach to it
opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
```

#### 旗標

| 旗標         | 簡寫 | 說明                                                           |
| ------------ | ---- | -------------------------------------------------------------- |
| `--command`  |      | 要執行的指令,使用 message 作為參數                            |
| `--continue` | `-c` | 繼續上一個工作階段                                             |
| `--session`  | `-s` | 要繼續的工作階段 ID                                            |
| `--fork`     |      | 繼續時分岔工作階段(與 `--continue` 或 `--session` 搭配使用)  |
| `--share`    |      | 分享工作階段                                                   |
| `--model`    | `-m` | 要使用的模型,格式為 provider/model                            |
| `--agent`    |      | 要使用的代理                                                   |
| `--file`     | `-f` | 附加到訊息的檔案                                               |
| `--format`   |      | 格式:default(格式化輸出)或 json(原始 JSON 事件)           |
| `--title`    |      | 工作階段標題(未提供值時使用截斷的提示詞)                     |
| `--attach`   |      | 連接到正在執行的 opencode 伺服器(例如 http://localhost:4096) |
| `--port`     |      | 本地伺服器連接埠(預設為隨機連接埠)                           |

---

### serve

啟動無介面的 OpenCode 伺服器以提供 API 存取。查看[伺服器文件](/docs/server)了解完整的 HTTP 介面。

```bash
opencode serve
```

此指令啟動一個 HTTP 伺服器,提供對 OpenCode 功能的 API 存取,無需 TUI 介面。設定 `OPENCODE_SERVER_PASSWORD` 可啟用 HTTP 基本認證(使用者名稱預設為 `opencode`)。

#### 旗標

| 旗標         | 說明                       |
| ------------ | -------------------------- |
| `--port`     | 監聽連接埠                 |
| `--hostname` | 監聽主機名稱               |
| `--mdns`     | 啟用 mDNS 探索             |
| `--cors`     | 允許 CORS 的額外瀏覽器來源 |

---

### session

管理 OpenCode 工作階段。

```bash
opencode session [command]
```

---

#### list

列出所有 OpenCode 工作階段。

```bash
opencode session list
```

##### 旗標

| 旗標          | 簡寫 | 說明                                  |
| ------------- | ---- | ------------------------------------- |
| `--max-count` | `-n` | 限制為最近 N 個工作階段               |
| `--format`    |      | 輸出格式:table 或 json(預設 table) |

---

### stats

顯示 OpenCode 工作階段的 Token 用量和費用統計資訊。

```bash
opencode stats
```

#### 旗標

| 旗標        | 說明                                                 |
| ----------- | ---------------------------------------------------- |
| `--days`    | 顯示最近 N 天的統計資訊(預設為所有時間)            |
| `--tools`   | 顯示的工具數量(預設為全部)                         |
| `--models`  | 顯示模型用量明細(預設隱藏)。傳入數字可顯示前 N 個  |
| `--project` | 按專案篩選(預設為所有專案,傳入空字串表示當前專案) |

---

### export

將工作階段資料匯出為 JSON。

```bash
opencode export [sessionID]
```

如果您不提供工作階段 ID,系統將提示您從可用的工作階段中進行選擇。

---

### import

從 JSON 檔案或 OpenCode 分享連結匯入工作階段資料。

```bash
opencode import <file>
```

您可以從本地檔案或 OpenCode 分享連結匯入。

```bash
opencode import session.json
opencode import https://opncd.ai/s/abc123
```

---

### web

啟動帶有 Web 介面的無介面 OpenCode 伺服器。

```bash
opencode web
```

此指令啟動一個 HTTP 伺服器並開啟瀏覽器,透過 Web 介面存取 OpenCode。設定 `OPENCODE_SERVER_PASSWORD` 可啟用 HTTP 基本認證(使用者名稱預設為 `opencode`)。

#### 旗標

| 旗標         | 說明                       |
| ------------ | -------------------------- |
| `--port`     | 監聽連接埠                 |
| `--hostname` | 監聽主機名稱               |
| `--mdns`     | 啟用 mDNS 探索             |
| `--cors`     | 允許 CORS 的額外瀏覽器來源 |

---

### acp

啟動 ACP(Agent Client Protocol)伺服器。

```bash
opencode acp
```

此指令啟動一個透過 stdin/stdout 使用 nd-JSON 進行通訊的 ACP 伺服器。

#### 旗標

| 旗標         | 說明         |
| ------------ | ------------ |
| `--cwd`      | 工作目錄     |
| `--port`     | 監聽連接埠   |
| `--hostname` | 監聽主機名稱 |

---

### uninstall

解除安裝 OpenCode 並刪除所有相關檔案。

```bash
opencode uninstall
```

#### 旗標

| 旗標            | 簡寫 | 說明                           |
| --------------- | ---- | ------------------------------ |
| `--keep-config` | `-c` | 保留設定檔                     |
| `--keep-data`   | `-d` | 保留工作階段資料和快照         |
| `--dry-run`     |      | 顯示將被刪除的內容但不實際刪除 |
| `--force`       | `-f` | 跳過確認提示                   |

---

### upgrade

將 OpenCode 更新到最新版本或指定版本。

```bash
opencode upgrade [target]
```

更新到最新版本。

```bash
opencode upgrade
```

更新到指定版本。

```bash
opencode upgrade v0.1.48
```

#### 旗標

| 旗標       | 簡寫 | 說明                                       |
| ---------- | ---- | ------------------------------------------ |
| `--method` | `-m` | 使用的安裝方式:curl、npm、pnpm、bun、brew |

---

## 全域旗標

OpenCode CLI 接受以下全域旗標。

| 旗標           | 簡寫 | 說明                                 |
| -------------- | ---- | ------------------------------------ |
| `--help`       | `-h` | 顯示說明資訊                         |
| `--version`    | `-v` | 印出版本號                           |
| `--print-logs` |      | 將日誌輸出到 stderr                  |
| `--log-level`  |      | 日誌等級(DEBUG、INFO、WARN、ERROR) |

---

## 環境變數

OpenCode 可以透過環境變數進行設定。

| 變數                                  | 類型    | 說明                                        |
| ------------------------------------- | ------- | ------------------------------------------- |
| `OPENCODE_AUTO_SHARE`                 | boolean | 自動分享工作階段                            |
| `OPENCODE_GIT_BASH_PATH`              | string  | Windows 上 Git Bash 可執行檔的路徑          |
| `OPENCODE_CONFIG`                     | string  | 設定檔路徑                                  |
| `OPENCODE_TUI_CONFIG`                 | string  | TUI 設定檔路徑                              |
| `OPENCODE_CONFIG_DIR`                 | string  | 設定目錄路徑                                |
| `OPENCODE_CONFIG_CONTENT`             | string  | 內嵌 JSON 設定內容                          |
| `OPENCODE_DISABLE_AUTOUPDATE`         | boolean | 停用自動更新檢查                            |
| `OPENCODE_DISABLE_PRUNE`              | boolean | 停用舊資料清理                              |
| `OPENCODE_DISABLE_TERMINAL_TITLE`     | boolean | 停用自動終端機標題更新                      |
| `OPENCODE_PERMISSION`                 | string  | 內嵌 JSON 權限設定                          |
| `OPENCODE_DISABLE_DEFAULT_PLUGINS`    | boolean | 停用預設外掛程式                            |
| `OPENCODE_DISABLE_LSP_DOWNLOAD`       | boolean | 停用 LSP 伺服器自動下載                     |
| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | 啟用實驗性模型                              |
| `OPENCODE_DISABLE_AUTOCOMPACT`        | boolean | 停用自動上下文壓縮                          |
| `OPENCODE_DISABLE_CLAUDE_CODE`        | boolean | 停用讀取 `.claude`(提示詞 + 技能)         |
| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | 停用讀取 `~/.claude/CLAUDE.md`              |
| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | 停用載入 `.claude/skills`                   |
| `OPENCODE_DISABLE_MODELS_FETCH`       | boolean | 停用從遠端來源擷取模型                      |
| `OPENCODE_FAKE_VCS`                   | string  | 用於測試目的的模擬 VCS 供應商               |
| `OPENCODE_CLIENT`                     | string  | 用戶端識別碼(預設為 `cli`)                |
| `OPENCODE_ENABLE_EXA`                 | boolean | 啟用 Exa 網路搜尋工具                       |
| `OPENCODE_SERVER_PASSWORD`            | string  | 為 `serve`/`web` 啟用基本認證               |
| `OPENCODE_SERVER_USERNAME`            | string  | 覆寫基本認證使用者名稱(預設為 `opencode`) |
| `OPENCODE_MODELS_URL`                 | string  | 自訂模型設定擷取 URL                        |

---

### 實驗性功能

這些環境變數用於啟用可能會變更或移除的實驗性功能。

| 變數                                            | 類型    | 說明                            |
| ----------------------------------------------- | ------- | ------------------------------- |
| `OPENCODE_EXPERIMENTAL`                         | boolean | 啟用所有實驗性功能              |
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY`          | boolean | 啟用圖示探索                    |
| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT`  | boolean | 停用 TUI 中的選取即複製         |
| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number  | bash 指令的預設逾時時間(毫秒) |
| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX`        | number  | LLM 回應的最大輸出 Token 數     |
| `OPENCODE_EXPERIMENTAL_FILEWATCHER`             | boolean | 啟用整個目錄的檔案監看器        |
| `OPENCODE_EXPERIMENTAL_OXFMT`                   | boolean | 啟用 oxfmt 格式化器             |
| `OPENCODE_EXPERIMENTAL_LSP_TOOL`                | boolean | 啟用實驗性 LSP 工具             |
| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER`     | boolean | 停用檔案監看器                  |
| `OPENCODE_EXPERIMENTAL_EXA`                     | boolean | 啟用實驗性 Exa 功能             |
| `OPENCODE_EXPERIMENTAL_LSP_TY`                  | boolean | 為 python 檔案啟用 TY LSP       |
| `OPENCODE_EXPERIMENTAL_MARKDOWN`                | boolean | 啟用實驗性 Markdown 功能        |
| `OPENCODE_EXPERIMENTAL_PLAN_MODE`               | boolean | 啟用計畫模式                    |