外观
数据目录
dcl 把会话、配置、计划、托管安装的语言服务器等数据保存在一个数据目录里,默认是 ~/.deepseek-code,与 Desktop 共用。
位置和覆盖方式
按下面的顺序确定,先找到的生效:
--data-dir <目录>:只对本次启动生效。- 环境变量
DEEPSEEK_CODE_DATA_DIR。 ~/.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/目录。