隐私与数据
一切皆在本地——你的数据存在何处、什么绝不离开你的机器,以及智能体密钥边界。
Cordy Desktop 在强意义上是本地优先的:你的项目、工作区、笔记与布局都存储在你的机器上,除非你有意导出,否则不上传任何内容,而且 Cordy 从不触碰你智能体的提供商密钥、prompt 或响应。
本地优先的设计
没有 Cordy 账户,没有登录,也没有云端同步。Cordy 不运行服务器、不收集遥测、不回传。你创建的一切都存放在你自己磁盘上的一个用户数据目录中,并且应用完全可离线工作(除了你所用的智能体与 Git 远端本身所需的网络之外)。
你的数据存在何处
Cordy 把数据存储在你操作系统标准的应用数据目录下、Cordy 自己的文件夹中:
| 操作系统 | 基础位置 |
|---|---|
| Windows | %APPDATA%(例如 C:\Users\<你>\AppData\Roaming) |
| macOS | ~/Library/Application Support |
| Linux | ~/.config(或 $XDG_CONFIG_HOME) |
你可以用 CORDY_USER_DATA_DIR 环境变量把 Cordy 指向另一个目录(见 运行时)。在该目录内:
| 路径 | 承载内容 |
|---|---|
project-workspace/project-workspace-store.json | 你的项目、工作区、笔记本元数据、活动选择与布局 |
project-workspace/notebooks/<id>.md | 你的笔记本正文(每条笔记一个文件) |
project-workspace/*.backup-*.json | store 的自动本地备份 |
agent-presets.json | 你的自定义智能体预设(命令、参数、环境变量覆盖) |
themes/*.json | 你的自定义或导入的主题 |
window-appearance.json | 最后的窗口背景色 |
logs/、diagnostics/、Crashpad/ | 日志、结构化事件与崩溃转储(见 故障排查) |
有两项渲染层设置——你的外观选择与任何键盘快捷键覆盖——保存在同一用户数据目录内、应用的本地浏览器存储中。上述一切都在本地;其中没有任何内容会被同步。
什么会离开你的机器
除非你导出,否则什么都不会。具体而言:
- 没有遥测或分析。 Cordy 中不含任何分析 SDK。
- 崩溃报告留在本地。 原生崩溃 minidump 会写入磁盘,且上传被禁用——未配置任何崩溃报告服务器,因此它们绝不离开机器。
- 唯一的出站数据是一次手动的诊断导出,下文将说明。
你会看到的其他网络流量来自 Cordy 代你启动的工具——你的 CLI 智能体与其提供商通信,以及 Git 与你的远端通信——而非来自 Cordy 本身。
诊断导出
当你从性能监视器导出一个诊断包时(见 故障排查),Cordy 会向你的磁盘写入一个文件夹,其中包含应用与环境信息、指标与重启历史、近期事件,以及日志的尾部。写入之前,它会脱敏路径:绝对文件路径变为 [redacted-path],路径样式的元数据变为 [redacted]。
该导出仅为本地文件写入——Cordy 不会把它发送到任何地方。若你想在错误报告中分享它,需由你自行附加该文件夹。由于何时创建、是否分享都由你掌控,它是你的数据离开机器的唯一途径,而且事先已被清除路径。
智能体边界
Cordy 把你的 CLI 智能体作为普通子进程启动进工作区终端。它托管并观察它们;它不是智能体与其提供商之间对话的一部分。具体而言:
- Cordy 不持有任何提供商 API 密钥。 每个智能体都从各自的环境或配置文件中读取自己的凭据,与你亲自运行它时完全一样。
- Cordy 从不读取、存储或代理智能体的 prompt 或响应。运行时只为渲染与回滚处理原始终端字节;它不做任何模型调用。
- 你看到的智能体状态是从少量输出模式中推断出的。活动面板只展示每次状态变化背后匹配到的行、启发式原因与退出码——绝不展示智能体的原始输出——而且这些证据保存在内存中、绝不写入磁盘。见 智能体。
关于预设环境变量的说明
自定义智能体预设允许你为它所启动的命令设置环境变量,而你可以选择在其中放入一个类似密钥的值。若你这么做,该值会像任何其他预设字段一样存储在本地的 agent-presets.json 中,并且仅用于设置你所启动的本地进程的环境。Cordy 不会把它传输到任何地方——但请以对待任何可能含有机密的文件相同的谨慎来对待该文件。
没有账户,没有追踪
概括这些保证:
- 没有 Cordy 账户,没有登录。
- 没有遥测、分析或使用情况追踪。
- 除了由你发起的、手动且路径已脱敏的诊断导出之外,不上传任何内容。
- 不持有任何提供商密钥,也不读取任何智能体的 prompt 或响应。