dimcode 0.0.66-beta.1 → 0.0.66
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 +451 -0
- package/cli.mjs +99 -0
- package/dist/aihubmix.json +1 -0
- package/dist/anthropic.json +1 -0
- package/dist/ark-code.json +1 -0
- package/dist/bailian-coding-plan.json +1 -0
- package/dist/cli.mjs +1250 -0
- package/dist/custom-provider.json +1 -0
- package/dist/deepseek.json +1 -0
- package/dist/google.json +1 -0
- package/dist/kimi-for-coding.json +1 -0
- package/dist/lm-studio.json +1 -0
- package/dist/minimax-cn-coding-plan.json +1 -0
- package/dist/minimax-cn.json +1 -0
- package/dist/minimax-coding-plan.json +1 -0
- package/dist/minimax.json +1 -0
- package/dist/models/aihubmix.json +1 -0
- package/dist/models/custom-provider.json +1 -0
- package/dist/models/openrouter.json +1 -0
- package/dist/models/siliconflow-com.json +1 -0
- package/dist/models/siliconflow.json +1 -0
- package/dist/models/zenmux.json +1 -0
- package/dist/moonshot-ai.json +1 -0
- package/dist/moonshot.json +1 -0
- package/dist/next-api-oauth.json +1 -0
- package/dist/ollama.json +1 -0
- package/dist/openai.json +1 -0
- package/dist/openrouter.json +1 -0
- package/dist/ppinfra.json +1 -0
- package/dist/siliconflow-com.json +1 -0
- package/dist/siliconflow.json +1 -0
- package/dist/xai.json +1 -0
- package/dist/xiaomi-token-plan-cn.json +1 -0
- package/dist/zai-coding-plan.json +1 -0
- package/dist/zai.json +1 -0
- package/dist/zenmux.json +1 -0
- package/dist/zhipuai-coding-plan.json +1 -0
- package/dist/zhipuai.json +1 -0
- package/icon.png +0 -0
- package/package.json +69 -12
- package/bin/dim.mjs +0 -180
- package/dist/ink.mjs +0 -1297
package/README.md
ADDED
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
# Dimcode
|
|
2
|
+
|
|
3
|
+
AI coding agent CLI with an interactive terminal UI, one-shot execution, session history, MCP connectors, plugins, skills, and built-in model provider management.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g dimcode
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
After installation, run the CLI with either binary:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
dim
|
|
15
|
+
dimcode
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
Start the interactive TUI:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
dim
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Inside the TUI:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
/connect connect a model provider
|
|
30
|
+
/models select the active model
|
|
31
|
+
hello start chatting
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## One-shot Execution
|
|
35
|
+
|
|
36
|
+
Run a prompt and exit:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
dim "Run the tests and fix any failures"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Run from a specific project directory:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
dim --cwd ./my-project --no-interaction "Refactor the auth middleware"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Read the prompt from stdin:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
printf "Summarize this repository" | dim --no-interaction
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Reuse a known session id:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
dim --session my-session "Continue the previous task"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
One-shot mode auto-approves tools and prints the final answer to stdout. `--no-interaction` disables follow-up questions and runs in agent mode.
|
|
61
|
+
|
|
62
|
+
## Interactive Commands
|
|
63
|
+
|
|
64
|
+
Type `/` in the TUI to open command suggestions. Press `Ctrl+P` for the command palette and `F1` for help.
|
|
65
|
+
|
|
66
|
+
| Command | Action |
|
|
67
|
+
| -------------------- | ------------------------------------------------ |
|
|
68
|
+
| `/sessions` | List, switch, or delete saved sessions |
|
|
69
|
+
| `/new` | Start a new session |
|
|
70
|
+
| `/timeline` or `/tl` | Jump to a user message in the current session |
|
|
71
|
+
| `/resume` | Resume a paused queue |
|
|
72
|
+
| `/compact` | Compact the current session context |
|
|
73
|
+
| `/redo` | Redo after reverting messages |
|
|
74
|
+
| `/rename <title>` | Rename the current session |
|
|
75
|
+
| `/connect` | Connect or switch model providers |
|
|
76
|
+
| `/models` | Select the active model |
|
|
77
|
+
| `/settings` | Edit custom provider settings |
|
|
78
|
+
| `/approvals` | Configure tool approval mode |
|
|
79
|
+
| `/mcp` | Manage MCP connectors |
|
|
80
|
+
| `/plugins` | Manage plugins |
|
|
81
|
+
| `/debug` | Configure SDK observability JSONL logs |
|
|
82
|
+
| `/language` | Switch UI language |
|
|
83
|
+
| `/theme` | Switch the UI theme |
|
|
84
|
+
| `/skills` | View and activate loaded skills |
|
|
85
|
+
| `/review` | Ask Dimcode to review current code changes |
|
|
86
|
+
| `/init` | Ask Dimcode to initialize or improve `AGENTS.md` |
|
|
87
|
+
| `/exit` | Exit the application |
|
|
88
|
+
|
|
89
|
+
## CLI Commands
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
dim version # Print version info
|
|
93
|
+
dim upgrade [version] # Upgrade the CLI
|
|
94
|
+
dim acp # Start the ACP server for editor integrations
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Auto-update checks run by default. Set `DIMCODE_DISABLE_AUTOUPDATE=1` to disable them.
|
|
98
|
+
|
|
99
|
+
`dim upgrade` tracks the current release channel. Pass an explicit npm version to switch channels:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npm install -g dimcode@1.2.0-beta.3
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Options
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
Usage:
|
|
109
|
+
dim Interactive TUI
|
|
110
|
+
dim [--cwd dir] [--session id] [--debug dir] [--no-interaction] "prompt"
|
|
111
|
+
One-shot execution
|
|
112
|
+
dim version
|
|
113
|
+
dim upgrade [version]
|
|
114
|
+
dim acp
|
|
115
|
+
|
|
116
|
+
Options:
|
|
117
|
+
--approvals auto|normal|strict Tool approval mode for the TUI
|
|
118
|
+
--auto-approve, --yes, -y Shorthand for --approvals auto
|
|
119
|
+
--cwd, -c, -cwd, --chdir <dir> Working directory for one-shot execution
|
|
120
|
+
--session, -s <id> Session id for one-shot execution
|
|
121
|
+
--no-interaction One-shot mode with follow-up questions disabled
|
|
122
|
+
--debug <dir> Write SDK observability logs for this run
|
|
123
|
+
-h, --help Show CLI help
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The interactive TUI starts with `normal` approvals. One-shot execution sets tool approvals to `auto`.
|
|
127
|
+
|
|
128
|
+
## Configuration
|
|
129
|
+
|
|
130
|
+
Dimcode stores user data under `~/.dimcode` by default:
|
|
131
|
+
|
|
132
|
+
| Path | Purpose |
|
|
133
|
+
| ------------------------------- | --------------------------------------------- |
|
|
134
|
+
| `~/.dimcode/config.json` | Provider, model, and custom provider settings |
|
|
135
|
+
| `~/.dimcode/tools.json` | Tool-specific settings such as WebSearch |
|
|
136
|
+
| `~/.dimcode/mcp.json` | MCP server settings |
|
|
137
|
+
| `~/.dimcode/dimcode/cache.json` | UI cache and recent settings |
|
|
138
|
+
| `~/.dimcode/state/` | Session state, uploads, and runtime artifacts |
|
|
139
|
+
|
|
140
|
+
Move the whole config home with:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
export DIMCODE_HOME=/path/to/dimcode-home
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Move runtime state only with:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
export DIMCODE_STATE_DIR=/path/to/state
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Daily configuration is available in the TUI:
|
|
153
|
+
|
|
154
|
+
| Entry | Purpose |
|
|
155
|
+
| ------------ | ------------------------------------------------------- |
|
|
156
|
+
| `/connect` | Configure provider API keys and editable base URLs |
|
|
157
|
+
| `/models` | Select the model for the active provider |
|
|
158
|
+
| `/settings` | Manage custom providers and advanced model parameters |
|
|
159
|
+
| `/mcp` | Edit and load MCP connectors |
|
|
160
|
+
| `/approvals` | Choose `auto`, `normal`, or `strict` tool approvals |
|
|
161
|
+
| `/debug` | Choose `Off`, `On`, or `Auto` SDK observability logging |
|
|
162
|
+
|
|
163
|
+
Debug logs are written as JSONL files at `<debug-dir>/<session-id>.jsonl`.
|
|
164
|
+
|
|
165
|
+
## Model Providers
|
|
166
|
+
|
|
167
|
+
Built-in providers include OpenAI, DimCode OAuth, OpenRouter, Aihubmix, Model Studio Coding Plan, ZhipuAI, Z.AI, DeepSeek, ZenMux, Moonshot, Kimi For Coding, Google, Anthropic, SiliconFlow, PPInfra, Ark Code, Ollama, LM Studio, xAI, Xiaomi Token Plan, and MiniMax variants.
|
|
168
|
+
|
|
169
|
+
Custom providers support OpenAI-compatible, OpenAI Responses, Gemini, and Anthropic adapters. Built-in base URLs are editable for OpenAI, Anthropic, Google, Ollama, and LM Studio.
|
|
170
|
+
|
|
171
|
+
## MCP, Plugins, and Skills
|
|
172
|
+
|
|
173
|
+
`/mcp` manages stdio, HTTP, and SSE MCP servers from `~/.dimcode/mcp.json`.
|
|
174
|
+
|
|
175
|
+
`/plugins` manages installed plugins.
|
|
176
|
+
|
|
177
|
+
The command palette also includes Tool Settings for the WebSearch API key.
|
|
178
|
+
|
|
179
|
+
`/skills` lists loaded skills. Mention a skill with `$skill-name` in the prompt to force it for that turn.
|
|
180
|
+
|
|
181
|
+
## Keyboard Shortcuts
|
|
182
|
+
|
|
183
|
+
| Shortcut | Action |
|
|
184
|
+
| ------------------------ | ------------------------------------- |
|
|
185
|
+
| `F1` | Open help |
|
|
186
|
+
| `Ctrl+P` | Open command palette |
|
|
187
|
+
| `Ctrl+K` | Open settings |
|
|
188
|
+
| `Ctrl+O` | Expand or collapse tools and thinking |
|
|
189
|
+
| `Tab` | Switch mode or focus |
|
|
190
|
+
| `Shift+Enter` / `Ctrl+J` | Insert a newline |
|
|
191
|
+
| `Cmd+Delete` / `Ctrl+W` | Clear input |
|
|
192
|
+
| `Ctrl+Click` | Open files or links |
|
|
193
|
+
| `Esc` | Cancel the current dialog or action |
|
|
194
|
+
|
|
195
|
+
The command palette, timeline, and new session shortcuts can be customized in settings.
|
|
196
|
+
|
|
197
|
+
## Editor Integration
|
|
198
|
+
|
|
199
|
+
Start the ACP server:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
dim acp
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Example Zed settings:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"agent_servers": {
|
|
210
|
+
"dimcode": {
|
|
211
|
+
"command": "dim",
|
|
212
|
+
"args": ["acp"]
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Help
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
dim --help
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Inside the TUI, press `F1`.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
# Dimcode 中文版
|
|
229
|
+
|
|
230
|
+
Dimcode 是一个 AI 编程助手 CLI,提供交互式终端 UI、单次执行、会话历史、MCP 连接器、插件、Skills,以及内置模型提供方管理。
|
|
231
|
+
|
|
232
|
+
## 安装
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
npm install -g dimcode
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
安装后可使用任一命令运行:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
dim
|
|
242
|
+
dimcode
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## 快速开始
|
|
246
|
+
|
|
247
|
+
启动交互式 TUI:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
dim
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
进入 TUI 后:
|
|
254
|
+
|
|
255
|
+
```text
|
|
256
|
+
/connect 连接模型提供方
|
|
257
|
+
/models 选择当前模型
|
|
258
|
+
hello 开始对话
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## 单次执行
|
|
262
|
+
|
|
263
|
+
执行提示词并退出:
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
dim "Run the tests and fix any failures"
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
在指定项目目录运行:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
dim --cwd ./my-project --no-interaction "Refactor the auth middleware"
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
从 stdin 读取提示词:
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
printf "Summarize this repository" | dim --no-interaction
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
复用指定会话 id:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
dim --session my-session "Continue the previous task"
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
单次执行模式会自动批准工具调用,并将最终回答输出到 stdout。`--no-interaction` 会关闭追问并使用 agent 模式。
|
|
288
|
+
|
|
289
|
+
## 交互命令
|
|
290
|
+
|
|
291
|
+
在 TUI 中输入 `/` 可打开命令建议。按 `Ctrl+P` 打开命令面板,按 `F1` 打开帮助。
|
|
292
|
+
|
|
293
|
+
| 命令 | 功能 |
|
|
294
|
+
| -------------------- | ----------------------------------- |
|
|
295
|
+
| `/sessions` | 列出、切换或删除已保存会话 |
|
|
296
|
+
| `/new` | 开始新会话 |
|
|
297
|
+
| `/timeline` 或 `/tl` | 跳转到当前会话中的用户消息 |
|
|
298
|
+
| `/resume` | 恢复已暂停队列 |
|
|
299
|
+
| `/compact` | 压缩当前会话上下文 |
|
|
300
|
+
| `/redo` | 在消息回退后重做 |
|
|
301
|
+
| `/rename <title>` | 重命名当前会话 |
|
|
302
|
+
| `/connect` | 连接或切换模型提供方 |
|
|
303
|
+
| `/models` | 选择当前模型 |
|
|
304
|
+
| `/settings` | 编辑自定义提供方设置 |
|
|
305
|
+
| `/approvals` | 配置工具审批模式 |
|
|
306
|
+
| `/mcp` | 管理 MCP 连接器 |
|
|
307
|
+
| `/plugins` | 管理插件 |
|
|
308
|
+
| `/debug` | 配置 SDK observability JSONL 日志 |
|
|
309
|
+
| `/language` | 切换界面语言 |
|
|
310
|
+
| `/theme` | 切换界面主题 |
|
|
311
|
+
| `/skills` | 查看并启用已加载 Skills |
|
|
312
|
+
| `/review` | 让 Dimcode 审查当前代码变更 |
|
|
313
|
+
| `/init` | 让 Dimcode 初始化或改进 `AGENTS.md` |
|
|
314
|
+
| `/exit` | 退出应用 |
|
|
315
|
+
|
|
316
|
+
## CLI 命令
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
dim version # Print version info
|
|
320
|
+
dim upgrade [version] # Upgrade the CLI
|
|
321
|
+
dim acp # Start the ACP server for editor integrations
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
自动更新检查默认开启。设置 `DIMCODE_DISABLE_AUTOUPDATE=1` 可关闭。
|
|
325
|
+
|
|
326
|
+
`dim upgrade` 会跟随当前发布通道。传入明确 npm 版本可切换通道:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
npm install -g dimcode@1.2.0-beta.3
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## 选项
|
|
333
|
+
|
|
334
|
+
```text
|
|
335
|
+
Usage:
|
|
336
|
+
dim Interactive TUI
|
|
337
|
+
dim [--cwd dir] [--session id] [--debug dir] [--no-interaction] "prompt"
|
|
338
|
+
One-shot execution
|
|
339
|
+
dim version
|
|
340
|
+
dim upgrade [version]
|
|
341
|
+
dim acp
|
|
342
|
+
|
|
343
|
+
Options:
|
|
344
|
+
--approvals auto|normal|strict Tool approval mode for the TUI
|
|
345
|
+
--auto-approve, --yes, -y Shorthand for --approvals auto
|
|
346
|
+
--cwd, -c, -cwd, --chdir <dir> Working directory for one-shot execution
|
|
347
|
+
--session, -s <id> Session id for one-shot execution
|
|
348
|
+
--no-interaction One-shot mode with follow-up questions disabled
|
|
349
|
+
--debug <dir> Write SDK observability logs for this run
|
|
350
|
+
-h, --help Show CLI help
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
交互式 TUI 默认使用 `normal` 审批模式。单次执行会将工具审批设为 `auto`。
|
|
354
|
+
|
|
355
|
+
## 配置
|
|
356
|
+
|
|
357
|
+
Dimcode 默认将用户数据保存到 `~/.dimcode`:
|
|
358
|
+
|
|
359
|
+
| 路径 | 用途 |
|
|
360
|
+
| ------------------------------- | ------------------------------ |
|
|
361
|
+
| `~/.dimcode/config.json` | 提供方、模型、自定义提供方设置 |
|
|
362
|
+
| `~/.dimcode/tools.json` | WebSearch 等工具级设置 |
|
|
363
|
+
| `~/.dimcode/mcp.json` | MCP server 设置 |
|
|
364
|
+
| `~/.dimcode/dimcode/cache.json` | UI 缓存和最近设置 |
|
|
365
|
+
| `~/.dimcode/state/` | 会话状态、上传文件、运行时产物 |
|
|
366
|
+
|
|
367
|
+
移动完整配置目录:
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
export DIMCODE_HOME=/path/to/dimcode-home
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
单独移动运行时状态目录:
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
export DIMCODE_STATE_DIR=/path/to/state
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
日常配置可在 TUI 中完成:
|
|
380
|
+
|
|
381
|
+
| 入口 | 用途 |
|
|
382
|
+
| ------------ | ------------------------------------------------- |
|
|
383
|
+
| `/connect` | 配置提供方 API key 和可编辑 base URL |
|
|
384
|
+
| `/models` | 为当前提供方选择模型 |
|
|
385
|
+
| `/settings` | 管理自定义提供方和高级模型参数 |
|
|
386
|
+
| `/mcp` | 编辑并加载 MCP 连接器 |
|
|
387
|
+
| `/approvals` | 选择 `auto`、`normal` 或 `strict` 工具审批 |
|
|
388
|
+
| `/debug` | 选择 `Off`、`On` 或 `Auto` SDK observability 日志 |
|
|
389
|
+
|
|
390
|
+
Debug 日志会以 JSONL 写入 `<debug-dir>/<session-id>.jsonl`。
|
|
391
|
+
|
|
392
|
+
## 模型提供方
|
|
393
|
+
|
|
394
|
+
内置提供方包括 OpenAI、DimCode OAuth、OpenRouter、Aihubmix、Model Studio Coding Plan、ZhipuAI、Z.AI、DeepSeek、ZenMux、Moonshot、Kimi For Coding、Google、Anthropic、SiliconFlow、PPInfra、Ark Code、Ollama、LM Studio、xAI、Xiaomi Token Plan、MiniMax 等变体。
|
|
395
|
+
|
|
396
|
+
自定义提供方支持 OpenAI-compatible、OpenAI Responses、Gemini、Anthropic adapters。OpenAI、Anthropic、Google、Ollama、LM Studio 的内置 base URL 可编辑。
|
|
397
|
+
|
|
398
|
+
## MCP、插件与 Skills
|
|
399
|
+
|
|
400
|
+
`/mcp` 会从 `~/.dimcode/mcp.json` 管理 stdio、HTTP、SSE MCP servers。
|
|
401
|
+
|
|
402
|
+
`/plugins` 用于管理已安装插件。
|
|
403
|
+
|
|
404
|
+
命令面板中的 Tool Settings 可配置 WebSearch API key。
|
|
405
|
+
|
|
406
|
+
`/skills` 用于查看已加载 Skills。在提示词中使用 `$skill-name` 可为当前轮次指定 Skill。
|
|
407
|
+
|
|
408
|
+
## 快捷键
|
|
409
|
+
|
|
410
|
+
| 快捷键 | 功能 |
|
|
411
|
+
| ------------------------ | ------------------------- |
|
|
412
|
+
| `F1` | 打开帮助 |
|
|
413
|
+
| `Ctrl+P` | 打开命令面板 |
|
|
414
|
+
| `Ctrl+K` | 打开设置 |
|
|
415
|
+
| `Ctrl+O` | 展开或收起工具与 thinking |
|
|
416
|
+
| `Tab` | 切换模式或焦点 |
|
|
417
|
+
| `Shift+Enter` / `Ctrl+J` | 输入换行 |
|
|
418
|
+
| `Cmd+Delete` / `Ctrl+W` | 清空输入 |
|
|
419
|
+
| `Ctrl+Click` | 打开文件或链接 |
|
|
420
|
+
| `Esc` | 取消当前对话框或操作 |
|
|
421
|
+
|
|
422
|
+
命令面板、时间线、新会话快捷键可在设置中自定义。
|
|
423
|
+
|
|
424
|
+
## 编辑器集成
|
|
425
|
+
|
|
426
|
+
启动 ACP server:
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
dim acp
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
Zed 配置示例:
|
|
433
|
+
|
|
434
|
+
```json
|
|
435
|
+
{
|
|
436
|
+
"agent_servers": {
|
|
437
|
+
"dimcode": {
|
|
438
|
+
"command": "dim",
|
|
439
|
+
"args": ["acp"]
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
## 获取帮助
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
dim --help
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
在 TUI 内按 `F1`。
|
package/cli.mjs
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { spawn, spawnSync } from 'node:child_process'
|
|
4
|
+
import { existsSync } from 'node:fs'
|
|
5
|
+
import path from 'node:path'
|
|
6
|
+
import process from 'node:process'
|
|
7
|
+
import { fileURLToPath } from 'node:url'
|
|
8
|
+
|
|
9
|
+
const cliPath = fileURLToPath(import.meta.url)
|
|
10
|
+
const cliDir = path.dirname(cliPath)
|
|
11
|
+
const sourceEntry = path.join(cliDir, 'src', 'cli.ts')
|
|
12
|
+
const bundledEntry = path.join(cliDir, 'dist', 'cli.mjs')
|
|
13
|
+
const sourceEntryUrl = new URL('./src/cli.ts', import.meta.url).href
|
|
14
|
+
const bundledEntryUrl = new URL('./dist/cli.mjs', import.meta.url).href
|
|
15
|
+
|
|
16
|
+
function resolveBunCommand() {
|
|
17
|
+
return process.env.BUN_BIN?.trim() || 'bun'
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function canRelayToBunSource() {
|
|
21
|
+
if (typeof globalThis.Bun !== 'undefined')
|
|
22
|
+
return false
|
|
23
|
+
if (!existsSync(sourceEntry))
|
|
24
|
+
return false
|
|
25
|
+
|
|
26
|
+
const probe = spawnSync(resolveBunCommand(), ['--version'], { stdio: 'ignore' })
|
|
27
|
+
return probe.status === 0
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async function installEnvProxyDispatcher() {
|
|
31
|
+
// Node's native fetch (undici) ignores HTTP_PROXY/HTTPS_PROXY env vars unless
|
|
32
|
+
// a proxy-aware dispatcher is installed. Bun's fetch honors them natively, so
|
|
33
|
+
// this is only needed on the Node-bundled path. Skip silently if no proxy env
|
|
34
|
+
// is set, or if undici is unavailable.
|
|
35
|
+
const env = process.env
|
|
36
|
+
const hasProxyEnv = Boolean(
|
|
37
|
+
env.HTTP_PROXY || env.http_proxy
|
|
38
|
+
|| env.HTTPS_PROXY || env.https_proxy
|
|
39
|
+
|| env.NO_PROXY || env.no_proxy,
|
|
40
|
+
)
|
|
41
|
+
if (!hasProxyEnv)
|
|
42
|
+
return
|
|
43
|
+
try {
|
|
44
|
+
const { setGlobalDispatcher, EnvHttpProxyAgent } = await import('undici')
|
|
45
|
+
setGlobalDispatcher(new EnvHttpProxyAgent())
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
if (env.DIMCODE_DEBUG === '1' || env.DIMCODE_DEBUG === 'true') {
|
|
49
|
+
console.error(
|
|
50
|
+
'[dimcode] failed to install EnvHttpProxyAgent:',
|
|
51
|
+
err instanceof Error ? err.message : String(err),
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async function relayToBunSource() {
|
|
58
|
+
const child = spawn(resolveBunCommand(), [cliPath, ...process.argv.slice(2)], {
|
|
59
|
+
stdio: 'inherit',
|
|
60
|
+
env: process.env,
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
const forwardSignal = (signal) => {
|
|
64
|
+
if (!child.killed)
|
|
65
|
+
child.kill(signal)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP'])
|
|
69
|
+
process.on(signal, () => forwardSignal(signal))
|
|
70
|
+
|
|
71
|
+
child.on('error', (error) => {
|
|
72
|
+
console.error(error)
|
|
73
|
+
process.exit(1)
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
await new Promise((resolve) => {
|
|
77
|
+
child.on('exit', (code) => {
|
|
78
|
+
process.exit(code ?? 1)
|
|
79
|
+
})
|
|
80
|
+
child.on('close', () => resolve())
|
|
81
|
+
})
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (typeof globalThis.Bun !== 'undefined') {
|
|
85
|
+
if (existsSync(bundledEntry))
|
|
86
|
+
await import(bundledEntryUrl)
|
|
87
|
+
else {
|
|
88
|
+
const { main } = await import(sourceEntryUrl)
|
|
89
|
+
await main()
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else if (canRelayToBunSource()) {
|
|
93
|
+
// In source checkouts, prefer Bun so `node .../cli.mjs` uses the current TS sources.
|
|
94
|
+
await relayToBunSource()
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
await installEnvProxyDispatcher()
|
|
98
|
+
await import(bundledEntryUrl)
|
|
99
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"aihubmix","name":"Aihubmix","api":"https://aihubmix.com/v1","adapter":"openai","modelsFile":"models/aihubmix.json","defaultModelId":"gpt-5.5"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"anthropic","name":"Anthropic","api":"https://api.anthropic.com","adapter":"anthropic","models":[{"id":"claude-opus-4-20250514","name":"Claude Opus 4","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"display_name":"Claude Opus 4","type":"chat"},{"id":"claude-3-sonnet-20240229","name":"Claude Sonnet 3","family":"claude-sonnet","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-04","last_updated":"2024-03-04","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":0.3},"limit":{"context":200000,"output":4096},"display_name":"Claude Sonnet 3","type":"chat"},{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":false},"tool_call":true,"temperature":true,"knowledge":"2025-08-31","release_date":"2026-02-17","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":1000000,"output":64000},"display_name":"Claude Sonnet 4.6","type":"chat","extra_capabilities":{"reasoning":{"supported":true,"default_enabled":false,"mode":"mixed","budget":{"min":1024,"unit":"tokens"},"effort":"medium","effort_options":["low","medium","high","max"],"interleaved":true,"summaries":true,"visibility":"summary","continuation":["thinking_blocks"],"notes":["Anthropic recommends adaptive thinking with effort for Claude 4.6; budget_tokens remains a deprecated compatibility path."]}}},{"id":"claude-3-5-haiku-20241022","name":"Claude Haiku 3.5","family":"claude-haiku","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192},"display_name":"Claude Haiku 3.5","type":"chat"},{"id":"claude-opus-4-1-20250805","name":"Claude Opus 4.1","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"display_name":"Claude Opus 4.1","type":"chat"},{"id":"claude-opus-4-0","name":"Claude Opus 4 (latest)","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"display_name":"Claude Opus 4 (latest)","type":"chat"},{"id":"claude-opus-4-5","name":"Claude Opus 4.5 (latest)","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-24","last_updated":"2025-11-24","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"display_name":"Claude Opus 4.5 (latest)","type":"chat","extra_capabilities":{"reasoning":{"supported":true}}},{"id":"claude-3-7-sonnet-20250219","name":"Claude Sonnet 3.7","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":false},"tool_call":true,"temperature":true,"knowledge":"2024-10-31","release_date":"2025-02-19","last_updated":"2025-02-19","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 3.7","type":"chat","extra_capabilities":{"reasoning":{"supported":true,"default_enabled":false,"mode":"budget","budget":{"min":1024,"unit":"tokens"},"interleaved":false,"summaries":false,"visibility":"full","continuation":["thinking_blocks"],"notes":["Anthropic uses thinking budget tokens"]}}},{"id":"claude-3-haiku-20240307","name":"Claude Haiku 3","family":"claude-haiku","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-03-13","last_updated":"2024-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.25,"output":1.25,"cache_read":0.03,"cache_write":0.3},"limit":{"context":200000,"output":4096},"display_name":"Claude Haiku 3","type":"chat"},{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","family":"claude-haiku","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"display_name":"Claude Haiku 4.5","type":"chat"},{"id":"claude-opus-4-1","name":"Claude Opus 4.1 (latest)","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-08-05","last_updated":"2025-08-05","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":32000},"display_name":"Claude Opus 4.1 (latest)","type":"chat","extra_capabilities":{"reasoning":{"supported":true}}},{"id":"claude-sonnet-4-0","name":"Claude Sonnet 4 (latest)","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 4 (latest)","type":"chat","extra_capabilities":{"reasoning":{"supported":true}}},{"id":"claude-opus-4-6","name":"Claude Opus 4.6","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":false},"tool_call":true,"temperature":true,"knowledge":"2025-05-31","release_date":"2026-02-05","last_updated":"2026-03-13","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"experimental":{"modes":{"fast":{"cost":{"input":30,"output":150,"cache_read":3,"cache_write":37.5},"provider":{"body":{"speed":"fast"},"headers":{"anthropic-beta":"fast-mode-2026-02-01"}}}}},"display_name":"Claude Opus 4.6","type":"chat","extra_capabilities":{"reasoning":{"supported":true,"default_enabled":false,"mode":"mixed","budget":{"min":1024,"unit":"tokens"},"effort":"medium","effort_options":["low","medium","high","max"],"interleaved":true,"summaries":true,"visibility":"summary","continuation":["thinking_blocks"],"notes":["Anthropic recommends adaptive thinking with effort for Claude 4.6; budget_tokens remains a deprecated compatibility path."]}}},{"id":"claude-3-5-haiku-latest","name":"Claude Haiku 3.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-07-31","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":0.8,"output":4,"cache_read":0.08,"cache_write":1},"limit":{"context":200000,"output":8192},"display_name":"Claude Haiku 3.5 (latest)","type":"chat"},{"id":"claude-sonnet-4-20250514","name":"Claude Sonnet 4","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-05-22","last_updated":"2025-05-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 4","type":"chat"},{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-03-31","release_date":"2025-11-01","last_updated":"2025-11-01","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":200000,"output":64000},"display_name":"Claude Opus 4.5","type":"chat"},{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 4.5","type":"chat"},{"id":"claude-opus-4-7","name":"Claude Opus 4.7","family":"claude-opus","attachment":true,"reasoning":{"supported":true,"default":false},"tool_call":true,"temperature":false,"knowledge":"2026-01-31","release_date":"2026-04-16","last_updated":"2026-04-16","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":5,"output":25,"cache_read":0.5,"cache_write":6.25},"limit":{"context":1000000,"output":128000},"display_name":"Claude Opus 4.7","type":"chat","extra_capabilities":{"reasoning":{"supported":true,"default_enabled":false,"mode":"effort","effort":"high","effort_options":["low","medium","high","xhigh","max"],"interleaved":true,"summaries":true,"visibility":"omitted","continuation":["thinking_blocks"],"notes":["Claude Opus 4.7 requires thinking.type = \"adaptive\" to enable thinking explicitly.","Manual budget_tokens requests return 400 on Claude Opus 4.7.","task_budget is separate from thinking control and should not be treated as a thinking budget."]}}},{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","family":"claude-sonnet","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-07-31","release_date":"2025-09-29","last_updated":"2025-09-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":64000},"display_name":"Claude Sonnet 4.5 (latest)","type":"chat","extra_capabilities":{"reasoning":{"supported":true}}},{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","family":"claude-haiku","attachment":true,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-02-28","release_date":"2025-10-15","last_updated":"2025-10-15","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":1,"output":5,"cache_read":0.1,"cache_write":1.25},"limit":{"context":200000,"output":64000},"display_name":"Claude Haiku 4.5 (latest)","type":"chat","extra_capabilities":{"reasoning":{"supported":true}}},{"id":"claude-3-5-sonnet-20241022","name":"Claude Sonnet 3.5 v2","family":"claude-sonnet","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-10-22","last_updated":"2024-10-22","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192},"display_name":"Claude Sonnet 3.5 v2","type":"chat"},{"id":"claude-3-opus-20240229","name":"Claude Opus 3","family":"claude-opus","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2023-08-31","release_date":"2024-02-29","last_updated":"2024-02-29","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":15,"output":75,"cache_read":1.5,"cache_write":18.75},"limit":{"context":200000,"output":4096},"display_name":"Claude Opus 3","type":"chat"},{"id":"claude-3-5-sonnet-20240620","name":"Claude Sonnet 3.5","family":"claude-sonnet","attachment":true,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2024-04-30","release_date":"2024-06-20","last_updated":"2024-06-20","modalities":{"input":["text","image","pdf"],"output":["text"]},"open_weights":false,"cost":{"input":3,"output":15,"cache_read":0.3,"cache_write":3.75},"limit":{"context":200000,"output":8192},"display_name":"Claude Sonnet 3.5","type":"chat"}],"defaultModelId":"claude-opus-4-20250514"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"ark-code","name":"Ark Code","api":"https://ark.cn-beijing.volces.com/api/coding/v3","models":[{"id":"ark-code-latest","name":"ark-code-latest","tool_call":true,"temperature":true,"modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0,"output":0,"cache_read":0,"cache_write":0},"limit":{"context":204800,"output":60000},"display_name":"ark code","type":"chat"}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"bailian-coding-plan","name":"Model Studio Coding Plan","api":"https://coding.dashscope.aliyuncs.com/v1","adapter":"openai","models":[{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","family":"qwen","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-16","last_updated":"2026-02-16","modalities":{"input":["text","image"],"output":["text"]},"open_weights":false,"cost":{"input":0.1096,"output":0.6576,"cache_read":0.01096},"limit":{"context":991000,"output":991000},"display_name":"Qwen3.5 Plus","type":"chat"},{"id":"qwen3-max-2026-01-23","name":"Qwen3 Max 2026-01-23","family":"qwen","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.34246,"output":1.36984,"cache_read":0.34246},"limit":{"context":252000,"output":252000},"display_name":"Qwen3 Max 2026-01-23","type":"chat"},{"id":"qwen3-coder-next","name":"Qwen3 Coder Next","family":"qwen","attachment":false,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"release_date":"2026-02-02","last_updated":"2026-02-08","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.137,"output":0.548,"cache_read":0.137},"limit":{"context":2000000,"output":2000000},"display_name":"Qwen3 Coder Next","type":"chat"},{"id":"qwen3-coder-plus","name":"Qwen3 Coder Plus","family":"qwen","attachment":false,"reasoning":{"supported":false},"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-07-23","last_updated":"2025-07-23","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.54,"output":2.16,"cache_read":0.108},"limit":{"context":1048576,"output":1048576},"display_name":"Qwen3 Coder Plus","type":"chat"},{"id":"MiniMax-M2.5","name":"MiniMax M2.5","family":"minimax","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":false,"temperature":true,"knowledge":"2025-01","release_date":"2026-02-12","last_updated":"2026-02-12","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.288,"output":1.152},"limit":{"context":204800,"output":204800},"display_name":"MiniMax M2.5","type":"chat"},{"id":"glm-5","name":"GLM-5","family":"glm","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":false,"temperature":true,"knowledge":"2025-04","release_date":"2026-02-11","last_updated":"2026-02-11","modalities":{"input":["text"],"output":["text"]},"open_weights":false,"cost":{"input":0.88,"output":2.816,"cache_read":0.176},"limit":{"context":202752,"output":202752},"display_name":"GLM-5","type":"chat"},{"id":"glm-4.7","name":"GLM-4.7","family":"glm","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":true,"knowledge":"2025-04","release_date":"2025-12-22","last_updated":"2025-12-22","modalities":{"input":["text"],"output":["text"]},"open_weights":true,"cost":{"input":0.273974,"output":1.095896,"cache_read":0.054795},"limit":{"context":200000,"output":200000},"display_name":"GLM-4.7","type":"chat"},{"id":"kimi-k2.5","name":"Kimi K2.5","family":"kimi","attachment":false,"reasoning":{"supported":true,"default":true},"tool_call":true,"temperature":false,"knowledge":"2025-01","release_date":"2026-01","last_updated":"2026-01","modalities":{"input":["text","image"],"output":["text"]},"open_weights":true,"cost":{"input":0.6,"output":3,"cache_read":0.105},"limit":{"context":256000,"output":256000},"display_name":"Kimi K2.5","type":"chat"}],"defaultModelId":"qwen3.5-plus"}
|