+304
| # dimcode | ||
| > 你的终端 AI 伙伴。在命令行里聊聊天、跑任务、让工作流自动化一点。 | ||
| `dimcode` 是一个 AI coding agent CLI,提供交互式 TUI 界面和一次性任务执行模式。 | ||
| --- | ||
| ## 安装 | ||
| ```bash | ||
| # beta channel(当前推荐) | ||
| npm i -g dimcode@beta | ||
| # 或者用 bun / pnpm | ||
| bun add -g dimcode@beta | ||
| pnpm add -g dimcode@beta | ||
| ``` | ||
| 安装完成后会得到两个等价命令:`dim` 和 `dimcode`。 | ||
| ```bash | ||
| dim --version | ||
| ``` | ||
| > 安装时 npm 会根据当前平台自动拉取对应的二进制子包(`dimcode-darwin-arm64`、`dimcode-linux-x64` 等),不需要手动选择。 | ||
| ### 支持的平台 | ||
| | 平台 | 子包 | | ||
| |---|---| | ||
| | macOS (Apple Silicon) | `dimcode-darwin-arm64` | | ||
| | macOS (Intel) | `dimcode-darwin-x64` | | ||
| | Linux (x64) | `dimcode-linux-x64` | | ||
| | Linux (ARM64) | `dimcode-linux-arm64` | | ||
| | Windows (x64) | `dimcode-windows-x64` | | ||
| --- | ||
| ## 快速开始 | ||
| ```bash | ||
| # 启动交互式界面,和 AI 聊聊天 | ||
| dim | ||
| # 一次性执行,不用进界面 | ||
| dim exec "把 auth 模块重构为 JWT 方案" | ||
| # 查看版本 | ||
| dim --version | ||
| # 查看帮助 | ||
| dim --help | ||
| ``` | ||
| 第一次启动会引导你连接一个模型提供商(OpenAI、Anthropic 或自定义 endpoint)。 | ||
| --- | ||
| ## 命令速查 | ||
| | 命令 | 说明 | | ||
| |---|---| | ||
| | `dim` | 启动交互式 TUI 界面(默认) | | ||
| | `dim exec "<提示词>"` | 在后台执行单条提示,不用进界面 | | ||
| | `dim session list` | 列出已保存的会话 | | ||
| | `dim session rm <id>` | 删除指定会话 | | ||
| | `dim provider list` | 查看已配置的模型提供商 | | ||
| | `dim provider add <id> --api-key <密钥>` | 添加提供商(如 `openai`) | | ||
| | `dim provider switch <id>` | 切换当前使用的提供商 | | ||
| | `dim provider refresh-models` | 从提供商刷新模型列表 | | ||
| | `dim mcp list` | 查看 MCP 服务器列表 | | ||
| | `dim auth login` | 登录云端功能 | | ||
| | `dim upgrade` | 检查更新 | | ||
| | `dim --help` | 显示帮助信息 | | ||
| | `dim --version` | 显示版本号 | | ||
| --- | ||
| ## 交互式界面(TUI) | ||
| 直接运行 `dim` 就进终端交互界面了,长这样: | ||
| ``` | ||
| ┌────────────────────────────────────────────────────────────────────────────┐ | ||
| │ 会话标题 ~/workspace/repo 12 条消息 | 42k | vdev │ | ||
| ├────────────────────────────────────────────────────────────────────────────┤ | ||
| │ │ | ||
| │ 对话记录 │ | ||
| │ - 用户消息 │ | ||
| │ - 助手回复 │ | ||
| │ - 工具调用 │ | ||
| │ - 思考过程 │ | ||
| │ │ | ||
| ├────────────────────────────────────────────────────────────────────────────┤ | ||
| │ ┌────────────────────────────────────────────────────────────────────────┐ │ | ||
| │ │ 输入问题... │ │ | ||
| │ │ 代理模式 就绪 42% 上下文 ■ 模型名称 │ │ | ||
| │ └────────────────────────────────────────────────────────────────────────┘ │ | ||
| ├────────────────────────────────────────────────────────────────────────────┤ | ||
| │ 拖拽选择文本 清空输入 Tab: 切换模式 Ctrl+P: 命令面板 │ | ||
| └────────────────────────────────────────────────────────────────────────────┘ | ||
| ``` | ||
| 界面分四块: | ||
| 1. **顶部标题栏** — 会话名、当前目录、消息数、Token 用量、版本号 | ||
| 2. **对话记录区** — 你和 AI 的聊天记录,包括工具执行结果 | ||
| 3. **输入框** — 打字的地方,支持多行,也能贴图片 | ||
| 4. **底部状态栏** — 快捷键提示和当前状态 | ||
| ### 常用快捷键 | ||
| | 按键 | 做什么 | | ||
| |---|---| | ||
| | `Enter` | 发送消息 | | ||
| | `Shift+Enter` / `Ctrl+J` | 输入换行 | | ||
| | `Tab` | 切换「代理模式」/「计划模式」 | | ||
| | `Ctrl+P` | 打开命令面板 | | ||
| | `Cmd+T`(Mac)/ `Ctrl+T`(其他) | 打开时间线 | | ||
| | `Cmd+N`(Mac)/ `Ctrl+N`(其他) | 新建会话 / 回首页 | | ||
| | `/` | 打开命令面板并过滤 | | ||
| | `@` | 打开技能引用面板 | | ||
| | `Esc` | 打断正在跑的 AI 任务 | | ||
| | `Ctrl+C` | 关弹窗 → 清空输入 → 退出确认 | | ||
| | `Ctrl+V` | 粘贴剪贴板图片 | | ||
| | `↑` / `↓` | 翻输入历史(单行时) | | ||
| ### 斜杠命令 | ||
| 在输入框里打 `/` 就能打开命令面板: | ||
| | 命令 | 干嘛的 | | ||
| |---|---| | ||
| | `/new` | 开一个新会话 | | ||
| | `/timeline` | 看看这个会话的时间线 | | ||
| | `/skills` | 浏览可用的技能 | | ||
| | `/resume` | 打开之前保存的会话 | | ||
| | `/compact` | 压缩一下上下文,省点 Token | | ||
| | `/approvals` | 调整工具授权设置 | | ||
| | `/connect` | 连接模型提供商 | | ||
| | `/models` | 换个模型用 | | ||
| | `/mcp` | 管理 MCP 服务器 | | ||
| | `/plugins` | 看看装了哪些插件 | | ||
| | `/theme` | 换个主题 | | ||
| | `/settings` | 打开设置 | | ||
| | `/language` | 切换界面语言 | | ||
| | `/exit` | 退出 | | ||
| ### 运行中的交互 | ||
| AI 干活的时候可能会弹窗问你: | ||
| - **工具授权** — AI 想跑命令或读文件时问你。按 `Y` 允许一次,`N` 拒绝 | ||
| - **用户询问** — AI 有不清楚的地方,回答完它继续 | ||
| - **退出确认** — 按 `Ctrl+C` 时弹出来,防止手滑关掉 | ||
| --- | ||
| ## 配置 | ||
| 所有配置保存在 `~/.dimcode/` 目录下(SQLite 数据库 + JSON 文件)。 | ||
| ### 添加模型提供商 | ||
| ```bash | ||
| # OpenAI | ||
| dim provider add openai --api-key sk-xxxxxxxx | ||
| # 自定义本地模型 | ||
| dim provider add mylocal --base-url http://127.0.0.1:11434 --model llama3 | ||
| # 切换当前使用的提供商 | ||
| dim provider switch openai | ||
| # 刷新模型列表 | ||
| dim provider refresh-models openai | ||
| ``` | ||
| ### 环境变量 | ||
| | 变量 | 说明 | | ||
| |---|---| | ||
| | `DIMCODE_LOG` | 开启诊断日志,记录到 `~/.dimcode/logs/` | | ||
| | `DIMCODE_DEBUG` | 打印 wrapper 启动调试信息(定位平台二进制问题) | | ||
| | `DIMCODE_BIN_PATH` | 指定自定义二进制路径(开发/调试用) | | ||
| | `NO_COLOR` | 禁用彩色输出 | | ||
| | `HTTPS_PROXY` | 设置 HTTPS 代理 | | ||
| --- | ||
| ## 后台执行(无需界面) | ||
| 适合脚本和自动化场景: | ||
| ```bash | ||
| # 单条提示直接执行 | ||
| dim exec "写一个按列排序 CSV 的 Python 脚本" | ||
| ``` | ||
| ### 退出状态码 | ||
| | 状态码 | 含义 | | ||
| |---|---| | ||
| | `0` | 执行成功 | | ||
| | `1` | 运行时错误 | | ||
| | `2` | 参数错误 | | ||
| | `3` | 认证失败 | | ||
| --- | ||
| ## 升级 & 卸载 | ||
| ```bash | ||
| # 升级到最新 beta | ||
| npm i -g dimcode@beta | ||
| # 卸载 | ||
| npm uninstall -g dimcode | ||
| ``` | ||
| --- | ||
| ## 常见问题 | ||
| **Q: 安装后提示找不到平台二进制?** | ||
| 可能是 npm 跳过了 optionalDependencies。先用 debug 模式确认: | ||
| ```bash | ||
| DIMCODE_DEBUG=1 dim --version | ||
| ``` | ||
| 然后重装一次: | ||
| ```bash | ||
| npm uninstall -g dimcode && npm i -g dimcode@beta | ||
| ``` | ||
| **Q: 启动后显示空白或乱码?** | ||
| 确保终端支持 256 色: | ||
| ```bash | ||
| export TERM=xterm-256color | ||
| ``` | ||
| **Q: 如何中断正在执行的任务?** | ||
| 按 `Esc` 键即可中断当前 AI 的执行回合。 | ||
| **Q: 图片怎么发送给 AI?** | ||
| 直接 `Ctrl+V` 粘贴剪贴板中的图片,或在输入框中粘贴图片路径。 | ||
| **Q: 会话数据存在哪里?** | ||
| 所有本地数据放在 `~/.dimcode/v2/`,会话存在其中的 SQLite 数据库 `dimcode.sqlite` 里(表:`sessions`、`session_states`、`session_relations`、`session_blobs`),不会上传到云端。 | ||
| 目录布局大致是: | ||
| ``` | ||
| ~/.dimcode/v2/ | ||
| ├── config.json 全局配置 | ||
| ├── providers.json 模型提供商 | ||
| ├── auth.json 登录态 | ||
| ├── mcp.json MCP 服务器 | ||
| ├── dimcode.sqlite 会话 / 消息 / 状态 | ||
| ├── dimcode.sqlite-wal | ||
| ├── dimcode.sqlite-shm | ||
| ├── data/ blob 数据 | ||
| └── logs/ 诊断日志 | ||
| ``` | ||
| **Q: 如何删除单个会话?** | ||
| ```bash | ||
| dim session list # 找到要删的 id | ||
| dim session rm <id> | ||
| ``` | ||
| **Q: 如何清空所有历史会话?** | ||
| 最稳的做法是删 SQLite 数据库文件(保留 `config.json`、`providers.json` 等配置): | ||
| ```bash | ||
| rm -f ~/.dimcode/v2/dimcode.sqlite \ | ||
| ~/.dimcode/v2/dimcode.sqlite-wal \ | ||
| ~/.dimcode/v2/dimcode.sqlite-shm | ||
| ``` | ||
| 如果想彻底重置(含配置、登录态、MCP 列表),删整个 v2 目录: | ||
| ```bash | ||
| rm -rf ~/.dimcode/v2 | ||
| ``` | ||
| > 注意:`~/.dimcode/` 下的其它目录(`sessions/`、`dimcode/` 等)是早期版本残留,对 v2 没有作用。 | ||
| --- | ||
| ## License | ||
| 见仓库根目录 LICENSE 文件。 |
+8
-7
| { | ||
| "name": "dimcode", | ||
| "version": "0.2.8-beta.1", | ||
| "version": "0.2.8-beta.2", | ||
| "description": "AI coding agent CLI and terminal coding assistant with an interactive TUI (beta channel)", | ||
@@ -11,11 +11,12 @@ "type": "module", | ||
| "files": [ | ||
| "bin" | ||
| "bin", | ||
| "README.zh.md" | ||
| ], | ||
| "optionalDependencies": { | ||
| "dimcode-darwin-arm64": "0.2.8-beta.1", | ||
| "dimcode-darwin-x64": "0.2.8-beta.1", | ||
| "dimcode-linux-arm64": "0.2.8-beta.1", | ||
| "dimcode-linux-x64": "0.2.8-beta.1", | ||
| "dimcode-windows-x64": "0.2.8-beta.1" | ||
| "dimcode-darwin-arm64": "0.2.8-beta.2", | ||
| "dimcode-darwin-x64": "0.2.8-beta.2", | ||
| "dimcode-linux-arm64": "0.2.8-beta.2", | ||
| "dimcode-linux-x64": "0.2.8-beta.2", | ||
| "dimcode-windows-x64": "0.2.8-beta.2" | ||
| } | ||
| } |
+151
-149
| # dimcode | ||
| > 你的终端 AI 伙伴。在命令行里聊聊天、跑任务、让工作流自动化一点。 | ||
| > An AI coding agent for your terminal. Chat, run tasks, and automate development work from the command line. | ||
| `dimcode` 是一个 AI coding agent CLI,提供交互式 TUI 界面和一次性任务执行模式。 | ||
| `dimcode` is an AI coding agent CLI with an interactive terminal UI and a headless execution mode for one-off tasks. | ||
| [Chinese](./README.zh.md) | ||
| --- | ||
| ## 安装 | ||
| ## Installation | ||
| ```bash | ||
| # beta channel(当前推荐) | ||
| # beta channel (recommended for now) | ||
| npm i -g dimcode@beta | ||
| # 或者用 bun / pnpm | ||
| # or use bun / pnpm | ||
| bun add -g dimcode@beta | ||
@@ -20,3 +22,3 @@ pnpm add -g dimcode@beta | ||
| 安装完成后会得到两个等价命令:`dim` 和 `dimcode`。 | ||
| The package installs two equivalent commands: `dim` and `dimcode`. | ||
@@ -27,7 +29,7 @@ ```bash | ||
| > 安装时 npm 会根据当前平台自动拉取对应的二进制子包(`dimcode-darwin-arm64`、`dimcode-linux-x64` 等),不需要手动选择。 | ||
| > During installation, npm automatically selects the matching platform binary package, such as `dimcode-darwin-arm64` or `dimcode-linux-x64`. You do not need to choose one manually. | ||
| ### 支持的平台 | ||
| ### Supported Platforms | ||
| | 平台 | 子包 | | ||
| | Platform | Binary package | | ||
| |---|---| | ||
@@ -42,127 +44,127 @@ | macOS (Apple Silicon) | `dimcode-darwin-arm64` | | ||
| ## 快速开始 | ||
| ## Quick Start | ||
| ```bash | ||
| # 启动交互式界面,和 AI 聊聊天 | ||
| # Start the interactive terminal UI | ||
| dim | ||
| # 一次性执行,不用进界面 | ||
| dim exec "把 auth 模块重构为 JWT 方案" | ||
| # Run a one-off task without opening the UI | ||
| dim exec "refactor the auth module to use JWT" | ||
| # 查看版本 | ||
| # Show the installed version | ||
| dim --version | ||
| # 查看帮助 | ||
| # Show help | ||
| dim --help | ||
| ``` | ||
| 第一次启动会引导你连接一个模型提供商(OpenAI、Anthropic 或自定义 endpoint)。 | ||
| On first launch, `dimcode` guides you through connecting a model provider such as OpenAI, Anthropic, or a custom endpoint. | ||
| --- | ||
| ## 命令速查 | ||
| ## Command Reference | ||
| | 命令 | 说明 | | ||
| | Command | Description | | ||
| |---|---| | ||
| | `dim` | 启动交互式 TUI 界面(默认) | | ||
| | `dim exec "<提示词>"` | 在后台执行单条提示,不用进界面 | | ||
| | `dim session list` | 列出已保存的会话 | | ||
| | `dim session rm <id>` | 删除指定会话 | | ||
| | `dim provider list` | 查看已配置的模型提供商 | | ||
| | `dim provider add <id> --api-key <密钥>` | 添加提供商(如 `openai`) | | ||
| | `dim provider switch <id>` | 切换当前使用的提供商 | | ||
| | `dim provider refresh-models` | 从提供商刷新模型列表 | | ||
| | `dim mcp list` | 查看 MCP 服务器列表 | | ||
| | `dim auth login` | 登录云端功能 | | ||
| | `dim upgrade` | 检查更新 | | ||
| | `dim --help` | 显示帮助信息 | | ||
| | `dim --version` | 显示版本号 | | ||
| | `dim` | Start the interactive terminal UI (default) | | ||
| | `dim exec "<prompt>"` | Run a single prompt in headless mode | | ||
| | `dim session list` | List saved sessions | | ||
| | `dim session rm <id>` | Delete a saved session | | ||
| | `dim provider list` | Show configured model providers | | ||
| | `dim provider add <id> --api-key <key>` | Add a provider, such as `openai` | | ||
| | `dim provider switch <id>` | Switch the active provider | | ||
| | `dim provider refresh-models` | Refresh model lists from providers | | ||
| | `dim mcp list` | List MCP servers | | ||
| | `dim auth login` | Log in for cloud features | | ||
| | `dim upgrade` | Check for updates | | ||
| | `dim --help` | Show help | | ||
| | `dim --version` | Show the version | | ||
| --- | ||
| ## 交互式界面(TUI) | ||
| ## Interactive Terminal UI | ||
| 直接运行 `dim` 就进终端交互界面了,长这样: | ||
| Run `dim` to open the terminal UI: | ||
| ```text | ||
| +----------------------------------------------------------------------------+ | ||
| | Session title ~/workspace/repo 12 messages | 42k | vdev | | ||
| +----------------------------------------------------------------------------+ | ||
| | | | ||
| | Conversation | | ||
| | - User messages | | ||
| | - Assistant replies | | ||
| | - Tool calls | | ||
| | - Reasoning | | ||
| | | | ||
| +----------------------------------------------------------------------------+ | ||
| | +------------------------------------------------------------------------+ | | ||
| | | Ask anything... | | | ||
| | | Agent mode Ready 42% context ■ Model name | | | ||
| | +------------------------------------------------------------------------+ | | ||
| +----------------------------------------------------------------------------+ | ||
| | Select text Clear input Tab: switch mode Ctrl+P: commands | | ||
| +----------------------------------------------------------------------------+ | ||
| ``` | ||
| ┌────────────────────────────────────────────────────────────────────────────┐ | ||
| │ 会话标题 ~/workspace/repo 12 条消息 | 42k | vdev │ | ||
| ├────────────────────────────────────────────────────────────────────────────┤ | ||
| │ │ | ||
| │ 对话记录 │ | ||
| │ - 用户消息 │ | ||
| │ - 助手回复 │ | ||
| │ - 工具调用 │ | ||
| │ - 思考过程 │ | ||
| │ │ | ||
| ├────────────────────────────────────────────────────────────────────────────┤ | ||
| │ ┌────────────────────────────────────────────────────────────────────────┐ │ | ||
| │ │ 输入问题... │ │ | ||
| │ │ 代理模式 就绪 42% 上下文 ■ 模型名称 │ │ | ||
| │ └────────────────────────────────────────────────────────────────────────┘ │ | ||
| ├────────────────────────────────────────────────────────────────────────────┤ | ||
| │ 拖拽选择文本 清空输入 Tab: 切换模式 Ctrl+P: 命令面板 │ | ||
| └────────────────────────────────────────────────────────────────────────────┘ | ||
| ``` | ||
| 界面分四块: | ||
| The UI has four main areas: | ||
| 1. **顶部标题栏** — 会话名、当前目录、消息数、Token 用量、版本号 | ||
| 2. **对话记录区** — 你和 AI 的聊天记录,包括工具执行结果 | ||
| 3. **输入框** — 打字的地方,支持多行,也能贴图片 | ||
| 4. **底部状态栏** — 快捷键提示和当前状态 | ||
| 1. **Header** - session title, current directory, message count, token usage, and version | ||
| 2. **Conversation** - messages, assistant replies, tool output, and reasoning | ||
| 3. **Composer** - multiline input with image paste support | ||
| 4. **Status bar** - shortcuts and current state | ||
| ### 常用快捷键 | ||
| ### Common Shortcuts | ||
| | 按键 | 做什么 | | ||
| | Shortcut | Action | | ||
| |---|---| | ||
| | `Enter` | 发送消息 | | ||
| | `Shift+Enter` / `Ctrl+J` | 输入换行 | | ||
| | `Tab` | 切换「代理模式」/「计划模式」 | | ||
| | `Ctrl+P` | 打开命令面板 | | ||
| | `Cmd+T`(Mac)/ `Ctrl+T`(其他) | 打开时间线 | | ||
| | `Cmd+N`(Mac)/ `Ctrl+N`(其他) | 新建会话 / 回首页 | | ||
| | `/` | 打开命令面板并过滤 | | ||
| | `@` | 打开技能引用面板 | | ||
| | `Esc` | 打断正在跑的 AI 任务 | | ||
| | `Ctrl+C` | 关弹窗 → 清空输入 → 退出确认 | | ||
| | `Ctrl+V` | 粘贴剪贴板图片 | | ||
| | `↑` / `↓` | 翻输入历史(单行时) | | ||
| | `Enter` | Send message | | ||
| | `Shift+Enter` / `Ctrl+J` | Insert a newline | | ||
| | `Tab` | Switch between agent mode and plan mode | | ||
| | `Ctrl+P` | Open the command palette | | ||
| | `Cmd+T` (Mac) / `Ctrl+T` (other platforms) | Open the timeline | | ||
| | `Cmd+N` (Mac) / `Ctrl+N` (other platforms) | Create a new session / return home | | ||
| | `/` | Open and filter the command palette | | ||
| | `@` | Open the skill picker | | ||
| | `Esc` | Interrupt the current AI turn | | ||
| | `Ctrl+C` | Close modal -> clear input -> confirm exit | | ||
| | `Ctrl+V` | Paste an image from the clipboard | | ||
| | `Up` / `Down` | Browse input history when the composer is single-line | | ||
| ### 斜杠命令 | ||
| ### Slash Commands | ||
| 在输入框里打 `/` 就能打开命令面板: | ||
| Type `/` in the composer to open the command palette: | ||
| | 命令 | 干嘛的 | | ||
| | Command | Action | | ||
| |---|---| | ||
| | `/new` | 开一个新会话 | | ||
| | `/timeline` | 看看这个会话的时间线 | | ||
| | `/skills` | 浏览可用的技能 | | ||
| | `/resume` | 打开之前保存的会话 | | ||
| | `/compact` | 压缩一下上下文,省点 Token | | ||
| | `/approvals` | 调整工具授权设置 | | ||
| | `/connect` | 连接模型提供商 | | ||
| | `/models` | 换个模型用 | | ||
| | `/mcp` | 管理 MCP 服务器 | | ||
| | `/plugins` | 看看装了哪些插件 | | ||
| | `/theme` | 换个主题 | | ||
| | `/settings` | 打开设置 | | ||
| | `/language` | 切换界面语言 | | ||
| | `/exit` | 退出 | | ||
| | `/new` | Create a new session | | ||
| | `/timeline` | Show the current session timeline | | ||
| | `/skills` | Browse available skills | | ||
| | `/resume` | Open a saved session | | ||
| | `/compact` | Compact context to save tokens | | ||
| | `/approvals` | Adjust tool approval settings | | ||
| | `/connect` | Connect a model provider | | ||
| | `/models` | Switch models | | ||
| | `/mcp` | Manage MCP servers | | ||
| | `/plugins` | Show installed plugins | | ||
| | `/theme` | Switch theme | | ||
| | `/settings` | Open settings | | ||
| | `/language` | Change UI language | | ||
| | `/exit` | Exit | | ||
| ### 运行中的交互 | ||
| ### Runtime Prompts | ||
| AI 干活的时候可能会弹窗问你: | ||
| While the agent is working, `dimcode` may ask for input: | ||
| - **工具授权** — AI 想跑命令或读文件时问你。按 `Y` 允许一次,`N` 拒绝 | ||
| - **用户询问** — AI 有不清楚的地方,回答完它继续 | ||
| - **退出确认** — 按 `Ctrl+C` 时弹出来,防止手滑关掉 | ||
| - **Tool approval** - approve or deny a command or file access request with `Y` or `N` | ||
| - **User question** - answer a clarification question and the agent continues | ||
| - **Exit confirmation** - confirm before closing with `Ctrl+C` | ||
| --- | ||
| ## 配置 | ||
| ## Configuration | ||
| 所有配置保存在 `~/.dimcode/` 目录下(SQLite 数据库 + JSON 文件)。 | ||
| Configuration is stored under `~/.dimcode/` as a SQLite database and JSON files. | ||
| ### 添加模型提供商 | ||
| ### Add A Model Provider | ||
@@ -173,51 +175,51 @@ ```bash | ||
| # 自定义本地模型 | ||
| # Custom local model endpoint | ||
| dim provider add mylocal --base-url http://127.0.0.1:11434 --model llama3 | ||
| # 切换当前使用的提供商 | ||
| # Switch active provider | ||
| dim provider switch openai | ||
| # 刷新模型列表 | ||
| # Refresh models | ||
| dim provider refresh-models openai | ||
| ``` | ||
| ### 环境变量 | ||
| ### Environment Variables | ||
| | 变量 | 说明 | | ||
| | Variable | Description | | ||
| |---|---| | ||
| | `DIMCODE_LOG` | 开启诊断日志,记录到 `~/.dimcode/logs/` | | ||
| | `DIMCODE_DEBUG` | 打印 wrapper 启动调试信息(定位平台二进制问题) | | ||
| | `DIMCODE_BIN_PATH` | 指定自定义二进制路径(开发/调试用) | | ||
| | `NO_COLOR` | 禁用彩色输出 | | ||
| | `HTTPS_PROXY` | 设置 HTTPS 代理 | | ||
| | `DIMCODE_LOG` | Enable diagnostic logs under `~/.dimcode/logs/` | | ||
| | `DIMCODE_DEBUG` | Print wrapper startup diagnostics for platform binary issues | | ||
| | `DIMCODE_BIN_PATH` | Use a custom binary path for development or debugging | | ||
| | `NO_COLOR` | Disable colored output | | ||
| | `HTTPS_PROXY` | Configure an HTTPS proxy | | ||
| --- | ||
| ## 后台执行(无需界面) | ||
| ## Headless Execution | ||
| 适合脚本和自动化场景: | ||
| Use `dim exec` for scripts and automation: | ||
| ```bash | ||
| # 单条提示直接执行 | ||
| dim exec "写一个按列排序 CSV 的 Python 脚本" | ||
| # Run one prompt directly | ||
| dim exec "write a Python script that sorts a CSV by column" | ||
| ``` | ||
| ### 退出状态码 | ||
| ### Exit Codes | ||
| | 状态码 | 含义 | | ||
| | Code | Meaning | | ||
| |---|---| | ||
| | `0` | 执行成功 | | ||
| | `1` | 运行时错误 | | ||
| | `2` | 参数错误 | | ||
| | `3` | 认证失败 | | ||
| | `0` | Success | | ||
| | `1` | Runtime error | | ||
| | `2` | Argument error | | ||
| | `3` | Authentication failed | | ||
| --- | ||
| ## 升级 & 卸载 | ||
| ## Upgrade And Uninstall | ||
| ```bash | ||
| # 升级到最新 beta | ||
| # Upgrade to the latest beta | ||
| npm i -g dimcode@beta | ||
| # 卸载 | ||
| # Uninstall | ||
| npm uninstall -g dimcode | ||
@@ -228,7 +230,7 @@ ``` | ||
| ## 常见问题 | ||
| ## FAQ | ||
| **Q: 安装后提示找不到平台二进制?** | ||
| **Q: Installation succeeds, but the platform binary is missing.** | ||
| 可能是 npm 跳过了 optionalDependencies。先用 debug 模式确认: | ||
| npm may have skipped optional dependencies. Check with debug output first: | ||
@@ -239,3 +241,3 @@ ```bash | ||
| 然后重装一次: | ||
| Then reinstall: | ||
@@ -246,5 +248,5 @@ ```bash | ||
| **Q: 启动后显示空白或乱码?** | ||
| **Q: The UI is blank or garbled.** | ||
| 确保终端支持 256 色: | ||
| Make sure your terminal supports 256 colors: | ||
@@ -255,39 +257,39 @@ ```bash | ||
| **Q: 如何中断正在执行的任务?** | ||
| **Q: How do I interrupt a running task?** | ||
| 按 `Esc` 键即可中断当前 AI 的执行回合。 | ||
| Press `Esc` to interrupt the current AI turn. | ||
| **Q: 图片怎么发送给 AI?** | ||
| **Q: How do I send an image to the AI?** | ||
| 直接 `Ctrl+V` 粘贴剪贴板中的图片,或在输入框中粘贴图片路径。 | ||
| Paste an image from the clipboard with `Ctrl+V`, or paste an image path into the composer. | ||
| **Q: 会话数据存在哪里?** | ||
| **Q: Where is session data stored?** | ||
| 所有本地数据放在 `~/.dimcode/v2/`,会话存在其中的 SQLite 数据库 `dimcode.sqlite` 里(表:`sessions`、`session_states`、`session_relations`、`session_blobs`),不会上传到云端。 | ||
| Local data lives under `~/.dimcode/v2/`. Sessions are stored in the SQLite database `dimcode.sqlite` in tables such as `sessions`, `session_states`, `session_relations`, and `session_blobs`. Session data is not uploaded to the cloud. | ||
| 目录布局大致是: | ||
| The directory is roughly: | ||
| ``` | ||
| ```text | ||
| ~/.dimcode/v2/ | ||
| ├── config.json 全局配置 | ||
| ├── providers.json 模型提供商 | ||
| ├── auth.json 登录态 | ||
| ├── mcp.json MCP 服务器 | ||
| ├── dimcode.sqlite 会话 / 消息 / 状态 | ||
| ├── dimcode.sqlite-wal | ||
| ├── dimcode.sqlite-shm | ||
| ├── data/ blob 数据 | ||
| └── logs/ 诊断日志 | ||
| |-- config.json global config | ||
| |-- providers.json model providers | ||
| |-- auth.json login state | ||
| |-- mcp.json MCP servers | ||
| |-- dimcode.sqlite sessions / messages / state | ||
| |-- dimcode.sqlite-wal | ||
| |-- dimcode.sqlite-shm | ||
| |-- data/ blob data | ||
| `-- logs/ diagnostic logs | ||
| ``` | ||
| **Q: 如何删除单个会话?** | ||
| **Q: How do I delete one session?** | ||
| ```bash | ||
| dim session list # 找到要删的 id | ||
| dim session list # find the session id | ||
| dim session rm <id> | ||
| ``` | ||
| **Q: 如何清空所有历史会话?** | ||
| **Q: How do I clear all session history?** | ||
| 最稳的做法是删 SQLite 数据库文件(保留 `config.json`、`providers.json` 等配置): | ||
| The safest reset is to delete the SQLite database files while keeping `config.json`, `providers.json`, and other configuration: | ||
@@ -300,3 +302,3 @@ ```bash | ||
| 如果想彻底重置(含配置、登录态、MCP 列表),删整个 v2 目录: | ||
| To reset everything, including config, login state, and MCP servers, delete the whole v2 directory: | ||
@@ -307,3 +309,3 @@ ```bash | ||
| > 注意:`~/.dimcode/` 下的其它目录(`sessions/`、`dimcode/` 等)是早期版本残留,对 v2 没有作用。 | ||
| > Other directories under `~/.dimcode/`, such as `sessions/` and `dimcode/`, are leftovers from earlier versions and are not used by v2. | ||
@@ -314,2 +316,2 @@ --- | ||
| 见仓库根目录 LICENSE 文件。 | ||
| See the repository root LICENSE file. |
28312
45.32%4
33.33%307
0.66%