dimcode 0.0.67 → 0.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +304 -0
- package/package.json +6 -6
package/README.md
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
# dimcode
|
|
2
|
+
|
|
3
|
+
> 你的终端 AI 伙伴。在命令行里聊聊天、跑任务、让工作流自动化一点。
|
|
4
|
+
|
|
5
|
+
`dimcode` 是一个 AI coding agent CLI,提供交互式 TUI 界面和一次性任务执行模式。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 安装
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# beta channel(当前推荐)
|
|
13
|
+
npm i -g dimcode@beta
|
|
14
|
+
|
|
15
|
+
# 或者用 bun / pnpm
|
|
16
|
+
bun add -g dimcode@beta
|
|
17
|
+
pnpm add -g dimcode@beta
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
安装完成后会得到两个等价命令:`dim` 和 `dimcode`。
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
dim --version
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
> 安装时 npm 会根据当前平台自动拉取对应的二进制子包(`dimcode-darwin-arm64`、`dimcode-linux-x64` 等),不需要手动选择。
|
|
27
|
+
|
|
28
|
+
### 支持的平台
|
|
29
|
+
|
|
30
|
+
| 平台 | 子包 |
|
|
31
|
+
|---|---|
|
|
32
|
+
| macOS (Apple Silicon) | `dimcode-darwin-arm64` |
|
|
33
|
+
| macOS (Intel) | `dimcode-darwin-x64` |
|
|
34
|
+
| Linux (x64) | `dimcode-linux-x64` |
|
|
35
|
+
| Linux (ARM64) | `dimcode-linux-arm64` |
|
|
36
|
+
| Windows (x64) | `dimcode-windows-x64` |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 快速开始
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# 启动交互式界面,和 AI 聊聊天
|
|
44
|
+
dim
|
|
45
|
+
|
|
46
|
+
# 一次性执行,不用进界面
|
|
47
|
+
dim exec "把 auth 模块重构为 JWT 方案"
|
|
48
|
+
|
|
49
|
+
# 查看版本
|
|
50
|
+
dim --version
|
|
51
|
+
|
|
52
|
+
# 查看帮助
|
|
53
|
+
dim --help
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
第一次启动会引导你连接一个模型提供商(OpenAI、Anthropic 或自定义 endpoint)。
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 命令速查
|
|
61
|
+
|
|
62
|
+
| 命令 | 说明 |
|
|
63
|
+
|---|---|
|
|
64
|
+
| `dim` | 启动交互式 TUI 界面(默认) |
|
|
65
|
+
| `dim exec "<提示词>"` | 在后台执行单条提示,不用进界面 |
|
|
66
|
+
| `dim session list` | 列出已保存的会话 |
|
|
67
|
+
| `dim session rm <id>` | 删除指定会话 |
|
|
68
|
+
| `dim provider list` | 查看已配置的模型提供商 |
|
|
69
|
+
| `dim provider add <id> --api-key <密钥>` | 添加提供商(如 `openai`) |
|
|
70
|
+
| `dim provider switch <id>` | 切换当前使用的提供商 |
|
|
71
|
+
| `dim provider refresh-models` | 从提供商刷新模型列表 |
|
|
72
|
+
| `dim mcp list` | 查看 MCP 服务器列表 |
|
|
73
|
+
| `dim auth login` | 登录云端功能 |
|
|
74
|
+
| `dim upgrade` | 检查更新 |
|
|
75
|
+
| `dim --help` | 显示帮助信息 |
|
|
76
|
+
| `dim --version` | 显示版本号 |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 交互式界面(TUI)
|
|
81
|
+
|
|
82
|
+
直接运行 `dim` 就进终端交互界面了,长这样:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
┌────────────────────────────────────────────────────────────────────────────┐
|
|
86
|
+
│ 会话标题 ~/workspace/repo 12 条消息 | 42k | vdev │
|
|
87
|
+
├────────────────────────────────────────────────────────────────────────────┤
|
|
88
|
+
│ │
|
|
89
|
+
│ 对话记录 │
|
|
90
|
+
│ - 用户消息 │
|
|
91
|
+
│ - 助手回复 │
|
|
92
|
+
│ - 工具调用 │
|
|
93
|
+
│ - 思考过程 │
|
|
94
|
+
│ │
|
|
95
|
+
├────────────────────────────────────────────────────────────────────────────┤
|
|
96
|
+
│ ┌────────────────────────────────────────────────────────────────────────┐ │
|
|
97
|
+
│ │ 输入问题... │ │
|
|
98
|
+
│ │ 代理模式 就绪 42% 上下文 ■ 模型名称 │ │
|
|
99
|
+
│ └────────────────────────────────────────────────────────────────────────┘ │
|
|
100
|
+
├────────────────────────────────────────────────────────────────────────────┤
|
|
101
|
+
│ 拖拽选择文本 清空输入 Tab: 切换模式 Ctrl+P: 命令面板 │
|
|
102
|
+
└────────────────────────────────────────────────────────────────────────────┘
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
界面分四块:
|
|
106
|
+
|
|
107
|
+
1. **顶部标题栏** — 会话名、当前目录、消息数、Token 用量、版本号
|
|
108
|
+
2. **对话记录区** — 你和 AI 的聊天记录,包括工具执行结果
|
|
109
|
+
3. **输入框** — 打字的地方,支持多行,也能贴图片
|
|
110
|
+
4. **底部状态栏** — 快捷键提示和当前状态
|
|
111
|
+
|
|
112
|
+
### 常用快捷键
|
|
113
|
+
|
|
114
|
+
| 按键 | 做什么 |
|
|
115
|
+
|---|---|
|
|
116
|
+
| `Enter` | 发送消息 |
|
|
117
|
+
| `Shift+Enter` / `Ctrl+J` | 输入换行 |
|
|
118
|
+
| `Tab` | 切换「代理模式」/「计划模式」 |
|
|
119
|
+
| `Ctrl+P` | 打开命令面板 |
|
|
120
|
+
| `Cmd+T`(Mac)/ `Ctrl+T`(其他) | 打开时间线 |
|
|
121
|
+
| `Cmd+N`(Mac)/ `Ctrl+N`(其他) | 新建会话 / 回首页 |
|
|
122
|
+
| `/` | 打开命令面板并过滤 |
|
|
123
|
+
| `@` | 打开技能引用面板 |
|
|
124
|
+
| `Esc` | 打断正在跑的 AI 任务 |
|
|
125
|
+
| `Ctrl+C` | 关弹窗 → 清空输入 → 退出确认 |
|
|
126
|
+
| `Ctrl+V` | 粘贴剪贴板图片 |
|
|
127
|
+
| `↑` / `↓` | 翻输入历史(单行时) |
|
|
128
|
+
|
|
129
|
+
### 斜杠命令
|
|
130
|
+
|
|
131
|
+
在输入框里打 `/` 就能打开命令面板:
|
|
132
|
+
|
|
133
|
+
| 命令 | 干嘛的 |
|
|
134
|
+
|---|---|
|
|
135
|
+
| `/new` | 开一个新会话 |
|
|
136
|
+
| `/timeline` | 看看这个会话的时间线 |
|
|
137
|
+
| `/skills` | 浏览可用的技能 |
|
|
138
|
+
| `/resume` | 打开之前保存的会话 |
|
|
139
|
+
| `/compact` | 压缩一下上下文,省点 Token |
|
|
140
|
+
| `/approvals` | 调整工具授权设置 |
|
|
141
|
+
| `/connect` | 连接模型提供商 |
|
|
142
|
+
| `/models` | 换个模型用 |
|
|
143
|
+
| `/mcp` | 管理 MCP 服务器 |
|
|
144
|
+
| `/plugins` | 看看装了哪些插件 |
|
|
145
|
+
| `/theme` | 换个主题 |
|
|
146
|
+
| `/settings` | 打开设置 |
|
|
147
|
+
| `/language` | 切换界面语言 |
|
|
148
|
+
| `/exit` | 退出 |
|
|
149
|
+
|
|
150
|
+
### 运行中的交互
|
|
151
|
+
|
|
152
|
+
AI 干活的时候可能会弹窗问你:
|
|
153
|
+
|
|
154
|
+
- **工具授权** — AI 想跑命令或读文件时问你。按 `Y` 允许一次,`N` 拒绝
|
|
155
|
+
- **用户询问** — AI 有不清楚的地方,回答完它继续
|
|
156
|
+
- **退出确认** — 按 `Ctrl+C` 时弹出来,防止手滑关掉
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 配置
|
|
161
|
+
|
|
162
|
+
所有配置保存在 `~/.dimcode/` 目录下(SQLite 数据库 + JSON 文件)。
|
|
163
|
+
|
|
164
|
+
### 添加模型提供商
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# OpenAI
|
|
168
|
+
dim provider add openai --api-key sk-xxxxxxxx
|
|
169
|
+
|
|
170
|
+
# 自定义本地模型
|
|
171
|
+
dim provider add mylocal --base-url http://127.0.0.1:11434 --model llama3
|
|
172
|
+
|
|
173
|
+
# 切换当前使用的提供商
|
|
174
|
+
dim provider switch openai
|
|
175
|
+
|
|
176
|
+
# 刷新模型列表
|
|
177
|
+
dim provider refresh-models openai
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 环境变量
|
|
181
|
+
|
|
182
|
+
| 变量 | 说明 |
|
|
183
|
+
|---|---|
|
|
184
|
+
| `DIMCODE_LOG` | 开启诊断日志,记录到 `~/.dimcode/logs/` |
|
|
185
|
+
| `DIMCODE_DEBUG` | 打印 wrapper 启动调试信息(定位平台二进制问题) |
|
|
186
|
+
| `DIMCODE_BIN_PATH` | 指定自定义二进制路径(开发/调试用) |
|
|
187
|
+
| `NO_COLOR` | 禁用彩色输出 |
|
|
188
|
+
| `HTTPS_PROXY` | 设置 HTTPS 代理 |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 后台执行(无需界面)
|
|
193
|
+
|
|
194
|
+
适合脚本和自动化场景:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# 单条提示直接执行
|
|
198
|
+
dim exec "写一个按列排序 CSV 的 Python 脚本"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 退出状态码
|
|
202
|
+
|
|
203
|
+
| 状态码 | 含义 |
|
|
204
|
+
|---|---|
|
|
205
|
+
| `0` | 执行成功 |
|
|
206
|
+
| `1` | 运行时错误 |
|
|
207
|
+
| `2` | 参数错误 |
|
|
208
|
+
| `3` | 认证失败 |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 升级 & 卸载
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# 升级到最新 beta
|
|
216
|
+
npm i -g dimcode@beta
|
|
217
|
+
|
|
218
|
+
# 卸载
|
|
219
|
+
npm uninstall -g dimcode
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 常见问题
|
|
225
|
+
|
|
226
|
+
**Q: 安装后提示找不到平台二进制?**
|
|
227
|
+
|
|
228
|
+
可能是 npm 跳过了 optionalDependencies。先用 debug 模式确认:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
DIMCODE_DEBUG=1 dim --version
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
然后重装一次:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
npm uninstall -g dimcode && npm i -g dimcode@beta
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**Q: 启动后显示空白或乱码?**
|
|
241
|
+
|
|
242
|
+
确保终端支持 256 色:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
export TERM=xterm-256color
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Q: 如何中断正在执行的任务?**
|
|
249
|
+
|
|
250
|
+
按 `Esc` 键即可中断当前 AI 的执行回合。
|
|
251
|
+
|
|
252
|
+
**Q: 图片怎么发送给 AI?**
|
|
253
|
+
|
|
254
|
+
直接 `Ctrl+V` 粘贴剪贴板中的图片,或在输入框中粘贴图片路径。
|
|
255
|
+
|
|
256
|
+
**Q: 会话数据存在哪里?**
|
|
257
|
+
|
|
258
|
+
所有本地数据放在 `~/.dimcode/v2/`,会话存在其中的 SQLite 数据库 `dimcode.sqlite` 里(表:`sessions`、`session_states`、`session_relations`、`session_blobs`),不会上传到云端。
|
|
259
|
+
|
|
260
|
+
目录布局大致是:
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
~/.dimcode/v2/
|
|
264
|
+
├── config.json 全局配置
|
|
265
|
+
├── providers.json 模型提供商
|
|
266
|
+
├── auth.json 登录态
|
|
267
|
+
├── mcp.json MCP 服务器
|
|
268
|
+
├── dimcode.sqlite 会话 / 消息 / 状态
|
|
269
|
+
├── dimcode.sqlite-wal
|
|
270
|
+
├── dimcode.sqlite-shm
|
|
271
|
+
├── data/ blob 数据
|
|
272
|
+
└── logs/ 诊断日志
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
**Q: 如何删除单个会话?**
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
dim session list # 找到要删的 id
|
|
279
|
+
dim session rm <id>
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Q: 如何清空所有历史会话?**
|
|
283
|
+
|
|
284
|
+
最稳的做法是删 SQLite 数据库文件(保留 `config.json`、`providers.json` 等配置):
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
rm -f ~/.dimcode/v2/dimcode.sqlite \
|
|
288
|
+
~/.dimcode/v2/dimcode.sqlite-wal \
|
|
289
|
+
~/.dimcode/v2/dimcode.sqlite-shm
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
如果想彻底重置(含配置、登录态、MCP 列表),删整个 v2 目录:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
rm -rf ~/.dimcode/v2
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
> 注意:`~/.dimcode/` 下的其它目录(`sessions/`、`dimcode/` 等)是早期版本残留,对 v2 没有作用。
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## License
|
|
303
|
+
|
|
304
|
+
见仓库根目录 LICENSE 文件。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dimcode",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.68",
|
|
4
4
|
"description": "AI coding agent CLI and terminal coding assistant with an interactive TUI (beta channel)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
"bin"
|
|
12
12
|
],
|
|
13
13
|
"optionalDependencies": {
|
|
14
|
-
"dimcode-darwin-arm64": "0.0.
|
|
15
|
-
"dimcode-darwin-x64": "0.0.
|
|
16
|
-
"dimcode-linux-arm64": "0.0.
|
|
17
|
-
"dimcode-linux-x64": "0.0.
|
|
18
|
-
"dimcode-windows-x64": "0.0.
|
|
14
|
+
"dimcode-darwin-arm64": "0.0.68",
|
|
15
|
+
"dimcode-darwin-x64": "0.0.68",
|
|
16
|
+
"dimcode-linux-arm64": "0.0.68",
|
|
17
|
+
"dimcode-linux-x64": "0.0.68",
|
|
18
|
+
"dimcode-windows-x64": "0.0.68"
|
|
19
19
|
}
|
|
20
20
|
}
|