@phren/cli

中文文档
0.3.69发布于 2026/11/02MITTypeScriptES Module构建来源已验证

AI代理的知识层- CLI, MCP服务器和数据层

中文使用文档
文档目录10 节
  1. 安装
  2. 环境变量
  3. 工具
  4. 集成模型
  5. 治理和安全重点
  6. search_knowledge
  7. get_project_summary
  8. list_projects
  9. 它是如何工作的
  10. 开发

phren MCP服务器

MCP服务器,索引你的个人电话,并通过全文搜索将其暴露给人工智能代理。

在启动时,它遍历你的phren目录,读取所有 .md 文件,并在内存中构建SQLite FTS5索引。

默认情况下,定期远程检查是关闭的。使他们能够 phren config pull-interval 60 在运行时每分钟检查一次共享的Git存储库,在使用相同存储库的MCP客户端之间进行协调。更改的refs仅作为干净的快进提取和应用;脏存储或发散存储被延迟。拉出的更改刷新索引和现有的托管技能/指令镜像。将此机器配置为 phren config pull-interval 600 (十分钟)或者 phren config pull-interval off. 禁用项目本地存储和手动预设的定期检查;现有的生命周期钩子是单独配置的。

公共界面:78个MCP实现工具,跨越17个目录模块(搜索、任务、发现、笔记、内存、数据、图形、会话、操作/审查、技能、钩子、配置、提取)。

值得注意的已交付功能:

  • 寻找生命周期工具: supersede_finding, retract_finding, resolve_contradiction, get_contradictions
  • 找到出处: add_finding.source (human|agent|hook|extract|consolidation|unknown)
  • 轻量级每日笔记:CRUD in <project>/notes/YYYY-MM-DD.md,显式搜索,无需自动提示注入即可提升发现
  • 跨会话连续性:任务检查点+ session_history
  • 从注入的上下文结果中寻找影响评分
  • 技能注册表行为:范围优先,别名冲突处理,可见性门控,生成 skill-manifest.json
  • 生命周期惩罚:取代0.25倍,撤回0.1倍,反驳0.4倍的检索置信度
  • 从FTS索引中删除不活跃的发现(被取代/撤回的发现不能出现在检索中)
  • 自动标记:没有类型标记的结果在写入时从内容中推断出来
  • 会话上下文差异: session_start 报告上次会议以来的新发现
  • 抗衰减性:确认的发现在重复使用时衰减速度降低3倍

安装

npx @phren/cli init

这设置了phren无需 sudo 或者全局安装。在Windows上,使用 npm install -g @phren/cli 如果 npx 不是可用的。

或者手动添加到Claude Code:

claude mcp add phren -- phren ~/.phren

环境变量

变量默认的描述
PHREN_PATH~/.phrenphren实例的路径
PHREN_PROFILE(没有)活动配置文件名称。未设置时,phren使用 machines.yaml 可用时,否则退回到无作用域视图
PHREN_PULL_INTERVAL_SECONDS0 (关闭)覆盖机器本地拉取间隔。从30秒到86400秒,或者 0/off 关闭MCP周期性检查。
PHREN_ACTOROS用户/ env治理/审计RBAC检查中使用的参与者标识

工具

看到 文档/ api-reference.md 获取完整的API参考。

集成模型

  • Claude:完整的本地生命周期钩子(SessionStart, UserPromptSubmit, Stop, PostToolUse) + MCP
  • Copilot CLI / Cursor / Codex: MCP +生成的钩子配置+会话包装器二进制文件

治理和安全重点

  • RBAC使用 .config/access-control.json 和 .runtime/access-control.local.json
  • Web UI只绑定环回,使用每次运行的验证令牌,对突变强制CSRF,并设置CSP标头
  • 遥测技术仅供选择使用(phren config telemetry on),并储存在本地 .runtime/telemetry.json

search_knowledge

全文搜索所有带同义词扩展的索引标记文件。

query: string              - FTS5 query (supports AND, OR, NOT, "phrase matching")
limit?: number             - Max results, 1-20, default 5
type?: string              - Filter: "claude", "findings", "reference", "summary", "task", "skill"
project?: string           - Filter to a specific project
tag?: string               - Filter findings by type tag: decision, pitfall, pattern, tradeoff, architecture, bug
since?: string             - Filter findings by date: "7d", "30d", "YYYY-MM", "YYYY-MM-DD"
status?: string            - Filter by lifecycle status: active, superseded, contradicted, stale, invalid_citation, retracted
include_history?: boolean  - Include superseded/retracted findings (default false)
synthesize?: boolean       - Generate a synthesis paragraph from top results using an LLM

get_project_summary

返回项目的摘要。md内容,到其AGENTS的路径。Md,以及索引文件列表。

name: string      - Project name (e.g. "my-app", "backend")

list_projects

列出活动配置文件中的所有项目,并提供简要说明以及存在哪些文档。

没有参数。

它是如何工作的

  1. 读取 PHREN_PATH (或默认为 ~/.phren)
  2. 解析来自的活动概要文件 PHREN_PROFILE,或from machines.yaml 当env变量未设置时
  3. 如果还没有活动的概要文件可以解析,则退回到顶级项目目录的未限定范围视图
  4. 遍历每个项目目录,读取 .md 文件,按文件名对它们进行分类
  5. 用波特词干构建内存中的SQLite FTS5索引
  6. 使用MCP协议通过工作室提供工具

文件类型由文件名和目录派生: AGENTS.md - - - - - - >“克劳德。” summary.md - - - - - - >“总结”, FINDINGS.md - - - - - - >“发现”, tasks.md ->“任务”,文件下 notes/ ->“笔记”,文件下 reference/ ->“引用”,文件下 skills/ - - - - - - >“技巧”。

开发

cd ~/phren
npm install
npm run build    # Compile TypeScript
npm run dev      # Run with tsx (hot reload)
npm test         # Run all tests

版本与发布记录

@phren/cli 共发布 189 个版本,首次发布于 2026/03/14;过去 12 个月发布了 189 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.69latest2026/11/021 天前
0.3.682026/11/021 天前
0.3.672026/11/012 天前
0.3.662026/10/312 天前
0.3.652026/10/312 天前
0.3.642026/10/313 天前

关于 @phren/cli 的常见问题

@phren/cli 是什么?

AI代理的知识层- CLI, MCP服务器和数据层

如何安装 @phren/cli?

在项目目录运行 npm install @phren/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 phren,可以用 npx phren 直接运行。

@phren/cli 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@phren/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@phren/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@phren/cli 可以商用吗?

@phren/cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@phren/cli 还在维护吗?

最新版本 0.3.69 发布于 2026/11/02(1 天前);至今共发布 189 个版本,其中过去 12 个月发布了 189 个;首次发布于 2026/03/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。