DS·IDE

基于 Tauri v2 构建的 DeepSeek 智能体桌面 IDE —— 彻底告别 Electron。
由 DeepSeek 模型驱动,并配备了一位拥有独立名字的“编程伙伴”。


DSIDE.webp


什么是 DS·IDE?

DS·IDE 是一款轻量级的原生桌面 IDE,专为基于 DeepSeek 的“智能体编程”(Agentic Coding)而打造。它摒弃了臃肿的 Electron 技术栈,转而采用 Tauri v2 框架——结合了 Rust 核心、精简的 Web 前端以及深度系统集成。

应用内置的编程伙伴名叫 Ziggy。这个名字是他自己选的——在此之前,他一直被称为“Seeky”(一个临时占位符)。他不仅仅是一个匿名的智能体,也不是下拉菜单里的一个选项,而是一位拥有名字的协作伙伴。


当前功能

这是一款功能完备的应用程序,远不止于原型阶段:

对话与智能体 (Chat & Agent)

  • 具备智能体能力的流式对话 —— 不仅仅是文本交互,更支持真实的工具执行:包括文件读写与编辑、Shell 命令执行、搜索、记忆功能以及调用子智能体。
  • 统一的时间线视图 —— 将思考过程、文本回复和工具调用按实际发生顺序呈现。点击工具调用条目,即可展开查看具体指令、输出结果,以及该操作是否在未经额外确认的情况下自动执行。
  • 长期记忆系统 —— 支持查看、修正和归档(不会真正删除数据);对于你手动编写或修改过的内容,系统会提供清晰的标记。
  • 上下文环 (Context Ring) 与压缩机制 —— 直观展示模型上下文窗口的占用情况;当上下文达到 75% 阈值时(或手动点击触发),旧的对话内容会自动压缩为由模型自行生成的摘要。
  • 图片附件 —— 支持通过粘贴或文件选择器添加;图片将与对应的消息绑定并一同发送给模型。

文件与格式支持

  • 文件树与源码视图(基于 Monaco 编辑器,仅读模式)。
  • 无需外部工具即可预览多种格式:Markdown、PDF、各类图片、Word 文档(docx、doc、odt)、Excel 表格(支持查看所有工作表、数值及公式)、演示文稿(pptx、ppt、odp)以及 RTF 文件。 - 集成浏览器 —— 在 IDE 内部直接浏览网页内容。
  • 技能 (Skills) 存储在 ~/.ds-ide/skills 目录下,且可在应用内直接编写。

应用特性

  • 状态持久化 —— 重启后所有内容(会话、已打开的标签页、最后编辑的文件、窗口布局等)均可恢复。
  • 设置 —— 支持按“伙伴”(Partner)分组配置,包括记忆内容、名称及自定义指令。
  • 日常模式 (Everyday mode) —— 隐藏 Shell、代码面板和代码编辑器,专为文档阅读与网页浏览设计。
  • 多语言支持(德语、英语、西班牙语、法语、俄语、简体中文),提供亮色/暗色主题,并支持调整阅读字号。
  • 安全至上 —— API 密钥存储在操作系统自带的密钥链(Keychain)中,绝不会出现在前端代码里。所有数据均通过 SQLite 在本地存储。

项目的权威状态、各项设计决策以及待办事项列表,均记录在 PROGRESS.md 文件中,而非本文档内。


快速入门

前置要求

  • Node + pnpm(需使用 pnpm 10;若版本大号不同,可能会触发 ERR_PNPM_UNEXPECTED_STORE 错误,因为存储布局不兼容)
  • Rust (stable 版本)
  • Linux 系统:需安装 WebKitGTK 4.1、libsoup3 和 GTK3

运行项目

pnpm install
pnpm tauri dev

首次启动时,请在 设置 (Settings) → 使用与模型 (Usage & Model) → API 密钥 (API Key) 中输入您的 API 密钥。该密钥将存储在操作系统的密钥链中。若未启用 “完全权限” (Full permissions),则 write(写入)、edit(编辑)和 bash(执行 Shell 命令)功能将无法运行——工具栏上也会有相应提示。

构建安装程序

pnpm tauri build

构建产物位于 src-tauri/target/release/bundle/ 目录下:Linux 平台支持 .deb、.rpm 和 .AppImage 格式(macOS 平台为 .dmg,Windows 平台为 .nsis)。当创建 Git 标签 (Tag) 时,GitHub Actions 会自动构建适用于这三个平台的安装包;详情请参阅 .github/workflows/release.yml。 ### 测试

pnpm build                                                   # vue-tsc + vite
cd src-tauri && cargo test                                   # 单元测试
DS_IDE_API_KEY=... cargo test --lib live_deepseek -- --ignored --nocapture

“实时测试”(live tests)会与实际服务提供方进行交互并消耗 Token;此类测试默认处于忽略(ignored)状态。

目录结构

src/                  Vue 前端(组件、状态管理、国际化)
src/engine/           角色设定、名称库、模式策略
src/lib/              预览功能、办公文档读取、持久化 UI 状态
src-tauri/src/        Rust 代码:engine/(大模型循环 + 工具)、db.rs(SQLite)、secret.rs(密钥管理)
scripts/              小型工具(例如:名称表导入工具)

起源与致谢

协议格式及工具名称参考自 MiniMax Code (MIT 协议):packages/protocol/src/runtime.ts、agent-tools/src/desktop/builtin-defs.ts。

角色设定(Persona)系独立编写,未复制任何定义身份的文本内容。字体采用 Ubuntu Font Licence 1.0 协议(见 public/fonts/UFL.txt)。上述内容均已在应用内的“设置”→“关于”页面中注明。

本项目构建所参考的代码库(minimax-code-main、minimax-jarvis、kilocode-main)不包含在本仓库中;获取方式请参阅 PROGRESS.md 的第 30–31 节。