基于 DeepSeek、OpenAI 或 OpenAI-compatible API 的 AI 编程助手 CLI。在终端中与 AI 对话,完成代码读写、搜索、命令执行等任务。
npm install -g @mrdistore/ds-code配置优先级为:CLI 参数 > 项目配置 > 全局配置 > 环境变量/默认值。
配置文件位置:
- 全局配置:
~/.ds-code/config.json - 项目配置:当前项目下的
.ds-code/settings.json
设置 API Key:
# DeepSeek
export DEEPSEEK_API_KEY=sk-xxx
# OpenAI
export OPENAI_API_KEY=sk-xxxWindows PowerShell:
$env:DEEPSEEK_API_KEY="sk-xxx"
$env:OPENAI_API_KEY="sk-xxx"OpenAI-compatible 中转站可通过配置文件或 CLI 指定:
{
"provider": "custom",
"baseUrl": "https://relay.example.com",
"apiKey": "sk-xxx",
"model": "openai/gpt-4o"
}完整配置示例:
{
"provider": "deepseek",
"apiKey": "sk-xxx",
"baseUrl": "https://api.deepseek.com",
"model": "deepseek-v4-pro",
"maxTokens": 4096,
"temperature": 0.2,
"timeout": 120000,
"permissions": {
"allowedCommands": [
"git status",
"pnpm test"
],
"allowAllCommands": false
},
"skills": {
"enabled": true,
"autoMatch": true,
"autoMatchModel": true
}
}常用字段:
| 字段 | 说明 |
|---|---|
provider |
API 提供方:deepseek、openai 或 custom |
apiKey |
API Key;也可通过环境变量 DEEPSEEK_API_KEY / OPENAI_API_KEY 设置 |
baseUrl |
API 基础地址,使用中转站时设置 |
model |
模型名称,如 deepseek-v4-pro、deepseek-reasoner、gpt-4o |
maxTokens |
单次响应最大 token 数 |
temperature |
采样温度 |
timeout |
请求超时时间,单位毫秒 |
permissions.allowedCommands |
预允许执行的 Bash 命令,支持以 * 结尾的前缀匹配 |
permissions.allowAllCommands |
允许所有非危险 Bash 命令;危险命令仍会被拒绝 |
skills.enabled |
是否启用 skills 功能 |
skills.autoMatch |
是否对普通输入进行 skill 自动匹配(命中后会弹出确认) |
skills.autoMatchModel |
本地规则未命中时,是否允许调用模型进行 skill 匹配(更准但会多一次请求) |
AGENTS.md 可放在项目目录或父目录中,用于提供项目级 AI 指令;启动时会读取离当前目录最近的一个。
Skills 用于把常见任务封装成“可复用指令”。当启用自动匹配时,你直接用自然语言描述需求,ds-code 会尝试匹配到某个 skill,并在执行前请求确认。
- 触发方式
- 手动:输入
/<skill> ...(会自动补全) - 自动:直接输入自然语言(由
skills.autoMatch/skills.autoMatchModel控制)
- 手动:输入
配置在 skills 字段下:
{
"skills": {
"enabled": true,
"autoMatch": true,
"autoMatchModel": true
}
}建议:
- 不想被频繁打断:将
skills.autoMatch设为false(仍可手动用/<skill>调用) - 想更少误触发且不增加额外请求:
autoMatch=true、autoMatchModel=false
- 手动调用(推荐用于可重复流程):
/review 看下当前git改动
- 自动匹配调用:
看下当前git改动
如果匹配到 skill,会弹出是否激活;确认后会以 /<skill> ... 的形式展示在聊天记录中。
# 启动交互式对话
ds-code
# 带初始 prompt 启动
ds-code "帮我看看这个项目的结构"
# 指定模型
ds-code --model reasoner
# 使用 OpenAI
ds-code --provider openai --model gpt-4o
# 使用 OpenAI-compatible 中转站
ds-code --provider custom --base-url https://relay.example.com --model openai/gpt-4o
# 恢复上次会话
ds-code --resume- 交互式终端 UI — 流式输出,实时工具调用状态显示
- Agent 工具链 — 自动读写文件、搜索代码、执行命令,完成复杂任务
- 权限控制 — 只读操作自动放行,写入和命令执行需确认
- 多模型切换 — DeepSeek 模型、OpenAI GPT 模型、OpenAI-compatible 中转站模型
- 上下文管理 — 长对话自动压缩,会话持久化保存与恢复
- 斜杠命令 — 输入
/自动补全,12 个内置命令
在对话中输入 / 触发自动补全:
| 命令 | 说明 |
|---|---|
/help |
查看帮助 |
/clear |
清空对话 |
/exit |
退出 |
/model |
交互式切换模型 |
/model <name> |
直接切换(如 reasoner / gpt-4o / 中转站模型别名) |
/status |
查看状态信息 |
/tools |
列出可用工具 |
/cost |
token 用量估算 |
/compact |
手动压缩上下文 |
/resume |
恢复上次会话 |
/doctor |
检查运行环境 |
/version |
版本号 |
| 按键 | 作用 |
|---|---|
Ctrl+C |
中断当前请求 |
Ctrl+D |
退出 |
""" |
进入/退出多行输入 |
↑↓ |
补全列表导航 |
Enter/Tab |
选中补全项 |
Esc |
关闭补全 |
| 工具 | 说明 | 权限 |
|---|---|---|
read_file |
读取文件,支持行范围 | 自动 |
write_file |
创建或覆写文件 | 需确认 |
edit_file |
精确字符串替换 | 需确认 |
glob |
文件名模式匹配 | 自动 |
grep |
正则内容搜索 | 自动 |
list_dir |
列出目录 | 自动 |
bash |
执行 Shell 命令 | 需确认 |
- Node.js >= 20
- DeepSeek API Key、OpenAI API Key 或 OpenAI-compatible 中转站 Key
git clone https://github.com/qddidi/ds-code.git
cd ds-code
pnpm install
pnpm dev # 开发运行
pnpm build # 构建
pnpm test # 测试
pnpm lint # 代码检查
pnpm typecheck # 类型检查MIT