agentrecall-cli 是 V2 配套的独立源码预览包,可执行命令为 agentrecall。目前提供初始化、配置检查、团队开关、多仓库绑定,以及团队 Skill 的拉取、预览、项目级安装、差异查看、更新与回滚,以及工作配置批量安装、本地归属、整组差异、版本更新和卸载。需要 Node.js 22.13+、Git 2.31+;配置与资产管理可独立运行;会话与资源检索需要启动 AgentRecall V2。
提供 session search/get 与 resource search/get,用法见分开搜索会话与资源。当前不提供 GitHub 登录、组织成员管理或会话上传命令。这里登记的“团队”是本机保存的资产仓库配置,不代表已经加入该组织或取得权限;主动同步使用本机 Git 的既有 HTTPS/SSH 认证。CLI 尚未发布至 npm,也不包含在桌面版本安装包中。构建与安装见 包说明。
这些团队功能已接入 V2 的团队工作区,与 CLI 共用配置和服务,不使用 V1 代码或数据。
agentrecall init https://github.com/your-team/ai-assets --name 我的团队仓库必须已在 GitHub 创建。这个命令会主动访问远端:空仓库会在 main 创建并推送一条基础模板提交,包含 agentrecall.json、说明文件和参考 TeamAI 的 skills/rules/docs/env/members 目录。新仓库生成版本 4 空清单,支持 Skills、工作配置、文档、共享指令、MCP 和公共 Env;members 仅预留,不代表成员系统或 TeamAI 格式兼容。完整字段见团队资产指南。
非空仓库必须已有合法的 AgentRecall 清单;命令只校验,不补写或覆盖已有文件。重复运行复用远端版本和本地团队 ID,不重复创建提交。--name 只用于首次登记;已有名称保留。默认 HTTPS,也可使用 --transport ssh,沿用已有 Git 身份,不自动登录或安装认证工具。
初始化保留当前团队开关和默认团队,不自动绑定当前代码目录、不安装 Skill/Hook、不上传 Session。完成后在团队空间接入工作目录,开启团队后点击同步;也可通过 directory add <目录> --team <团队ID> 接入,再运行 team sync --team <团队ID>。
推送失败或网络中断时会报告结果未确认,重试会重新检查远端;若远端已就绪而本地配置写入失败,会明确报告部分完成,不删除远端提交。取消时不回滚已经完成的远端写入。初始化的临时 Git 目录在成功、失败或取消后清理。
不带仓库地址的 agentrecall init 继续只创建个人配置,不访问网络。team add 也仍然只登记地址,不初始化远端。
下例使用已创建且含合法资产清单的仓库;地址与目录需替换为自己的值。新空仓库先使用上一节的 init <repo-url>。
agentrecall team add engineering --repo https://github.com/example/ai-assets
agentrecall team enable
agentrecall directory add /path/to/work --team engineering --target codex
agentrecall directory list --team engineering
agentrecall team transport engineering --transport ssh
agentrecall team sync --team engineering
agentrecall skill list --team engineering
agentrecall skill preview review --team engineeringteam sync 是整轮分发:拉取默认分支后,自动安装/更新该团队所有已启用目录中的 Skills 与文档,保留冲突并报告部分完成,取消时保留已完成写入和备份。有冲突、失败或取消时 CLI 退出码为 1,JSON 的 data.status 指明整轮状态;无启用目录时只拉取并返回 no-directories,不能视为资源已安装。
连接方式在团队设置或 team transport 保存;team sync --transport 可临时覆盖本轮。--project 仍可用于从旧项目确定团队,确定后同样同步该团队全部启用目录。不要把这个命令当作只下载缓存。
旧的单 Skill、工作配置和 project 命令继续提供高级版本/恢复操作,相关命令可通过 --connection 指定已接入目录。完整写入和恢复规则见团队空间指南。
以下 project 命令保留给已有项目配置。新接入使用上面的 directory 流程,不需要创建逻辑项目;工作目录也不必是 Git 仓库。
agentrecall init
agentrecall team add engineering --repo https://github.com/example/engineering-assets
agentrecall team add research --repo git@github.com:example/research-assets.git
agentrecall team use engineering
# 未指定团队的项目继承默认团队。
agentrecall project add backend --path /path/to/backend
# 显式指定团队的项目不跟随默认团队变化。
agentrecall project add experiments --path /path/to/experiments --team research
# 个人项目不使用团队。
agentrecall project add notes --path /path/to/notes --personal
agentrecall team enable
agentrecall status --project backend
agentrecall team current --project experiments
agentrecall team disable路径需换成已有本地 Git 仓库。绑定和设置默认团队都不会开启团队功能,开启也不会触发网络访问。关闭保留配置和缓存,并阻止团队读取、同步和新安装;配置状态、团队/项目列表和配置编辑仍可用。已复制到客户端的本地 Skill 不会自动删除,可用 skill uninstall 移除,或通过 skill backups 和 skill rollback 管理本地恢复。本地工作配置的 installed/status/uninstall 也仍可使用。V2 团队设置与团队空间使用同一开关,CLI 修改后可在桌面点击刷新查看。
| 命令 | 行为 |
|---|---|
init |
创建默认关闭的个人配置;重复执行保留现有配置 |
init <repo-url> [--name <名称>] [--transport https|ssh] |
初始化空团队仓库或校验已有资产仓库,再登记本地团队;空仓库会推送模板 |
status [--project <id>] |
显示配置路径、当前项目、配置的团队与生效状态 |
doctor [--project <id>] |
检查配置格式及当前目录的 Git 绑定;不测试远端权限或所有历史路径 |
team add <id> --repo <url> [--name <名称>] |
登记团队资产仓库 |
team list |
查看已登记团队 |
team use <id> / team use --personal |
设置或清除默认团队 |
team enable / team disable |
开启或关闭团队功能 |
team current [--project <id>] |
读取当前生效的项目和团队;未开启、未绑定或个人项目会明确报错 |
team sync [--project <id>] [--transport https|ssh] |
拉取资产仓库默认分支,并安装/更新该团队所有已启用工作目录中的 Skills、文档和配置 |
skill list [--project <id>] |
查看当前团队已缓存的 Skill |
skill preview <id> [--target codex|claude] [--file <path>] [--project <id>] |
预览正文、支持文件、完整版本号和可选安装位置 |
skill install <id> --target codex|claude --revision <sha> [--project <id>] |
安装已选择版本;不同内容或本地修改均不覆盖 |
skill diff <id> --target codex|claude [--file <path>] [--project <id>] |
查看当前安装与缓存的文件差异;可展开新旧内容 |
skill update <id> --target codex|claude --from-revision <旧 sha> --revision <新 sha> [--project <id>] |
更新未修改的受管安装,并保留旧版本备份 |
skill backups <id> [--project <id>] |
查看当前客户端安装版本和本地备份;关闭团队后仍可使用 |
skill rollback <id> --target codex|claude --backup <名称> --from-revision <当前 sha|none> [--project <id>] |
从指定备份恢复;当前安装另存备份,none 只接受空目标;关闭团队后仍可使用 |
skill uninstall <id> --target codex|claude [--project <id>] |
移走未修改的受管安装,保留备份;关闭团队后仍可使用 |
work-config list [--project <id>] |
查看团队的工作配置安装清单 |
work-config preview <id> [--target codex|claude] [--project <id>] |
查看整组 Skill;选择客户端后逐项显示复用、新增或冲突 |
work-config install <id> --target codex|claude --revision <sha> [--project <id>] |
全部预检后安装并记录共享引用;同版本可重试,不自动更新已安装的配置 |
work-config diff <id> --target codex|claude [--project <id>] |
预览新旧配置的全部引用和文件动作,列出共享冲突 |
work-config update <id> --target codex|claude --from-revision <旧 sha> --revision <新 sha> [--project <id>] |
按选定版本更新整组内容和归属;有冲突则停止,失败尝试恢复 |
work-config installed [--project <id>] |
查看本地已安装配置及客户端;可离线使用 |
work-config status <id> --target codex|claude [--project <id>] |
查看实际文件状态、共享引用及卸载影响;可离线使用 |
work-config uninstall <id> --target codex|claude --revision <sha> [--project <id>] |
移除配置归属,仅将不再被引用且由配置创建的 Skill 移入备份;可离线使用 |
project add <id> [--path <目录>] [--remote <名称>] [--name <名称>] [--team <id>|--personal] |
登记业务仓库;路径默认当前目录 |
project list |
查看已登记项目 |
project bind <id> --team <id>|--personal|--inherit |
指定团队、改为个人或恢复继承默认团队 |
project remove <id> |
移除本地绑定;不删除代码仓库或团队 |
被工作配置引用的 Skill 不允许单独安装、更新、卸载或回滚;先通过 work-config status 查看归属,再处理相关配置。
ID 使用小写字母开头,后续可包含小写字母、数字和连字符,最多 64 个字符。显示名称可使用中文。
所有命令支持 --json,成功输出 { "ok": true, "data": ... },失败输出 { "ok": false, "error": { "code": ..., "message": ... } }。退出码为成功 0、配置或运行失败 1、命令参数错误 2。批量操作未完全成功时,错误可附带 details,包含各 Skill 的实际结果、备份路径与待清理项。不带 --json 时错误写入标准错误。--help 和 --version 不访问配置。
--cwd <目录> 指定当前操作目录,--path 相对于该目录解析。没有跨命令保存的“当前项目”:通常根据当前 Git 仓库判断;在仓库之外可用 --project 明确选择。处于已绑定仓库 A 内时指定项目 B 会失败,避免把团队配置用于错误项目。
- 支持 GitHub HTTPS、
git@github.com:owner/repo.git和ssh://git@github.com/owner/repo.git;统一忽略大小写和末尾.git,fork 的不同 owner 保持独立。不接受 URL 中的凭据、查询参数或其他托管平台。 - 优先选择
origin;没有origin且只有一个 remote 时选择该 remote;多个候选要求--remote。无 remote 的本地 Git 仓库可登记,但不能据此识别其他克隆;后来新增 remote 时需重新登记才会使用其身份。 - 同一仓库的 worktree 通过共享 Git 目录识别为同一项目;新的克隆可通过已选择的 remote 名称及标准化地址匹配已有项目。remote 名称不同需要显式登记,不猜测关联。
- 多个已登记项目指向同一远端时,在新克隆中要求
--project消除歧义。嵌套仓库独立识别,不继承外层仓库配置。 - 已登记仓库的 remote 改变或失效时会失败。恢复原 remote,或用
project remove移除旧绑定后重新project add。只移动目录且远端身份保持一致的新位置仍能按远端匹配;需更新保存路径时也可移除后重建绑定。
默认位置为 ~/.agentrecall-cli/config.json;环境变量 AGENTRECALL_HOME 可以指定另一目录。它独立于现有桌面应用数据和业务仓库,不扫描个人 Session、Agent 配置或凭据。
{
"schemaVersion": 1,
"teamEnabled": false,
"defaultTeamId": "engineering",
"teams": [
{ "id": "engineering", "name": "研发", "repository": "https://github.com/example/engineering-assets" },
{ "id": "research", "name": "研究", "repository": "https://github.com/example/research-assets" }
],
"projects": [
{ "id": "backend", "name": "后端", "root": "/work/backend", "gitCommonDir": "/work/backend/.git", "repository": "https://github.com/example/backend", "remote": "origin" },
{ "id": "experiments", "name": "实验", "root": "/work/experiments", "gitCommonDir": "/work/experiments/.git", "repository": "https://github.com/example/experiments", "remote": "origin", "teamId": "research" },
{ "id": "notes", "name": "个人笔记", "root": "/work/notes", "gitCommonDir": "/work/notes/.git", "repository": null, "remote": null, "teamId": null }
]
}示例路径是 POSIX 表示;Windows 实际保存本机绝对路径及 JSON 转义。配置含本机路径,不是可分享的资产清单。
优先级为:总开关 → 项目显式团队或个人设置 → 全局默认团队。项目 teamId 缺省表示继承,null 表示个人,字符串表示显式团队。未绑定项目不会仅因全局设置而使用团队。
支持配置版本 1、2、3 和 4。版本 1 保存原有仓库绑定;版本 2 保留旧逻辑项目,版本 3 增加团队工作目录连接,版本 4保存团队连接方式;首次修改连接时升级并保留旧记录,读取不重写。未知字段、未知版本、损坏 JSON、重复 ID 或不存在的团队引用均报错并保留原文件,不自动重置。完整配置连同元数据不得超过 1 MiB。需要手动修复时先备份文件,再运行 doctor 检查。
配置服务位于 packages/workspace-core。多个 CLI 进程通过同一个目录锁完成读取、校验和原子替换,争用超时明确报错。锁在正常退出时清理,异常终止留下的锁由依赖库按过期时间回收;强制中断不会保证临时文件立即消失。V2 团队设置与 Skills 团队范围已接入同一服务;这不涉及共享或迁移 Session 数据库。
根目录 npm run setup:cli 只安装 CLI 和其共享配置模块的开发依赖,两个桌面应用继续独立安装。执行 npm run test:cli 检查配置、并发写入、命令行为和 Git 归属;执行 npm run package:smoke:cli 做类型检查、打包和隔离的安装、重装、卸载验证。测试使用临时主目录、npm 前缀和合成仓库。
当前发布工作流仍只发布 V1/V2 桌面包,不自动发布 CLI。源码构建与安装见 CLI 包说明。
团队资产仓库格式、权限边界和安装恢复见 团队 Skill 指南。资产清单版本与兼容规则以团队资产指南为准,工作配置的安装范围也在该指南维护。未知版本或损坏记录会拒绝读取,不会自动重置。
完整的“搜索 → 选结果 → 读原文”示例与排障见Agent 检索指南。
这组只读命令复用 AgentRecall V2 的搜索服务;本机会话支持完全退出桌面后按需启动后台,团队与资源检索仍需桌面运行。它不触发 Pull、网络会话补全或上传。其他配置、资产管理命令仍可脱离桌面使用。
agentrecall session search "端口冲突"
agentrecall session search "端口冲突" --scope team --team engineering
agentrecall session get <sessionKey>
agentrecall session get <sessionKey> --record 0 --turn <turnId>
agentrecall resource search "代码审查" --type skill
agentrecall resource search "部署" --scope team --team engineering --type document
agentrecall resource get <id> --type document --scope team --team engineering范围默认 local;team 必须显式指定团队 ID,可用 team list 查看。会话搜索保持原有本机查询语义;团队查询复用共享会话页的正文、标题、作者和工具名称搜索,可用 --include-tools 加入工具输出。团队每页固定 50 项,使用 --page 翻页;本机用 --limit 限制结果,暂不支持 page 和 include-tools。
团队搜索返回的 sessionKey 绑定团队、仓库、分享及版本。读取默认返回第一个会话的轮次列表;使用命中的 record、turnId 读取具体轮次,offset 用于翻页。完整分享的其他子会话可按 record 序号访问;未完成 Pull 整理的内容会报错,不隐式下载。本机会话读取用 offset 和 limit 按消息分页。
资源搜索只覆盖本机托管 Skills,或指定团队本地共享空间中的 Skills、文档和共享指令,包括尚未 Push 的修改。不搜索 MCP/Env、密钥或未纳入管理的任意个人目录。团队功能关闭时拒绝团队查询。资源按空白分隔关键词,所有词均需在标题、说明或正文中出现,大小写不敏感;这是文本匹配,不是向量或语义检索。
资源结果返回摘要,使用相同 scope、team、type 和 id 读取正文。读取默认 8000 字符,最多 32000,可用 --max-chars 调整;nextOffset 非空时继续传 --offset。搜索默认 20 项、最多 50,支持 offset。完整回复最多 1 MiB;单个超大 Turn 超限时明确报错,不静默截断。资源版本变化后重新搜索核对。
CLI 与 MCP 共用接口及开关:会话操作受会话 MCP 来源和对应工具开关控制,资源搜索/读取受 Skills MCP 来源及 list_skills/get_skill 开关控制。仅本机回环连接,发现文件可用 AGENT_RECALL_MCP_BRIDGE 指定;不接受远端主机或重定向。
当前实现由 V2 安装包提供以下入口,无需另外安装源码预览 CLI:
agent-recall-v2 session search "端口冲突"
agent-recall-v2 session search "登录" --source deepseek-cli --limit 10
agent-recall-v2 session get '<返回的 sessionKey>' --offset 0 --limit 40
agent-recall-v2 backend start
agent-recall-v2 backend status --json
agent-recall-v2 backend stop本机范围的 Gateway MCP search_sessions / get_session 也使用同一后台。即使从 Dock 选择「退出」或 ⌘Q 完全退出桌面,查询也能自动启动纯 Node 后台、更新增量索引并返回结果,不打开 Electron。沿用已有索引、历史会话和来源设置,无需搬迁数据。首次启动及补齐索引需要等待;启动后常驻,不因闲置、完全退出桌面或 MCP 断开而退出。没有桌面连接时每十分钟刷新一次本地索引,搜索与读取前即时补齐;桌面连接时沿用桌面刷新流程。
MCP 使用当前安装配置生成的 Gateway 入口(out/mcp/gateway-entry.js)。手动保留的旧版直连数据库 MCP(bin/agent-recall-mcp.mjs / agent-recall-v2-mcp)未改为按需后台;需要无窗口检索时按 Gateway 连接说明更新客户端配置。
已安装源码预览 agentrecall 时,其本机会话 search/get 在桌面不存在或明确拒绝连接时,自动查找 PATH 中支持无窗口检索的 agent-recall-v2。找不到或旧版不支持时提示安装/更新;不执行旧版未知命令以免意外打开桌面。团队、资源和 shared: 引用不走独立后台。
来源开关、会话 MCP 总开关及对应搜索/读取工具开关继续生效。关闭 DSH 等可选来源后不会继续返回其缓存会话;设置文件损坏则报错,不重置配置。请求、完整回复和分页均有限制;缩小查询或每页消息数可避免响应过大。
backend start 可单独启动或复用后台,不打开窗口。backend status 不会启动后台,运行时显示 PID、索引状态、桌面连接数、常驻模式及自动扫描周期。backend stop 同样不启动后台;桌面仍连接或查询/索引正在执行时拒绝停止。成功返回前等待后台进程退出和发现文件清理。终端 --json 成功返回 { "ok": true, "data": ... },错误返回 { "ok": false, "error": ... } 并以非零状态退出。
首版不增加开机或登录自启;重启电脑后可使用桌面、检索命令或 backend start 启动后台。
后台日志位于 V2 数据目录的 session-backend.log。旧版桌面仍运行时先退出旧版;切换安装路径或版本前先停止旧后台。版本发布前,当前安装版本未必包含此能力。Node 必须具备项目现有会话解析器所需能力;可使用较新的 Node 22 LTS。进程边界与生命周期见对应规格。