文档
技术参考

本地数据

LinkCode 保存在你机器上的每个文件、各自的用途、凭据如何受保护,以及如何全部重置到干净状态。

你的 host(即 LinkCode daemon)把它拥有的一切都放在主目录下,都是你可以自己查看或删除的普通文件。除非你使用了明确说明会同步的 LinkCode Cloud 功能,这里的东西不会同步到任何地方。

~/.linkcode/config.json

可选——第一次保存需要它的东西时创建。存放监听项覆盖(host/端口)以及你的按智能体设置:是否启用、默认模型、使用哪个账号。

不含任何凭据,凭据在下面的 secrets.json 里。以仅属主可读的权限(0600)写入。若设置了环境变量 LINKCODE_PORTLINKCODE_HOST,它们优先于此文件中的值。

~/.linkcode/secrets.json

host 持有的每一份长期凭据:API key、每个 provider 账号背后的密钥、你的 LinkCode Cloud 登录态,以及设备密钥。该文件是 AES-256-GCM 密文,解开它的主密钥存放在你操作系统的钥匙串里——所以单独拿到这个文件毫无价值,把备份恢复到另一台机器得到的也是一个空的凭据库,而不是一份可移植的凭据。

并非每台机器都有可用的钥匙串

在没有可用钥匙串的机器上(最常见的是没有 Secret Service 的无头 Linux),存储会降级为明文而不是拒绝启动,并在文件中记录这一点、在启动时告警。一旦钥匙串可用,它会自行重新加密。明文存储是可移植的——这句话等同于「任何能读到该文件的东西都能读到它」。

丢失钥匙串条目只会丢失凭据本身:host 变为未登录状态,账号从可用池中消失,你重新填一次即可。

~/.linkcode/daemon.db

一个 SQLite 数据库——线程工作区的登记表。它记录存在哪些线程、各属于哪个工作区、创建与最近使用时间,以及指向智能体自身历史的指针,供 LinkCode 恢复或导入。

保存你的对话内容。真正的记录存在各个智能体自己保存历史的地方。新版本 host 首次启动时会自动执行迁移。

~/.linkcode/runtime.json

在 host 完成监听绑定后写入,仅属主可读。客户端正是靠它在你不指定端口的情况下找到运行中的 host:读取其中的进程 ID 和 URL,确认该进程仍存活,并确认它确实以 LinkCode host 的身份应答,然后才信任它。

host 正常关闭时会自动删除。若 host 被强制杀掉,可能残留一个过期文件——下次启动(或客户端检查时)会发现进程 ID 已失效并忽略它。

~/.linkcode/cloud.json

登录 LinkCode Cloud 后出现:记录这台 host 注册为哪个账号、哪台设备。凭据本身在 secrets.json 里。退出登录会同时清除两者。

~/LinkCode

Chats 背后的文件夹——用于不挂靠你自己添加项目的线程的内置工作区。它就是一个普通文件夹:可以从应用的 Chats 区块打开,也可以直接浏览。

下载的智能体运行时

LinkCode 替你下载的智能体存放在它的资源库中,位于平台的应用数据目录下,与桌面应用自身的数据同级——例如 macOS 上的 ~/Library/Application Support/LinkCode/assets。被取代的旧版本会在新版就位后自动清理。

桌面设置与日志

桌面应用把自己的设置——主题、语言、外观,以及手动的 host URL 覆盖——以 settings.json 存放在各系统标准的应用数据目录下,仅属主可读:

  • macOS:~/Library/Application Support/LinkCode
  • Windows:%APPDATA%\LinkCode
  • Linux:~/.config/LinkCode

应用同时会把 host 的输出记录到日志文件:

  • macOS:~/Library/Logs/LinkCode/main.log
  • Windows:%APPDATA%\LinkCode\logs\main.log
  • Linux:~/.config/LinkCode/logs/main.log

端口

host 默认监听 19523 端口。若该端口被别的程序占用,它会向上寻找——19524、19525,依此类推直到 19532——再放弃。如果占用者是同一份安装的另一个 host,新进程会直接拒绝启动:同时只运行一个。客户端不需要猜是哪个端口胜出——它们从上面的 runtime.json 读取。遇到端口冲突见疑难排查

从源码构建的 LinkCode 使用自己的状态目录(~/.linkcode.development)和端口区间,因此永远不会与已安装的应用相撞。

重置 LinkCode

想回到干净状态:

退出 LinkCode。host 会随之关闭。

删除 ~/.linkcode/daemon.db~/.linkcode/runtime.json。这会清空你的线程与工作区列表。真正的对话不会丢——每个智能体独立于 LinkCode 保存自己的记录,可恢复的内容都还在,之后可以重新导入。

如果你还想清掉已保存的账号、API key 和 Cloud 登录,把 ~/.linkcode/secrets.json(以及 config.jsoncloud.json)也删掉。

除非你真想删掉 Chats 里的文件,否则别动 ~/LinkCode——它是普通文件夹,不是内部状态。

本页目录