Skip to content
PluginStats

@ewanjasper/sessionrelay weekly downloads statistics

By ewanjasper · npm · Claude Code

会话接力 SessionRelay — 属于项目、不属于任何厂商的本地记忆层(跨 Agent 会话记忆 / 中文检索 / MCP / HOP 交接协议)

View on npm Fresh · Oct 18, 2026

@ewanjasper/sessionrelay has 30 recorded weekly downloads on npm, a decrease of 99.8% over the past 30 days, ranking #1871 of 2,322 tracked listings.

Weekly downloads
30
Official API · Oct 18, 2026
7-day growth
-55.9%
-38 weekly downloads
30-day growth
-99.8%
-16.1K weekly downloads
90-day growth
—
Insufficient history
Rank
#1871
Among tracked npm listings

About @ewanjasper/sessionrelay

会话接力 SessionRelay

简体中文 | English

CI npm downloads Node MCP 平台 语义检索 License

属于项目、不属于任何厂商的本地记忆层。 Memory is always complete. Retrieval is always yours to shape. 记忆始终完整收录;检索边界由你划定。

你和 AI 聊了 3 天的方案,不应该随关窗消失。它属于项目,属于下一个接手的人。

60 秒演示

会话接力 SessionRelay 演示

GIF 无声音——完整配音版(中文/英文 + 手机竖版)在 Releases · v0.2.2 页面内可直接播放。

它解决什么

痛点会话接力的答案
跨时间失忆:新会话问"上周讨论的方案?"——AI 不知道按需检索历史会话,带出处
跨工具断裂:Claude Code 定的方案,ZCode 不知道双源同库,任何 agent 通过 MCP 查同一份记忆
跨人交接:你和 AI 聊了 3 天,接手的人只能"去看代码"导出 .hop 交接包,对方的 AI 立刻拥有全部上下文

与 claude-mem 的架构区别:会话级存储

这是最核心的设计决策,不是功能差异,是存储粒度的架构差异:

claude-memSessionRelay
存储单位记忆片段(压缩摘要,跨会话打散混合)会话(完整对话,有标题/时间线/来源/状态/决策)
AI 看到的一堆"你之前说过…"碎片"根据 8 月 28 日 ZCode 会话《数据库选型》第 12 条…"
幻觉风险高:上下文污染 + 压缩失真 + 无法溯源结构性抑制:出处强制 + 按需查询 + 原文可回跳

三个反幻觉设计(不是功能,是架构承诺):

  1. 出处强制:AI 回答必须带"哪个会话/哪条消息/哪个 agent"——有源可查,不能瞎编
  2. 按需查询(pull):AI 不问就不查 → 上下文干净,不被无关记忆污染
  3. 原文可回跳:AI 拿到的是原始对话全文,不是压缩摘要——决策的"为什么"完整保留

架构总览

你和任何 AI 工具聊的内容,被统一收进一个项目级数据库;你、AI、同事都能查。换工具不丢记忆,换人可交接。

graph TB
    subgraph Sources["🖥️ 你的 AI 编程工具(各聊各的)"]
        CC["Claude Code<br/>JSONL 文件"]
        ZC["ZCode<br/>SQLite 数据库"]
        CX["Codex<br/>JSONL 文件"]
        QD["Qoder<br/>JSONL 文件"]
        TR["Trae<br/>部分支持*"]
    end

    subgraph Relay["🧠 会话接力(本地记忆层)"]
        DAEMON["守护进程 watch<br/>每 30 秒自动同步"]
        DB[("relay.sqlite<br/>统一记忆库")]
        EXTRACT["结构化提取器<br/>决策 · 话题 · 摘要 · 关键往返"]
    end

    subgraph Consumers["👥 谁来查询记忆"]
        YOU["你(CLI)<br/>search · decisions · history"]
        AGENT["AI Agent(MCP)<br/>16 个工具"]
        TEAM["同事(HOP 交接包)<br/>export → import"]
    end

    CC -->|adapter| DAEMON
    ZC -->|adapter| DAEMON
    CX -->|adapter| DAEMON
    QD -->|adapter| DAEMON
    TR -.->|仅用户提问| DAEMON
    DAEMON --> DB
    DB --> EXTRACT
    DB --> YOU
    DB --> AGENT
    DB --> TEAM

    style Relay fill:#1a1a2e,color:#e94560
    style Sources fill:#16213e,color:#fff
    style Consumers fill:#0f3460,color:#fff

* Trae 的 AI 回复端到端加密,仅能采集用户提问。其他工具不在列表里?写一个自定义适配器即可,零改核心代码。

记忆的生命周期

每个会话在记忆库中经历两阶段判定,宁可多等,不固化没聊完的对话:

stateDiagram-v2
    [*] --> active: 对话开始/守护捕获
    active --> pending_end: 超过10分钟没新消息
    pending_end --> active: 你回来继续聊(复活)
    pending_end --> confirmed: 安静超过6小时
    active --> active: 新消息追加
    confirmed --> active: 追加新消息(回滚+摘要重算)
    confirmed --> archived: srelay archive(归档)
    archived --> active: 新消息到达(复活)

    confirmed: ✅ 已固化
    confirmed: 提取决策/话题/摘要
    confirmed: 进入全文搜索主索引

    archived: 📦 已归档
    archived: 骨架保留(决策/话题)
    archived: 正文已释放(99.4%空间)

为什么需要中间的 pending 状态:对话可以复活(第二天 --resume 继续)。如果直接固化,提取的决策就是残缺的。pending 是 6 小时缓冲带;就算固化了,追加消息也会自动回滚重算。原始会话文件是唯一事实源——库里任何时候都能 srelay rebuild 重建。

核心能力

🖥️ 被动捕获(零打扰)
  • 五源适配:Claude Code · ZCode · Codex · Qoder(完整支持)+ Trae(部分:仅用户提问)+ 自定义适配器(加一个 JS 文件接入新工具,零改核心代码)
  • 三档隐私:full(默认) / meta(只存元数据) / off(仅手动)
  • .sessionrelayignore 硬边界:隐私排除对自动捕获、手动 save、导出全部生效
  • 两阶段判定:active → pending_end → confirmed,resume 自动回滚,原始会话文件是唯一事实源(库随时可 rebuild)
  • 历史回填:srelay init 默认回填近 30 天;srelay sync --backfill all 一条命令全量入库
🔍 中文检索
  • jieba 分词 + FTS5 双索引(正文 + 元数据),AND 覆盖度语义,OR 兜底
  • 语义检索(可选):srelay semantic enable 一键开启——换一种说法也能命中("登录"↔"认证"、"很卡"↔"性能"),本地 CPU 推理(bge-small-zh),字面命中优先、语义只做补充,未启用时行为与纯字面检索完全一致
  • jieba 分词 + SQLite FTS5 双索引(六条中文验收用例门禁)
  • 会话级 AND 覆盖 + OR 兜底:连写词拆分("认证方案"→ 认证+方案)、短语精确匹配("按月分区")
  • 每条结果强制携带出处块(会话 ID / 来源 agent / 日期 / 消息序号 / 摘要片段)
🤖 MCP Server(16 个工具,9 读 + 7 写域)

任何支持 MCP 的 AI agent 接入后,从此在这个项目里不再是失忆的:

<details> <summary><b>9 个读工具</b>——AI 从此能回答的问题</summary>
工具回答的问题
search_sessions"我们之前讨论过 X 吗?"(中文全文 + 元数据过滤)
get_session_detail"那场讨论具体聊了什么?"(完整消息,支持范围)
list_sessions"这个项目都聊过哪些话题?"
get_decisions"为什么决定用 X 而不是 Y?"(全部已确认决策,带出处)
get_file_history"这个文件为什么这么写?"(跨会话文件讨论史)
suggest_related_sessions"还有哪些讨论和这个相关?"(算法发现的同主题会话,可解释理由)
get_unresolved"还有什么没定的?"(未决问题清单)
get_stats"记忆库什么状态?"(会话数/来源分布/体积)
set_scope检索边界逃生口
</details> <details> <summary><b>7 个写域工具</b>——AI 不再只是读者</summary>
工具能力安全边界
annotate_session给会话打标签 / 写人工摘要只改元数据,不改写对话
save_noteAI 把结论写成笔记(决策句式直接入决策库)source=note,可识别可审计
export_handoff生成 .hop 交接包只读导出
import_handoff导入交接包(sha256 校验 + 归化)默认隔离模式(正文待放行)
release_quarantine放行隔离会话正文需显式调用
link_sessions建立会话关联(continues/related/pinned)关联可查可撤销
get_linked_sessions双向查询会话关联(出边/入边)只读
</details>

写域三原则(D21):旁路写入(不碰状态机)· 导入默认隔离 · 笔记可溯源——每条 AI 写入都能被识别、审计、撤销。

🎯 Scope 检索边界
  • B 档:scope.json 项目契约(CLI 与 MCP 共用),交集语义只能收窄
  • A 档:auto-scope 兜底(MCP 侧近 30 天可配),防上下文污染
  • attach:开新会话前挂载指定历史会话(最高优先级谓词)
  • 热更新:scope 改动下一次调用立即生效
🧹 遗忘权(srelay forget)

AI(MCP 工具)永远没有删除能力——删除是人的特权。需要时由你亲手执行:…

Description from the npm listing.

  • mcp
  • mcp-server
  • claude-code
  • zcode
  • session-memory
  • cross-agent
  • ai-memory
  • local-first
  • handoff

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@ewanjasper/sessionrelay weekly downloads on npm, last 90 days: 30 weekly downloads as of Oct 18, 2026.@ewanjasper/sessionrelayWeekly downloads on npm · Last 90 days30downloads / week02K4K6K8K10K12K14K16K18KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
@ewanjasper/sessionrelay weekly downloads on npm, last 90 days: 30 weekly downloads as of Oct 18, 2026.

7/30/90-day growth

@ewanjasper/sessionrelay weekly downloads growth on npm: -55.9% over 7 days, -99.8% over 30 days, 90-day growth unavailable.@ewanjasper/sessionrelayWeekly downloads growth on npm30downloads / week now7-day growth-38 weekly downloads-55.9%30-day growth-16,089 weekly downloads-99.8%90-day growth+30 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@ewanjasper/sessionrelay weekly downloads growth on npm: -55.9% over 7 days, -99.8% over 30 days, 90-day growth unavailable.

Ranking history

@ewanjasper/sessionrelay npm ranking history: currently #1871 (by weekly downloads).@ewanjasper/sessionrelaynpm ranking · by weekly downloads · Last 90 days#1871current rank#1850#1855#1860#1865#1870#1875Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 18, 2026 – Oct 20, 2026 · 3 observations · Updated Oct 18, 2026pluginstats.com
@ewanjasper/sessionrelay npm ranking history: currently #1871 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,161 shown · page 94, #15 (overall #1,875)
All npm: every listing in weekly downloads order

Listing placement

Claude Code255 listings · 13 pages · page 13, #11 (overall #251)
Claude Code: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (122)
Recent weekly downloads observations for @ewanjasper/sessionrelay
Date (UTC)Weekly downloadsChange vs. previous
30+14
16-37
53+1
52-2
54-20
740
74+6
68-5
73+36
37-4
41-8
49-4
53-6
59—

Similar npm Claude Code plugins

All 20 @ewanjasper/sessionrelay alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@ewanjasper/sessionrelay. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.