本地数据
LinkCode 保存在你机器上的每个文件,各自的用途,以及如何重置它们以恢复到干净状态。
你的 host(即 LinkCode daemon)会把它所拥有的一切都保存在你的家目录下,以你可以自行查看或删除的普通文件形式存放。除非你使用某项明确说明会同步的 LinkCode Cloud 功能,否则这里的内容不会被同步到任何地方。
~/.linkcode/config.json
可选 —— 在你首次保存需要它的内容时创建。保存内容包括:
- 监听器覆盖项(host/port),前提是你从默认值改动过它们。
- 各 Agent 的 provider 设置:某个 Agent 是否启用、它的默认模型,以及它的 API key(Claude Code、Codex、OpenCode、Pi 各有自己的条目)。
因为它可能保存 API key,所以以仅所有者可访问的权限(模式 0600)写入。若设置了环境变量 LINKCODE_PORT 和 LINKCODE_HOST,它们会覆盖此文件中的相应内容。
~/.linkcode/daemon.db
一个 SQLite 数据库 —— 线程与工作区的注册表。它记录了存在哪些线程、每个线程属于哪个工作区、它们的创建与最近使用时间,以及 —— 对于支持的 Agent —— 一个指向该 Agent 自有历史的指针,以便 LinkCode 恢复或导入它。
它不会存储你的对话内容。真正的记录内容存放在各 Agent 自己的 SDK/CLI 保存历史的地方(例如 Claude Code 和 Codex 各自独立于 LinkCode 维护自己的本地历史)。当新版本的 host 首次启动时,迁移会自动运行。
~/.linkcode/runtime.json
在 host 完成监听器绑定后写入一次。本地客户端(桌面应用)正是靠它来找到正在运行的 host,而无需你告诉它端口:客户端读取此文件获取 host 的进程 ID 和 URL,确认该进程仍然存活,并确认它确实作为 LinkCode host 作出响应,然后才信任它。
host 干净关闭时会自动移除此文件。如果 host 被强制杀死,可能会留下一个陈旧文件 —— 下次启动(或某个客户端检查它时)会检测到已失效的进程 ID 并忽略它。
~/LinkCode
作为 Chats 后端的文件夹 —— 这是为那些不隶属于你自行添加的项目的线程准备的内置工作区。它就是个普通文件夹:从应用的 Chats 区打开它,或直接浏览它。
桌面设置
桌面应用会把自己的设置 —— 主题、语言,以及手动的 host URL 覆盖 —— 保存为 settings.json,放在其操作系统标准的每应用数据目录下:
- macOS:
~/Library/Application Support/LinkCode - Windows:
%APPDATA%\LinkCode - Linux:
~/.config/LinkCode
与 config.json 一样,它以仅所有者可访问的权限写入。
端口
host 默认监听端口 19523。如果该端口被别的东西占用,它会向上探测 —— 19524、19525,以此类推,直到 19532 —— 之后才放弃。如果该端口被另一个 LinkCode host 占用,新进程会拒绝启动:每台机器只运行一个 host。客户端无需猜测哪个端口最终胜出 —— 它们会从上面的 runtime.json 中读取。如果你遇到端口冲突,参见 Troubleshooting。
重置 LinkCode
要恢复到干净状态:
停止 host(关闭正在运行它的终端,或用你启动它的任何方式停止它)。
删除 ~/.linkcode/daemon.db 和 ~/.linkcode/runtime.json。这会清空你的线程和工作区列表。你真正的对话不会因此丢失 —— 每个 Agent 都独立于 LinkCode 保存自己的记录,所以那里可恢复的内容仍然存在,并可重新导入。
如果你还想清除已保存的 Agent 设置和 API key,也一并删除 ~/.linkcode/config.json。
不要动 ~/LinkCode,除非你确实想删除你的 Chats 文件 —— 它是个普通文件夹,而不是内部状态。