Linkly AI CLI 介绍
Linkly AI CLI 是一个命令行工具,通过连接 Linkly AI Desktop 的 MCP 服务,让你在终端中搜索、浏览和阅读本地文档。它同时也是 AI Agent(如 Claude Desktop、Cursor)与 Linkly AI 之间的桥梁。终端搜索
在命令行中直接搜索你的文档,适合开发者和极客用户
MCP 桥接
以 stdio MCP 模式运行,让 Claude Desktop、Cursor 等 AI 工具调用 Linkly AI
安装
- macOS / Linux
- Windows
- Cargo
在终端中运行:或通过 Homebrew 安装:
默认情况下,CLI 通过
~/.linkly/port 文件自动发现并连接本地桌面应用。你也可以通过局域网或云隧道连接远程设备 — 参见下方连接模式。使用方法
CLI 遵循 search → grep 或 outline → read 的渐进式工作流:先搜索找到目标文档,再用 grep 定位模式或查看大纲了解结构,最后阅读具体内容。当用户描述的容器(“在我微信里”、“Notion 笔记里”)真实路径未知时,可在search 之前先调用 find-paths 定位。
每条成功的命令输出末尾都会带一行
[meta] now=2026-05-08T...Z 的 UTC 时间戳(JSON 模式则是顶层 _meta.now 字段)。这是 desktop 提供给 AI 助理用来推算”上个月”等相对时间的元信息,对人类用户而言可以忽略;脚本处理时建议过滤掉最后一行再做后续解析。检查连接状态
搜索文档
--scope notes 会把结果限定在你的笔记中,并且会忽略 --library 和 --path-glob —— 这两个过滤条件会被静默丢弃,而不是报错。查看文档大纲
DOC_ID 从搜索结果中获取。支持一次查看多个文档,也可以用 - 从管道读入 ID:
--expand 指定要展开的节点 ID,多个用逗号分隔,其余节点折叠;不加这个参数时,自动决定展开哪些:
正则匹配文档内容
阅读文档内容
--offset 逐步读取:
路径定位(find-paths)
search 的辅助工具:当用户描述容器名(“在我的微信里”、“在 Notion 笔记里”)但你不知道这个容器在磁盘上的真实路径时,先用 find-paths 探测真实路径,再把它作为 search 的 --path-glob 参数。当目录名含 glob 元字符(* ? [)时,可直接使用返回的 path_glob 字段——它已转义,能字面匹配该目录。
典型用法(两步工作流):
--patterns 接受逗号分隔的多个关键词,工具内部会以 OR 关系做子串匹配。建议一次传入多个变体(中英对照、应用真实命名等),最大化首次召回率:
知识库与概览(list-libraries、explore)
--library 参数里。
--library 接受库名或 local://<id>;使用 --remote 时也可以传 cloud://<owner>/<slug>。
笔记
Linkly AI 会把简短的 Markdown 笔记保存在你的知识库目录中。它们就是普通的本地文件 —— 不会被上传 —— 并且和其他文档一样会被索引。note_id 和当前 version,两者都可以从 linkly list --scope notes 的输出中获取:
诊断连接(doctor)
--remote、--lan 或 --endpoint / --token 时,只检查那一条连接,退出码也只看它:
管理 Skills(skills)
install 把 Skills 装到 ~/.agents/skills/linkly-ai,并在 ~/.claude/skills/linkly-ai 建立指向它的链接。详见使用 Skills。
Skills 有新版本时,命令输出末尾会带一行提示,最多每 4 小时一次。设置环境变量 LINKLY_NO_SKILLS_HINT=1 可以关闭这条提示。在 MCP 客户端的配置里设置这个变量,linkly mcp 桥接也不再提示。
Shell 补全
bash、zsh、fish、powershell 或 elvish 的补全脚本。
- zsh
- bash
- fish
- PowerShell
MCP 模式
桥接不支持连接局域网内其他设备上的桌面应用。局域网内的 AI 客户端请直接用 HTTP 连接桌面应用(参见局域网访问),只支持 stdio 的客户端可以改用
linkly mcp --remote。--client <名称> 用于在桌面应用的访问日志中标明应用名称,如下面的示例所示。使用 --remote 时,这个名称也会发送给云端网关。
配置 Claude Desktop 等本地 AI 应用:
将以下内容添加到 Claude Desktop 等应用的配置文件中:
- macOS
- Windows
编辑
~/Library/Application Support/Claude/claude_desktop_config.json:- Name:
linkly-ai - Command:
linkly mcp --client cursor
更新 CLI
连接模式
CLI 支持三种方式连接你的 Linkly AI 知识库:
不加
--lan 或 --remote 时,CLI 只连接本机的桌面应用。
本地模式(默认)
无需额外参数,CLI 自动读取~/.linkly/port 发现运行中的桌面应用:
局域网模式
连接局域网内其他设备上的 Linkly AI 实例。地址和令牌要从那台设备上获取:在它的桌面应用中打开「Agent 使用」页,在「管理」区打开「允许局域网访问」,再点「集成」区的「查看 MCP 接入配置」,从「局域网」一节复制(详见局域网访问)。 然后在这台机器上,由你本人在自己的终端里保存一次:--lan:
auth set-key --lan 即可。不再需要时,用 linkly auth logout --lan 删除保存的局域网配置。
保存局域网连接和
--lan 参数需要 CLI 1.0.0 或以上。CLI 只能保存一个局域网连接,再次执行 auth set-key --lan 会覆盖之前保存的地址和令牌。要临时连接另一台设备,用 --endpoint 和 --token。远程模式
通过云隧道从任何地方连接你的知识库。首先登录一次:XXXX-XXXX),能打开浏览器时会自动打开。在任意设备上打开这个链接(CLI 跑在服务器上时,用手机打开也可以),登录后核对确认码与终端里的一致,点击 授权,CLI 随即保存一个新签发的 API Key。链接 10 分钟内有效;授权页会显示你正在授权的账号、确认码、发起请求的设备(由该设备自行上报)以及将授予的权限。如果不想让 CLI 尝试打开浏览器,加上 --no-browser,它只打印链接。
然后在任意命令中使用 --remote:
--wait 默认等待 300 秒(可用 --timeout 修改),超时后返回错误码 timeout;只要链接仍在有效期内,再执行一次即可。--json 模式下失败时会带上 code:timeout、expired、denied、no_pending_login、login_in_progress(改用 --wait,或用 --restart 重新开始)、already_logged_in(先执行 linkly auth logout)和 network。每条提示都会写明下一步该执行的命令。
每次登录都会创建一个新的 API Key,名为 cli-<hostname>-xxxx,可以在 控制台 中查看和撤销。每个账号最多持有 10 个 API Key;达到上限时,授权页会给出提示。登录成功只证明了账号身份,并不代表云端知识库或桌面端已经可以访问。
更习惯粘贴 Key?也可以在 控制台 创建一个,然后由你本人在自己的终端里保存:
logout 会同时撤销由 auth login 签发的 Key,约 90 秒内失效。用 set-key 保存的 Key 只会从本机删除,因为它可能还在别处使用;如有需要,请到控制台撤销。
凭据(以及尚在等待授权的登录)默认保存在 ~/.linkly。设置 LINKLY_CONFIG_DIR 可以换一个位置,例如一个 Agent 在同一个系统账户下为多个人服务时,给每个用户各分配一个目录。每个目录只保存一个账号。本机桌面端的发现(~/.linkly/port)不受影响。
参数说明
全局选项
退出码
默认情况下,CLI 采用惯例的两种取值:成功返回 0,失败返回 1。注意”成功”包含”什么都没找到”——搜索没有命中时仍然退出 0。参数错误(缺少必填参数、取值不合法等)无论是否加--exit-code,都退出 2。
加上 --exit-code 可以区分这两种情况:
这个开关默认关闭,因为它改变了
1 的含义。不加时 1 表示”执行失败” —— 而这正是现有脚本所依赖的判断。
