@mrdistore/ds-code
v1.1.5
Published
AI-powered coding assistant CLI using DeepSeek API
Maintainers
Readme
ds-code
基于 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(技能)
Skills 用于把常见任务封装成“可复用指令”。当启用自动匹配时,你直接用自然语言描述需求,ds-code 会尝试匹配到某个 skill,并在执行前请求确认。
- 触发方式
- 手动:输入
/<skill> ...(会自动补全) - 自动:直接输入自然语言(由
skills.autoMatch/skills.autoMatchModel控制)
- 手动:输入
Skills 配置
配置在 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 # 类型检查License
MIT
