Skip to content

数据目录 ​

dcl 把会话、配置、计划、托管安装的语言服务器等数据保存在一个数据目录里,默认是 ~/.deepseek-code,与 Desktop 共用。

位置和覆盖方式 ​

按下面的顺序确定,先找到的生效:

  1. --data-dir <目录>:只对本次启动生效。
  2. 环境变量 DEEPSEEK_CODE_DATA_DIR。
  3. ~/.deepseek-code。

/status 的 Data directory 一行显示当前实际使用的目录。

同时运行多个实例 ​

可以打开多个终端分别运行 dcl,不需要 Desktop 或 Bridge。使用同一个数据目录时,不同会话可以同时发送请求,各自保存消息记录;提供商配置等数据仍然共用。

需要隔离配置和会话时,给每个实例指定不同的数据目录,例如在两个终端分别运行:

bash
dcl --data-dir ./data-a
dcl --data-dir ./data-b

并行任务请使用不同会话,不要在两个独立终端里同时恢复同一个会话并发送任务。需要从另一个终端操作同一个会话时,使用远程控制直连。

数据目录隔离不会隔离工作区文件:两个实例指向同一个项目时,仍可能修改同一份代码。并行任务应避免同时编辑同一个文件。

目录里有什么 ​

路径内容
deepseek_code.db会话、消息、工具调用记录(SQLite)
config.json保存的提供商和模型;首次启动时粘贴的 API Key 也存在这里,文件只有你自己可读
settings.json用户设置,例如 hooks、提示和建议的开关,见设置项参考
plans/计划模式写出的计划文件
lsp//lsp install 托管安装的语言服务器,见语言服务器
tips.json运行提示的显示记录
pasted-images/用 Ctrl+V 粘贴的图片
session-presence/打开中的会话持有的锁,供会话消息判断对方是否在线
keybindings.json自定义快捷键
skills/托管的技能

settings.json 可以配置 hooks(会执行命令),所以模型修改数据目录里的文件时,总是需要你确认(workspaces/ 子目录除外)。

异常关机后的后台任务 ​

后台任务状态保存在 background-tasks/<任务ID>/state.json。状态更新使用临时文件、落盘同步和原子替换,减少突然断电时丢失状态的风险。

启动和任务列表扫描会跳过无法解析的状态记录,并写入诊断日志,让其他会话继续使用。损坏文件会保留,便于排查;不会自动重跑任务,也不会把未知结果当成成功。直接查看或停止这个损坏任务仍会报告错误。

恢复原会话并发送新问题时,dcl 会检查 Worker 的进程占用锁。强制关机或进程退出后,系统自动释放锁;即使 worker.json、current.json、active.json 或任务状态损坏,程序也能在确认旧执行进程已退出后解除旧占用,并为新问题创建 Worker。恢复时会显示提示,原始 Worker 目录和任务日志保留,指针与占用标记另存到会话 Worker 目录的 recovery-<ID>/ 中。

能读取的未完成前台任务会标记为失败,并注明“结果未知,未自动重跑”;其原始状态保存在 state.before-recovery.json。仍在运行的 Worker 不会被接管,独立后台任务也不会被自动重跑。对于没有进程占用锁的旧记录,Windows 和 Linux 可识别本次开机之前的记录并恢复;无法确认进程已退出时会保留记录并提示原因。

如果旧任务状态已丢失,可从会话历史确认工作进度,再决定是否重新执行。无需为单条任务记录清空整个数据目录。磁盘或硬件故障仍可能造成数据丢失,重要数据应定期备份。

与 Claude Code 共用的目录 ​

Claude Code 兼容的用户级资源保持在原来的位置,dcl 会读取但不会移动它们:

  • ~/.claude/skills、~/.claude/commands:技能和自定义命令;
  • ~/.claude/ide:IDE 扩展写入的锁文件;
  • ~/.claude/plugins:在 Claude Code 中安装的插件,其中的 LSP 插件会被 dcl 使用,见语言服务器;
  • 项目里的 .claude/ 目录。

独立文档站 · Desktop(Tauri 2)与 CLI(Rust)