Chrome MV3 · 本地优先 · 无网络权限

一个记忆文档,
三个 AI 一起用。

把一份可编辑的 Markdown 记忆存在浏览器本地,DeepSeek、Gemini、小米 MiMo Studio 的对话都能读取和改写它。记忆不经过任何服务器。

52 KB · 拖进浏览器即可 · 不需要账号,也不需要 Node.js

当前适配
3 受支持的对话页面
2 记忆操作,没有第三个
50 条本地编辑记录上限
0 网络请求 · 无此权限

实际操作

一次对话里,它到底发生了什么。

引导语、工具的请求与结果都留在对话里,你可以逐条检查。下面是一次编辑的真实形状。

session · tool protocol
01 // 首次提交消息时注入引导语,不含记忆内容
02 > 帮我看看这个项目的技术选型
03 // 模型判断需要个人上下文,发起读取
04 read_memory() → rev 7 · 1.2 kB markdown
05 // 需要保留一条新偏好
06 edit_memory("replace", base_revision: 7)
07 // 校验:唯一定位 · 修订号未过期
08 ✓ committed · rev 7 → 8
读 校验 提交 扩展只执行 read / edit 两个内置操作

问题

每换一个模型,就要从头解释一遍自己。

你在 DeepSeek 里说清楚了项目背景、技术栈和偏好;换到 Gemini,它什么都不知道。 你把同一段自我介绍粘了三遍,第三遍之后你开始懒得粘了 —— 于是每个模型给你的建议, 都基于一个不完整的你。

Memosaic 不去做「跨模型同步账号」这种做不到的事。它只做一件小事: 在浏览器本地维护一份 Markdown 记忆文档,并给每个受支持的对话页面 两个有边界的工具 —— read_memory 和 edit_memory。 名字来自 memory 与 mosaic:每场对话看到的是同一幅由你拥有的画。 读作 meh‑MOH‑zik —— 完整的读法在这里。

它不会读取你的聊天记录。 Memosaic 没有把对话内容上传或沉淀的机制,记忆文档只在你手动编辑或模型按规则调用工具时变化。

怎么读这个名字

Memosaic /məˈmoʊ.zɪk/

重音落在第二段,读 meh‑MOH‑zik。词尾不是 -sack, 也不是 -say‑ik,而是和英文单词 mosaic 相同的 -zik。

me 弱读,像 “muh”
mo 重音 · 长音 O
saic 读 “zik”,同 mosaic

How to read it in English: Memosaic is said meh-MOH-zik (/məˈmoʊ.zɪk/) — stress the middle syllable and rhyme the ending with mosaic. It is not “memo-sack” and not “memo-say-ik”.

工作机制

不是黑盒「记忆」,是一条可检查的协议。

这些聊天网站没有提供给扩展的、与模型厂商无关的工具调用接口。所以 Memosaic 走了一条 透明的替代路线:把一小段引导语加进你的第一条消息,剩下的全部显示在对话里。

01 / 引导 首条消息被附加一段很短的引导语,告诉模型何时该读取记忆。 不含任何记忆内容
02 / 请求 模型如果判断需要,就回一段固定包裹的 JSON 调用请求。 <<<MEMOSAIC_MEMORY_TOOL_CALL>>>
03 / 执行 Service worker 按来源域名鉴权,只执行内置的记忆操作,结果作为后续消息发回。 仅 read / edit

引导语和工具结果都显示在对话里,你可以随时看到它们 —— 阅读完整协议说明

两个工具。没有别的入口。

协议不评估代码、表达式或正则,也不接受文件路径。扩展没有网络权限、没有远程 API、 没有 shell,也没有任意文件访问能力。

  • read_memory

    返回当前记忆文档全文与它的修订号。

  • edit_memory

    必须带上 base_revision,支持 append / replace / delete 三种操作。replace 与 delete 必须唯一匹配一段子串,否则拒绝执行。

唯一匹配 匹配到 0 处或多处即拒绝
修订号 过期写入被丢弃
串行事务 并发编辑不互相覆盖
tool call · edit_memory
/* 模型返回的请求,扩展会先校验 */
{
  "name": "edit_memory",
  "arguments": {
    "op": "replace",
    "base_revision": 7,
    "find": "偏好:先给结论",
    "replace": "偏好:先给结论,再展开"
  }
}

/* 校验通过后,修订号 + 1 → 8 */

目前支持

三个对话页面,一份记忆。

3 个适配器

DeepSeek

已适配

chat.deepseek.com

在 DeepSeek 网页对话里读取和修改同一份记忆。首次提交消息时注入引导语。

Gemini

已适配

gemini.google.com

同一个记忆文档,在 Gemini 侧同样可读可改。适配层负责该页面的 DOM 与发送行为。

小米 MiMo Studio

已适配

aistudio.xiaomimimo.com

适配对象是 MiMo Studio 的官方对话页,而不是小米 MiMo 的产品页或 API 文档页。

适配器依赖各站点的 DOM,站点改版时可能失效。 适配失败不会干扰原本的聊天页面,但你可能需要重试或手动继续对话。这是这个方案已知的代价。

数据在哪里

在你的浏览器配置里,不在我们的服务器上。

记忆文档和编辑记录都存在扩展自己的 IndexedDB 中。它们不会上传,也不会在你登录的设备之间同步 —— 因为 Memosaic 根本没有网络权限。

存储位置

IndexedDB

扩展配置内。随扩展卸载而清除。

网络请求

0

扩展未声明网络权限,没有远程 API 调用。

编辑记录上限

50 条

最近 50 条编辑记录随记忆一起保存在本地。

并发写入

串行化

IndexedDB 读写事务串行化并发编辑,过期修订号会被拒绝。

能力边界

它是一个原型,我们把边界写在前面。

它能做什么

已实现
  • 在三个受支持的对话页之间共享一份可编辑的 Markdown 记忆。
  • 用弹出窗口里的「打开记忆编辑器」手动查看和修改全文。
  • 让模型在有需要时自己补充和修订这段记忆。

它不能做什么

边界
  • 不读取、不上传你的聊天记录。
  • 不跨设备同步 —— 没有网络权限,也就没有同步。
  • 不执行代码、表达式或正则,也不接受文件路径。
  • 不保证在所有站点改版后继续可用。
  • 没有移动端,目前只面向 Chrome / Chromium 桌面。

安装

下载,然后拖进浏览器。

每个版本都会在 GitHub 上自动打包并发布,压缩包里就是扩展本体, 不需要 npm、不需要编译。下载后拖进扩展页即可完成安装。

v0.2.3 最新发布 · 2026-09-25
文件
memosaic-0.2.3.zip
大小
52 KB
校验
附 .sha256
许可
MIT
chrome://extensions · 开发者模式
  1. 下载并解压

    从发布页下载 memosaic-0.2.3.zip,解压到一个你不会随手删掉的目录。扩展会一直从这个目录加载。

    zip
  2. 打开扩展页并启用开发者模式

    地址栏输入 chrome://extensions,打开右上角的「开发者模式」开关。

    开关
  3. 把解压后的文件夹拖进页面

    直接把文件夹拖到扩展页上,或点击「加载已解压的扩展程序」选中它。压缩包根目录就是 manifest.json,不需要再往里找一层。

    拖放
  4. 打开记忆编辑器

    打开扩展弹出窗口,选择「Open memory editor」查看或编辑初始文档。

    验证
这不是从商店安装。 发布包由 GitHub Actions 在打 tag 时自动构建,构建前会先跑语法检查和测试, 并且要求 tag 与 manifest.json 的版本号完全一致,对不上就拒绝发布。 Chrome 应用商店渠道仍未开通,所以浏览器可能会有「未在商店中发布」类的提示。
MIT · Manifest V3 · 无需 Node.js 即可安装 在 GitHub 查看

先读完协议,再决定要不要装。

文档写清了工具调用流程、存储模型和能力边界,包括那些不好听的部分。