-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path7.html
More file actions
276 lines (276 loc) · 17.5 KB
/
Copy path7.html
File metadata and controls
276 lines (276 loc) · 17.5 KB
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
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="CodeClub - OpenCode CLI 使用" />
<meta name="author" content="Jackson" />
<title>OpenCode CLI 使用 - CodeClub</title>
<link rel="icon" type="image/x-icon" href="../../img/logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link rel="stylesheet" href="../../css/main.css" />
<link rel="stylesheet" href="../../css/dark-mode.css" />
<link rel="stylesheet" href="../../css/mobile-optimizations.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/12.0.0/marked.min.js"></script>
<style>
.tutorial-page {
max-width: 1200px;
margin: 70px auto 40px;
padding: 0 20px;
display: flex;
gap: 20px;
}
.tutorial-sidebar {
width: 240px;
flex-shrink: 0;
position: sticky;
top: 70px;
max-height: calc(100vh - 90px);
overflow-y: auto;
background: var(--bg-secondary, #fff);
border-radius: 8px;
padding: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.tutorial-sidebar h3 {
font-size: 15px;
margin: 0 0 12px;
color: var(--text-primary, #1a1a2e);
padding-bottom: 8px;
border-bottom: 2px solid var(--primary, #3b82f6);
}
.tutorial-sidebar a {
display: block;
padding: 5px 8px;
color: var(--text-secondary, #666);
text-decoration: none;
font-size: 13px;
border-radius: 4px;
line-height: 1.4;
}
.tutorial-sidebar a:hover {
background: var(--primary, #3b82f6);
color: #fff;
}
.tutorial-sidebar a.active {
background: var(--primary, #3b82f6);
color: #fff;
font-weight: 600;
}
.tutorial-main {
flex: 1;
min-width: 0;
}
.tutorial-article {
background: var(--bg-secondary, #fff);
border-radius: 8px;
padding: 32px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.tutorial-article h1 {
font-size: 26px;
margin-bottom: 16px;
color: var(--text-primary, #1a1a2e);
border-bottom: 2px solid var(--primary, #3b82f6);
padding-bottom: 12px;
}
.markdown-body {
font-size: 15px;
line-height: 1.8;
color: var(--text-secondary, #333);
}
.markdown-body h1 {
font-size: 24px;
border-bottom: 1px solid var(--border, #e5e7eb);
padding-bottom: 8px;
}
.markdown-body h2 {
font-size: 20px;
border-bottom: 1px solid var(--border, #e5e7eb);
padding-bottom: 6px;
}
.markdown-body h3 {
font-size: 17px;
}
.markdown-body pre {
background: #1e1e2e;
color: #cdd6f4;
padding: 16px;
border-radius: 8px;
overflow-x: auto;
}
.markdown-body code {
font-family: 'Fira Code', 'Cascadia Code', monospace;
font-size: 14px;
}
.markdown-body p code {
background: #f1f5f9;
padding: 2px 6px;
border-radius: 4px;
color: #e83e8c;
}
.markdown-body blockquote {
border-left: 4px solid var(--primary, #3b82f6);
padding: 12px 20px;
margin: 16px 0;
background: #f8fafc;
border-radius: 0 8px 8px 0;
}
.markdown-body img {
max-width: 100%;
border-radius: 8px;
}
.markdown-body table {
border-collapse: collapse;
width: 100%;
margin: 16px 0;
}
.markdown-body table th,
.markdown-body table td {
border: 1px solid var(--border, #e5e7eb);
padding: 8px 12px;
text-align: left;
}
.markdown-body table th {
background: var(--bg-primary, #f8fafc);
font-weight: 600;
}
.markdown-body table tr:nth-child(2n) {
background: var(--bg-primary, #f8fafc);
}
.markdown-body ul,
.markdown-body ol {
padding-left: 24px;
margin: 12px 0;
}
.markdown-body li {
margin: 4px 0;
}
.markdown-body hr {
border: none;
border-top: 1px solid var(--border, #e5e7eb);
margin: 24px 0;
}
.markdown-body a {
color: var(--primary, #3b82f6);
text-decoration: none;
}
.markdown-body a:hover {
text-decoration: underline;
}
.page-navigation {
display: flex;
justify-content: space-between;
margin-top: 24px;
padding-top: 16px;
border-top: 1px solid var(--border, #e5e7eb);
}
.page-nav-link {
color: var(--primary, #3b82f6);
text-decoration: none;
font-weight: 500;
font-size: 14px;
}
.page-nav-link:hover {
text-decoration: underline;
}
.source-link {
margin-top: 16px;
font-size: 13px;
color: var(--text-secondary, #999);
}
.source-link a {
color: var(--primary, #3b82f6);
}
@media (max-width: 768px) {
.tutorial-page {
flex-direction: column;
}
.tutorial-sidebar {
width: 100%;
position: static;
max-height: 200px;
}
}
</style>
</head>
<body>
<nav class="navbar">
<div class="navbar-container">
<a class="navbar-brand" href="../../index.html">
<img src="../../img/logo.png" alt="CodeClub" width="32" height="32" />
<span>CodeClub</span>
</a>
<button class="mobile-menu-toggle" aria-label="切换导航菜单"><span></span><span></span><span></span></button>
<ul class="navbar-nav">
<li><a class="nav-link" href="../../index.html">首页</a></li>
<li><a class="nav-link" href="../../nav.html">网址导航</a></li>
<li><a class="nav-link" href="../../blog/">博客</a></li>
<li><a class="nav-link" href="../../wiki/index.html" target="_blank">WiKi</a></li>
<li><a class="nav-link active" href="../index.html">教程</a></li>
<li><a class="nav-link" href="../../book.html">图书</a></li>
<li><a class="nav-link" href="../../contact.html">联系我</a></li>
<li><a class="nav-link" href="../../about.html">关于我</a></li>
</ul>
</div>
</nav>
<div class="tutorial-page">
<div class="tutorial-sidebar">
<h3>📖 OpenCode</h3>
<a href="0.html">OpenCode 教程</a>
<a href="1.html">OpenCode 简介</a>
<a href="2.html">OpenCode 安装</a>
<a href="3.html">OpenCode 配置</a>
<a href="4.html">OpenCode 第一次使用</a>
<a href="5.html">OpenCode VSCode</a>
<a href="6.html">OpenCode 终端界面</a>
<a href="7.html" class="active">OpenCode CLI 使用</a>
<a href="8.html">OpenCode Web 使用</a>
<a href="9.html">OpenCode GitHub</a>
<a href="10.html">OpenCode GitLab</a>
<a href="11.html">OpenCode 工具</a>
<a href="12.html">OpenCode 规则</a>
<a href="13.html">OpenCode 代理</a>
<a href="14.html">OpenCode 主题</a>
<a href="15.html">OpenCode 快捷键</a>
<a href="16.html">OpenCode 自定义命令</a>
<a href="17.html">OpenCode 格式化工具</a>
<a href="18.html">OpenCode 权限配置</a>
<a href="19.html">OpenCode LSP 服务器配置</a>
<a href="20.html">OpenCode MCP 服务器配置</a>
<a href="21.html">OpenCode Skills</a>
<a href="22.html">OpenCode 自定义工具</a>
</div>
<div class="tutorial-main">
<div class="tutorial-article">
<div class="markdown-body" id="md-content"></div>
<div class="page-navigation">
<a href="6.html" class="page-nav-link">← OpenCode 终端界面</a>
<a href="8.html" class="page-nav-link">OpenCode Web 使用 →</a>
</div>
<div class="source-link">原文来源:<a href="https://www.runoob.com" target="_blank">菜鸟教程</a></div>
</div>
</div>
</div>
<footer class="footer">
<div class="footer-content"><p>© 2024 CodeClub. All rights reserved.</p></div>
</footer>
<script src="../../js/dark-mode.js"></script>
<script src="../../js/mobile-menu.js"></script>
<script>
const md = `# OpenCode CLI 使用\n\n\nOpenCode 提供了强大的命令行接口(CLI),不仅可以启动交互式 TUI,还可以通过命令实现自动化、脚本化操作。\n\n\n\n**默认情况下,OpenCode CLI 会启动 TUI,但它的真正能力在于"可编程调用"。**\n\n\n\n**OpenCode CLI 不只是一个命令工具,而是一个可编程的 AI 开发接口。**\n\n\n\n---\n\n\n\n## 一、基础用法\n\n\n\n### 1、启动 TUI(默认行为)\n\n\n\n\`\`\`\n\nopencode\n\n\`\`\`\n\n\n等同于进入交互式终端界面\n\n\n\n\n\n### 2、指定项目目录\n\n\n\n\`\`\`\n\nopencode /path/to/project\n\n\`\`\`\n\n\n在指定目录中启动 TUI\n\n\n\n\n\n### 3、非交互模式(脚本调用)\n\n\n\n\`\`\`\n\nopencode run 解释一下 JavaScript 中闭包的原理\n\n\`\`\`\n\n\n直接返回结果,不进入界面\n\n\n\n\n---\n\n\n\n## 二、CLI 核心能力\n\n\nOpenCode CLI 的核心能力可以总结为三类:\n\n\n\n\n\n\n- **交互模式:**TUI(默认)\n\n- **命令执行:**run / serve\n\n- **系统管理:**agent / auth / session 等\n\n\n\n\n---\n\n\n\n## 三、常用参数(Flags)\n\n\n\n\n\n参数\n简写\n说明\n\n\n\n\n\n--continue\n-c\n继续上一个会话\n\n\n\n--session\n-s\n指定会话 ID\n\n\n\n--fork\n\n从当前会话分叉\n\n\n\n--model\n-m\n指定模型(provider/model)\n\n\n\n--agent\n\n指定代理\n\n\n\n--port\n\n服务端口\n\n\n\n--hostname\n\n监听地址\n\n\n\n\n\n\n---\n\n\n\n## 四、核心命令详解\n\n\n\n### 1、run(最常用)\n\n\n用于非交互执行:\n\n\n\n\n\`\`\`\n\nopencode run 分析这个 Go 项目的上下文使用方式\n\n\`\`\`\n\n\n**适用场景:**\n\n\n\n\n\n\n- 脚本自动化\n\n- CI/CD\n\n- 快速问答\n\n\n\n\n\n### 连接后台服务(避免冷启动)\n\n\n\n\`\`\`\n\n# 启动后台服务\nopencode serve\n\n# 使用 run 连接\nopencode run --attach http://localhost:4096 解释 async/await\n\n\`\`\`\n\n\n\n\n### 常用参数\n\n\n\n\n\n参数\n说明\n\n\n\n\n\n--model\n指定模型\n\n\n\n--file\n附加文件\n\n\n\n--format\n输出格式(json / 默认)\n\n\n\n--share\n分享会话\n\n\n\n\n\n\n## 五、auth(认证管理)\n\n\n\n### 登录\n\n\n\n\`\`\`\n\nopencode auth login\n\n\`\`\`\n\n\n配置 API Key(存储在本地)\n\n\n\n\n---\n\n\n\n### 查看已登录提供商\n\n\n\n\`\`\`\n\nopencode auth list\n\n\`\`\`\n\n\n\n\n### 退出登录\n\n\n\n\`\`\`\n\nopencode auth logout\n\n\`\`\`\n\n\n---\n\n\n## 六、models(模型管理)\n\n\n\n### 查看所有模型\n\n\n\n\`\`\`\n\nopencode models\n\n\`\`\`\n\n\n\n### 按提供商筛选\n\n\n\n\`\`\`\n\nopencode models anthropic\n\n\`\`\`\n\n\n\n### 刷新模型列表\n\n\n\n\`\`\`\n\nopencode models --refresh\n\n\`\`\`\n\n\n\n---\n\n\n\n## 七、agent(代理系统)\n\n\n\n### 创建代理\n\n\n\n\`\`\`\n\nopencode agent create\n\n\`\`\`\n\n\n可自定义提示词 + 工具\n\n\n\n\n### 查看代理\n\n\n\n\`\`\`\n\nopencode agent list\n\n\`\`\`\n\n\n\n---\n\n\n\n## 八、session(会话管理)\n\n\n\n### 查看会话\n\n\n\n\`\`\`\n\nopencode session list\n\n\`\`\`\n\n\n\n### 限制数量\n\n\n\n\`\`\`\n\nopencode session list -n 10\n\n\`\`\`\n\n\n\n---\n\n\n\n## 九、serve(服务模式)\n\n\n启动 API 服务:\n\n\n\n\n\`\`\`\n\nopencode serve\n\n\`\`\`\n\n\n提供 HTTP 接口(无界面)\n\n\n\n**可选参数:**\n\n\n\n\n\n\n- --port:端口\n\n- --hostname:监听地址\n\n\n\n\n---\n\n\n\n## 十、web(Web UI)\n\n\n\n\`\`\`\n\nopencode web\n\n\`\`\`\n\n\n启动带网页界面的版本\n\n\n\n\n---\n\n\n\n## 十一、mcp(扩展能力)\n\n\n\n### 添加 MCP 服务\n\n\n\n\`\`\`\n\nopencode mcp add\n\n\`\`\`\n\n\n\n### 查看列表\n\n\n\n\`\`\`\n\nopencode mcp list\n\n\`\`\`\n\n\nMCP 用于扩展 AI 能力(如工具调用)\n\n\n\n\n---\n\n\n\n## 十二、stats(使用统计)\n\n\n\n\`\`\`\n\nopencode stats\n\n\`\`\`\n\n\n查看 Token 使用量与费用\n\n\n\n\n---\n\n\n\n## 十三、export / import\n\n\n\n### 导出会话\n\n\n\n\`\`\`\n\nopencode export\n\n\`\`\`\n\n\n\n### 导入会话\n\n\n\n\`\`\`\n\nopencode import session.json\n\n\`\`\`\n\n\n\n---\n\n\n\n## 十四、升级与卸载\n\n\n\n### 升级\n\n\n\n\`\`\`\n\nopencode upgrade\n\n\`\`\`\n\n\n\n### 卸载\n\n\n\n\`\`\`\n\nopencode uninstall\n\n\`\`\`\n\n\n\n---\n\n\n\n## 十五、全局参数\n\n\n\n\n\n参数\n说明\n\n\n\n\n\n--help\n查看帮助\n\n\n\n--version\n查看版本\n\n\n\n--log-level\n日志级别\n\n\n\n\n\n\n---\n\n\n\n## 十六、环境变量(高级配置)\n\n\nOpenCode 支持通过环境变量控制行为,例如:\n\n\n\n\n\`\`\`\n\nOPENCODE_DISABLE_AUTOUPDATE=true\nOPENCODE_SERVER_PASSWORD=123456\n\n\`\`\`\n\n\n**常见用途:**\n\n\n\n\n\n\n- 关闭自动更新\n\n- 配置服务认证\n\n- 自定义配置路径\n\n\n\n\n---\n\n\n\n## 十七、使用建议(重点)\n\n\n\n\n\n- 日常开发使用 TUI\n\n- 自动化使用 run\n\n- 复杂任务结合 agent\n\n- 高频调用使用 serve + attach\n\n\n\n \n \n \n \n \n\n \n \n [ OpenCode Web 使用](http://www.runoob.com/opencode/opencode-web.html)\n \n\n \n \n \n \n \n\n\n\n\n \n \n \n### 点我分享笔记\n\n \n \n \n \n \n \n [取消](https://www.runoob.comjavascript:;)\n\n\n \n \n \n \n \n \n\n\n 分享笔记\n \n \n \n \n \n \n\n 昵称昵称 (必填)\n 邮箱邮箱 (必填)\n 引用地址引用地址\n \n\n \n \n \n \n\n \n \n\n\n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n 在线实例\n\n\n ·[HTML 实例](https://www.runoob.com/html/html-examples.html)\n\n\n ·[CSS 实例](https://www.runoob.com/css/css-examples.html)\n\n\n ·[JavaScript 实例](https://www.runoob.com/js/js-examples.html)\n\n\n ·[Ajax 实例](https://www.runoob.com/ajx/ajax-examples.html)\n\n\n ·[jQuery 实例](https://www.runoob.com/jquery/jquery-examples.html)\n\n\n ·[XML 实例](https://www.runoob.com/xml/xml-examples.html)\n\n\n ·[Java 实例](https://www.runoob.com/java/java-examples.html)\n\n\n\n\n\n 字符集&工具\n\n\n · [HTML 字符集设置](https://www.runoob.com/charsets/html-charsets.html)\n\n\n · [HTML ASCII 字符集](https://www.runoob.com/tags/html-ascii.html)\n\n\n · [JS 混淆/加密](https://www.jyshare.com/front-end/6939/)\n\n\n · [PNG/JPEG 图片压缩](https://www.jyshare.com/front-end/6232/)\n\n\n · [HTML 拾色器](https://www.runoob.com/tags/html-colorpicker.html)\n\n\n · [JSON 格式化工具](https://www.jyshare.com/front-end/53)\n\n\n · [随机数生成器](https://www.jyshare.com/front-end/6680/)\n\n\n\n\n 最新更新\n\n\n ·\n [\n OpenCode 自定义... ](http://www.runoob.com/opencode/opencode-custom-tools.html)\n\n\n ·\n [\n OpenCode Skills ](http://www.runoob.com/opencode/opencode-skills.html)\n\n\n ·\n [\n OpenCode MCP 服... ](http://www.runoob.com/opencode/opencode-mcp.html)\n\n\n ·\n [\n OpenCode LSP 服... ](http://www.runoob.com/opencode/opencode-lsp.html)\n\n\n ·\n [\n OpenCode 权限配置 ](http://www.runoob.com/opencode/opencode-permissions.html)\n\n\n ·\n [\n OpenCode 格式化... ](http://www.runoob.com/opencode/opencode-formatter.html)\n\n\n ·\n [\n OpenCode 自定义... ](http://www.runoob.com/opencode/opencode-commands.html)\n\n\n\n\n 站点信息\n\n\n ·\n [意见反馈](https://www.runoob.commailto:admin@runoob.com)\n\n\n ·\n [免责声明](https://www.runoob.com/disclaimer)\n\n\n ·\n [关于我们](https://www.runoob.com/aboutus)\n\n\n ·\n [文章归档](https://www.runoob.com/archives)\n\n\n\n\n\n\n\n **关注微信**\n\n\n\n \n\n\n\n\n\n\n Copyright © 2013-2026 **[菜鸟教程](https://www.runoob.com//www.runoob.com/)** \n **[runoob.com](https://www.runoob.com//www.runoob.com/)** All Rights Reserved. 备案号:[闽ICP备15012807号-1](https://beian.miit.gov.cn/)\n\n\n\n [ ](https://www.runoob.comjavascript:void(0))\n [](https://www.runoob.comjavascript:void(0))\n [](https://www.runoob.comjavascript:void(0))\n\n\n\n#### 微信关注\n\n `;
document.getElementById('md-content').innerHTML = marked.parse(md);
</script>
</body>
</html>