通用 AI 代码助手 · DeepSeek 原生 · 跨模型
桌面 GUI + 浏览器 Web 双端。Rust 引擎,React 前端。
dscode-desktop (Tauri 2 + React) ──┐
dscode-web (axum + SSE, 浏览器) ──┤
dscode-cli ──────────────────────┤
▼
┌──────────────────────┐
│ dscode-server │ ← 共享业务层
│ 命令分发 · 事件总线 · 状态 │
└──────────────────────┘
▼
┌──────────────────────────────────────────────────┐
│ dscode-core │
│ │
│ Forge ── ReAct 循环 + /auto /plan /teams │
│ Scribe ─ 三级记忆 Raw → Fact → Pattern │
│ Extensions ─ MCP · Skills │
│ │
│ Provider ─ DeepSeek / OpenAI / Anthropic │
│ Session ─ SQLite 持久化 │
│ Tools ─ bash · file · bg · web · rss · github │
│ Safety ─ 超时检测 · 危险拦截 │
└──────────────────────────────────────────────────┘
- ReAct 智能体循环 — 流式推理 + 工具调用,内建死循环检测与错误抑制
- 上下文窗口 — 可配置最高 1M tokens,支持阈值触发自动压缩
- 工具链校验 — 加载时 + 运行时自动清理孤立工具调用,杜绝 400 错误
- 多模型支持 — DeepSeek V4、OpenAI、Anthropic Claude(原生 API)、本地 Ollama
- Responses API — 支持 OpenAI/DeepSeek 新版
/responses端点(input+instructions格式,语义化 SSE 事件) - 思考模式 — Anthropic 扩展思考 + DeepSeek R1 推理链,支持 reasoning_effort 配置
- 任务自动拆解为子任务,逐个执行
- 审查 → 执行 → 评分 循环,质量评分 (0-100)
- 停滞检测 + 自动重新拆解(最多 3 轮重组)
- 可与 /teams 叠加:独立子任务并行执行(最多 4 个并发)
- 深度访谈:范围 → 需求 → 设计 → 风险 → 质量
- LLM 驱动的自适应提问,自动代码库快照
- 生成结构化 PRD 文档(架构决策、实施步骤、测试计划)
- 无限子 Agent 分发,实时进度监控
- 与 /auto 叠加:子任务并行执行 + 自动双模式
- 结果聚合与合并指令
- Raw Messages → Facts (三元组) → Patterns (泛化模式)
- 全文搜索 (FTS5) + 模式匹配
- 事实三元组自动提取与模式归纳
- MCP — Model Context Protocol 全生命周期管理(连接、工具发现、代理注册为
mcp_<server>_<tool>) - Skills — Agent Skills / skills.sh 生态系统兼容
- YAML 前置元数据的技能文件,按触发器路由
- 自动激活匹配技能,支持脚本/参考文档/资源目录
do_skill_install从 GitHub 安装第三方技能包
- RSS / Atom 阅读器 — 解析任意订阅源为结构化条目,Agent 可直接读取
- GitHub 搜索 — 公共 REST API 代码/仓库搜索,免 token(限流)
- 双端同源 — Tauri 桌面与浏览器 Web 共用同一套 React 前端与业务逻辑
- 附件上传 — 拖拽/粘贴文件(图片、文本、代码),自动识别类型
- 模型切换 — 运行时切换模型与 Provider
- 团队模式 — 一键启用多 Agent 协作
- 会话管理 — 创建/重命名/删除/搜索会话,SQLite 持久化
- 设置面板 — MCP 服务器配置、Skills 管理、Provider API Key
- 流式渲染 — Thinking 块、Tool Call 卡片、Fact 提取实时展示
- Web 部署 — axum 服务 + SSE 事件流,一键安装脚本,默认绑定本机
- Rust 1.85+
- Node.js 18+
- macOS / Linux / Windows
# 下载预编译安装包
# https://github.com/fivif/dscode/releases
# 或从源码运行
cd crates/dscode-desktop/ui && npm install
cd .. && cargo tauri dev# 一键安装:编译 + 装到 ~/.local
bash scripts/install-web.sh
# 启动 → 浏览器打开 http://127.0.0.1:8080
dscode-web
# 自定义监听地址 / 前端目录(可选)
DSCODE_WEB_ADDR=0.0.0.0:8080 dscode-web
DSCODE_WEB_DIST=/path/to/dist dscode-web默认仅绑定
127.0.0.1(本机访问)。暴露到网络前请自行加反向代理认证, 否则等于开放本机 shell。
cargo run -p dscode-cli -- "分析 src/main.rs"
# Teams 模式
cargo run -p dscode-cli -- --teams "重构认证模块"make build # Release 构建
make build-debug # Debug 构建
make test # 运行所有测试
make lint # Clippy + 格式检查
make all # 构建 + 测试 + Lint配置文件位于 ~/.dscode/config.toml:
default_model = "deepseek/deepseek-v4-pro"
router_model = "deepseek/deepseek-chat" # 廉价路由模型
active_provider = "deepseek"
[providers.deepseek]
api_key = "your-api-key"
base_url = "https://api.deepseek.com/v1"
enabled = true
[providers.openai]
api_key = "your-openai-key"
base_url = "https://api.openai.com/v1"
enabled = false
[providers.anthropic]
api_key = "your-anthropic-key"
base_url = "https://api.anthropic.com"
enabled = false
[context]
window_tokens = 1000000 # 上下文窗口大小
compress_threshold = 0.8 # 压缩触发阈值
compress_min_history = 4 # 最少保留消息数
[generation]
max_tokens = 8192
temperature = 0.7
reasoning_effort = "medium" # low | medium | high
[safety]
tool_timeout_secs = 120 # 工具执行超时
[session]
retention_days = 30 # 会话保留天数
[proxy]
enabled = false
http = "http://127.0.0.1:7890"
https = "https://127.0.0.1:7890"
[agent]
system_prompt_extra = "" # 追加到默认系统提示DS_code/
├── crates/
│ ├── dscode-core/ # 核心引擎
│ │ └── src/
│ │ ├── agent/ # ReAct Forge 循环、上下文管理、流事件
│ │ ├── auto/ # /auto 任务拆解与执行
│ │ ├── config/ # 配置系统 (TOML)
│ │ ├── extensions/ # MCP + Skills 扩展系统
│ │ ├── magi/ # /auto 自动执行引擎
│ │ ├── memory/ # Scribe 三级记忆系统
│ │ ├── plan/ # /plan 五阶段需求访谈 + PRD
│ │ ├── providers/ # LLM 适配器 (OpenAI/Anthropic/DeepSeek)
│ │ ├── safety/ # 安全守卫
│ │ ├── session/ # 会话持久化 (SQLite)
│ │ ├── teams/ # 多 Agent 团队分发与监控
│ │ └── tools/ # 工具注册表与实现 (bash/fs/bg/skills/mcp)
│ ├── dscode-server/ # 共享业务层(命令分发、事件总线、状态)
│ ├── dscode-desktop/ # Tauri 2.x 桌面壳(转发到 dscode-server)
│ │ ├── src/ # Rust 后端(薄壳 + Tauri 命令转发)
│ │ └── ui/ # React 18 前端 (TypeScript + Tailwind)
│ │ └── src/
│ │ ├── components/ # UI 组件 (Chat, Settings, Sidebar)
│ │ ├── hooks/ # 自定义 Hooks
│ │ ├── lib/ # 工具库 (双通道: tauri IPC / fetch+SSE)
│ │ └── stores/ # Zustand 状态管理
│ ├── dscode-web/ # axum 服务壳(HTTP + SSE,浏览器访问)
│ ├── dscode-tui/ # ratatui 终端界面
│ └── dscode-cli/ # 单次命令行工具
├── scripts/
│ └── install-web.sh # Web 版一键安装脚本
├── config/
│ └── default.toml # 默认配置模板
├── Cargo.toml # 工作区根配置
└── README.md
| 层 Layer | 技术 Technology |
|---|---|
| 核心引擎 | Rust (tokio, reqwest, rusqlite) |
| 桌面 GUI | Tauri 2.x + React 18 + TypeScript + Tailwind CSS |
| Web 服务 | axum + SSE (EventSource) + tower-http |
| 状态管理 | Zustand |
| 会话存储 | SQLite (rusqlite + FTS5) |
| Markdown | react-markdown + remark-gfm |
| 配置 | serde + TOML |
| 包管理 | pnpm |
| 文档 | 描述 |
|---|---|
| README.md | 项目概览与快速开始 |
| LICENSE | MIT 许可证 |
| config/default.toml | 配置文件模板 |
感谢 Linux DO 社区的支持。
相关项目:zblog
MIT — 详见 LICENSE


