关于 WireCat Memo
WireCat Memo 是本地优先的知识存储和命令行工具,供需要让 Agent 使用笔记、文档、邮件和消息的人使用。它将信息关联到人物和来源,支持关键词及本地模型搜索,并为 Agent 答案整理证据。
主要功能
- 01导入笔记、文档、邮件和消息
- 02跨来源搜索并提供来源引用
- 03汇总人物身份及相关记录
- 04为 Agent 整理证据包
- 05管理笔记、任务、标签和提醒
适用场景
- 01通话前整理某人的背景
- 02查找讨论某个主题的位置
- 03为 Agent 提供带引用的问题证据
MCP 相关
`memo mcp serve` 向 MCP 客户端开放消息、邮件和笔记,并可按已保存的权限与审核设置处理待确认的记忆、事实和外发操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 今天
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 否 | 描述任务的词语 |
详细介绍
memo
为 AI Agent 提供本地知识。
将笔记、文档、邮件和消息存储在一个本地位置 — 关联人物、添加标签,并可搜索
每条内容都附有来源引用。
memo 是一款命令行工具。它会导入一个笔记文件夹(例如 Obsidian 库)及其中的文档和邮件;也会读取由 tg-cli 和
max-cli 保存的消息。然后,你或你的 AI Agent 可以询问:我对这个人了解什么?我们在哪里讨论过这件事?我承诺过什么?每个答案都会指向对应的来源。
示例 — 搜索笔记文件夹中的两条虚构笔记:
$ memo search notes budget Friday
Searched by words only: e5-small is not downloaded — install it with a WireCat CLI that has `models download` (tg, max or wa); they share the model folder
Projects/Harbour budget.md
Review the Harbour budget by Friday.
people/Alice Example.md
Asked for the revised budget by Friday.
每条匹配结果都会标出文件名,并显示匹配片段。诊断信息会输出到 stderr:本地模型缺失,因此此次搜索仅匹配文字。--json 会返回结构化结果,供 Agent 或脚本使用。
快速开始
你需要 Node.js 22.16+ 或 24+(不是 23)。memo 已在 Linux 上测试;macOS 和 Windows 尚未测试。
npm install -g @wirecat/cli-memo
memo skill install --for all # puts memo's skill where your agents read it
memo folders add /path/to/notes # your notes folder; Obsidian format by default
memo sync --only notes # reads the notes, their links and tags; run again after edits
memo search notes "budget"
全局安装不会安装 Agent 技能;请先运行上面的 memo skill install --for all。
npm 11.17 及更高版本会对未列入 allowScripts 的安装脚本发出警告;使用 npm 11 时,脚本仍会运行。
npm 12 则会阻止这些脚本。运行 npm 在警告下方打印的 npm install -g --allow-scripts=… 命令;
它仅允许命令中列出的程序包,且只生效一次。在 Windows 上,如果找不到 memo,请打开一个新的终端。
笔记只需做到这些。接下来添加更多上下文:
- **消息:**安装 tg-cli 或 max-cli;memo 会读取同一个本地存储。
- **按含义搜索:**需要一个约 135 MB 的本地模型,只需下载一次:
memo models download e5-small。没有它时,memo 会按文字搜索。 - **邮件:**设置 Himalaya,运行
memo mail add <account> <address>, 然后运行memo sync --only mail。 - 保持最新:
memo jobs start会每五分钟运行一次memo sync(Linux、systemd)。 - 你的 Agent:
memo skill install --for all会将 memo 的技能放到 Claude Code、Codex 和 Gemini CLI 可读取的位置;memo skill show会打印技能内容。
也可以让你的 Agent:“帮我通过 npm install -g @wirecat/cli-memo 和
memo skill install --for all 安装 memo,阅读 memo --help,然后帮我连接一个我选定的笔记文件夹。”
更多信息:安装 · 在 wirecat.dev 上安装 memo
能做什么?
“通话前,我需要了解 Alice 的哪些信息?”
memo context telegram:"Alice Example" --json
她关联的所有身份、双方最近发送的消息、共同参与的聊天、关联邮件、关于她的笔记和未完成的任务——每项都附有来源链接。
“我们在哪里讨论过 Harbour 的预算?”
memo search all 'harbour budget' --json
消息、导入的邮件和笔记会一起排序。知道内容类型后,search notes、
search mail 和 search messages 会检索每个字段。
“这周我答应过别人什么?”
memo answers create 'What did I promise this week?' 'promised OR "by Friday"' --all --json
为你的 Agent 准备的证据包:匹配的来源及其引用、搜索过的内容,以及要求引用来源的指示。你的 Agent 会撰写答案;只有在你要求时,memo 才会调用模型。
专为 AI Agent 打造
- 任何可使用终端的 Agent — Claude Code、Codex、Gemini CLI 等可运行
memo命令;--json会为它们提供结构化输出。 - 提供证据,而非猜测 —
memo answers create会提供带引用的来源,并说明哪些内容无法搜索。 - MCP —
memo mcp serve可让 Claude Desktop 或 Cursor 等 MCP 应用读取你的消息、邮件和笔记,并提出记忆、可直接记录的事实及外发操作。获得授权后,Agent 也可以决定项目提案;你也可以要求由负责人决定。网页或手机应用可通过 HTTPS 隧道使用 经过身份验证的 HTTP MCP,并沿用相同的已保存权限。
更多信息:连接你的 AI Agent · 记忆与事实 · MCP 服务
为什么选择 memo?
- 本地优先。 所有内容都保存在本地存储中;按含义搜索使用本地模型。
- 每个答案都有来源。 搜索结果都附有你或你的 Agent 可以打开的引用:笔记、文件页面、邮件或消息。
- 关联,而非猜测。 笔记会关联人物和记录;不会仅因姓名相同就合并身份。
- 导入不会改动你的来源。 单独的 Gmail 清理命令
只有在使用
--yes时才会将选定邮件移至垃圾箱或恢复邮件。标签和你自己的笔记保存在存储中。 - 审核和委派都有记录。 Agent 提出的记忆和外发操作都必须先经你确认。项目决策可以委派,也可以由负责人决定。Memo 绝不会发送任何内容。
状态: 早期阶段。上下文、笔记及其关联、文档导入、Gmail 和 IMAP 导入、任务、 手动关联、证据包和本地提醒均可使用。项目中的任务目前还不能设置提醒。
更多信息:安全 · wirecat.dev 上的安全信息
它会读取什么
- 笔记文件夹: Obsidian 或纯 Markdown,支持链接、别名和标签。
- 其中的文档: TXT、CSV/TSV、带文本层的 PDF、DOCX、XLSX、ODT/ODS、PPTX 和 EPUB,并标明每段内容所在的页面、行或单元格。
- 邮件: Gmail 或其他 IMAP 账户,通过 Himalaya 读取,并包括附件。
- 消息: tg、max 和 wa 存储中的消息,以及关联了各个通信应用和邮件的联系人。
你可以为消息、人物和项目添加自己的笔记、标签、任务和提醒,也可以添加组织和项目。
更多信息:笔记 · memo 可以读取的文件
按任务分类的命令
| 任务 | 命令 |
|---|---|
| 连接笔记文件夹 | memo folders add · folders update · folders list |
| 同步更改 | memo sync · sync --only notes · sync --only mail · jobs start / stop / status |
| 阅读笔记 | memo notes list · notes show · notes links show(关于某人的笔记文件) |
| 编写自己的笔记 | memo notes add · notes edit · notes remove · notes export |
| 搜索 | memo search all · search notes · search mail · search messages |
| 向 Agent 提供证据 | memo answers create |
| 了解某人 | memo context |
| 准备和审阅已归档的会议 | memo meetings prepare · search meetings · meetings passage · meetings actions add |
| 组织和项目 | memo organizations add / list / context · projects add / list / context · projects key-documents add / remove / list · projects meetings list / link |
| 项目和主题别名 | memo vocabulary list / show / check / inspect · vocabulary aliases add / remove · vocabulary create |
| 关系 | memo relationships add / list / remove / confirm / suggest |
| 标签 | memo tags add · tags remove · tags list |
| 未完成的工作 | memo tasks add · tasks list · tasks agenda · tasks show · tasks update · tasks assign · tasks close · stats tasks show |
| 任务依赖关系 | memo tasks link / unlink / relations · tasks status · tasks list project:HRB ready:true |
| 提醒 | memo reminders add / list / poll / ack / update / cancel |
| Agent | memo memories … · facts … · actions … · agents list · memo mcp serve |
每个命令都支持 --help;大多数命令也支持 --json。memo guide 会列出各种使用场景——完成常见任务所需的命令及其顺序;memo guide person-brief 会汇总 WireCat 所有工具中与某个人相关的信息。
更多内容:技术文档 · wirecat.dev 上的 memo
来自文件的笔记,以及你编写的笔记
来自文件夹。 memo folders add 会为文件夹分配一个存储使用的 id;它的路径仅指它在这台电脑上的位置,因此要在另一台电脑上关联同一个文件夹,请使用 memo folders update <id> <path>。memo sync --only notes 会将每个文件存储为一条以其路径命名的笔记。编辑过的文件会保留旧文本作为修订版本;移动过的文件会保留其 id、链接和标签;已删除文件的文本会在下一次导入时被移除。obsidian 格式(默认格式)会读取 [[Note|label]] 链接、别名、tags: 和 #tags;markdown 格式会读取 [label](path.md) 链接和 tags:。当存储中存在名为 Kai Sample 的人时,[[Kai Sample]] 链接会变成指向此人的链接。.obsidian 等隐藏文件夹会被跳过。
在 memo 中编写。 你编写的笔记属于存储,而非文件;它关联的对象由 --subject 指定,可以是某个人、消息、聊天、项目、任务或另一条笔记。
memo notes add 'Prefers mornings' --subject telegram:'Alice Example'
memo notes edit NOTE_ID --revision 1 --text 'Prefers early mornings'
memo notes export --output-dir /path/to/vault/memo --format obsidian
编辑时需要指定要修改的修订版本,因此期间进行的编辑永远不会丢失。export 会将你的笔记写入文件,后续导入时会跳过这些文件,也绝不会覆盖你编辑过的文件。
搜索与证据
笔记会根据查询语言中的词语和词干进行搜索——消息中使用的短语、AND/OR/NOT、
tag:、date:——下载本地模型后(memo models download e5-small)也会按含义搜索;两种结果会一同排序。search all
会读取消息、导入的邮件、笔记和 gcal 一并存储的日历事件,不会读取其他内容。如果你知道内容类型,相应的搜索命令
会读取每个字段:search mail 支持 from:、to:、cc:、bcc:、subject: 和 mailbox:。
memo search notes '"budget review" AND NOT cancelled' --limit 20
memo search mail 'from:[email protected] subject:budget'
memo notes show note:NOTE_ID --json
memo answers create 需要指定范围(--all,或 --source,例如 --source telegram:1,notes),并默认返回证据。若要
调用模型,请设置 MEMO_MODELS_ANALYSIS_PROVIDER 和 MEMO_MODELS_ANALYSIS_MODEL,并传入
--analyze;远程模型还需要 --allow-remote。
更多信息:搜索 · 在 wirecat.dev 上搜索
人员、组织和项目
memo context 会根据共享存储回答:与某人关联的每个身份、双方最近一次消息、近期消息、共同参与的聊天、关联的邮件、对方的日历事件、关于对方的笔记以及未完成的任务。谁是谁
由消息平台中的信息决定——tg personal contacts link <person> email:<address>——仅仅同名并不足以确认身份。
memo notes links add telegram:"Alice Example" /path/to/notes/people/Alice.md 用于指定关于她的笔记。
组织和项目归你所有,而非某个账户所有。关系(member-of、related-to)
需手动声明;relationships scan 只会提议共享域名的关联,供你确认。项目
可以关联会议(projects meetings link),而 memo vocabulary 会为项目和主题提供审核通过的别名,确保一个名称始终指向同一个项目。
添加新标签或主题前,请运行 memo vocabulary check <name> --json。如果有对应的规范标签,请复用;如果含义相同,则添加别名。
对于有意区分的标签,请运行
memo vocabulary create <name> --fingerprint <creation_fingerprint> --json;创建主题时,两条命令都要指定 --kind topic。所有者负责接受这项审核;MCP 提供 vocabulary_check,
但没有用于创建标签的工具。如果期间标签或别名发生变更,则需要重新审核。
memo vocabulary check --json 会查找目录中可能存在的同义词。其 complete
标记会说明有限范围内的比对是否已完成;候选项需要审核,且绝不会自动合并。使用 --kind tag、--kind topic 或 --kind project 缩小审核范围。
memo organizations add 'Synthetic Studio' --kind company
memo projects add 'Synthetic Harbour' --organization organization:ORGANIZATION_ID
memo projects key-documents add PROJECT_ID document:DOCUMENT_ID --reason 'read this first'
memo projects context PROJECT_ID --json # start project work here: key documents come first
更多信息:人员和项目 · wirecat.dev 上的人员信息
邮件
memo 通过 Himalaya 读取邮件,这是一个需要你先行配置的命令行邮件客户端。
默认使用 Gmail;使用其他 IMAP 服务商时,需设置 mode: "imap" 并指定要读取的文件夹。
邮箱以只读方式打开,--limit(默认值为 200)限制每次运行读取的新邮件数量,下次运行时会接着读取。
Gmail 标签会转换为邮箱,附件文本会与邮件内容一同参与搜索,而在源端删除的邮件,其文本也会从存储中移除。每个账户都在
mail.accounts 中命名;memo sync 和定时器会读取所有账户,并在报告中分别标明账户名称;使用 --source email:<name> 可缩小范围。
memo sync --source email:work --since-time 2026-09-01 # work: the account's name in mail.accounts
memo search mail 'mailbox:important budget'
更多信息:邮件 · wirecat.dev 上的邮件信息
标签、任务和提醒
标签是你在笔记、邮件、消息、聊天、个人、组织、项目、任务、会议或文件夹下所有笔记上使用的标记。它们存储在数据存储中;文件、Gmail 标签和邮箱标记都不会改变。任务会指向其来源消息或笔记,也可以是你在项目中创建的任务(--project RES --title …),并且可以被其他任务阻塞,直到后者完成。memo tasks agenda 会列出你指定账户中今天需要查看的事项;笔记文件夹也可以作为账户(--source notes)。提醒存储在本地:由你选择的调用方轮询提醒,不会向即时通讯工具或邮箱发送任何内容。
memo tags add follow-up --note note:NOTE_ID
memo tasks add 'msg:telegram/1/77/42' --type request
memo reminders add TASK_ID --at-time 2026-10-09T09:00:00+02:00 --account telegram:1
Agent 和 MCP
带有终端的 Agent 会使用 --json 运行 memo。MCP 应用会通过标准输入和标准输出启动 memo mcp serve。应用可以借此使用 Memo 的命令,包括写入操作,但会受到已保存权限和读取锁的限制。
它可以使用 notes_show 和 messages_show 打开搜索引用。现有工具名称仍然有效:
{ "mcpServers": { "memo": { "command": "memo", "args": ["mcp", "serve"] } } }
Agent 新增的记忆、直接记录的事实以及外发操作提案都会以 proposed 状态开始。权限键会限制读取、编辑和决策;没有已保存级别的写入操作会使用 ask,通过 MCP 运行时不会出现终端提问。来源文件夹和邮件规则的更改需要 mcp.authority,此权限默认关闭。
项目提案采用单独的流程:默认情况下,Agent 可以提供记录在案的理由来决定这些提案,从而创建已接受的事实和带编号的任务,或确认关键文档。设置 agent_decisions: false 可要求所有者决定项目提案。会议决策和注释恢复需要明确授权。Memo 永远不会发送消息或电子邮件。memo agents list 会列出每次调用、结果和时间,不包含调用参数。
更多信息:记忆和事实 · MCP 服务 · wirecat.dev 上的 MCP
保持最新
memo sync 会更新笔记和邮件,并且只读取发生变化的内容。memo jobs start --every 5m 会通过 systemd 用户计时器运行该命令;jobs status 会显示下次和上次运行时间。如果计时器运行失败,每条 memo 命令都会在一行 stderr 中说明。锁可避免两次导入同时进行:如果计时器运行时发现同步仍在进行,就会跳过并以 0 退出。一个来源失败不会影响其他来源。
更多信息:保持 memo 为最新状态 · 在 wirecat.dev 上导入文件夹
配置
memo folders add 和 memo jobs start 会为你写入 ~/.config/cli-memo/config.json。你可以手动设置要跳过的内容以及导出笔记的存放位置;memo mail add 会添加一个明确指定的 Himalaya 账户:
{
"notes": { "ignore": ["Journal/Private.md", "Archive"], "export": { "dir": "/path/to/vault/memo" } },
"mail": { "accounts": [{ "name": "work", "address": "[email protected]" }] }
}
更多信息:配置 · wirecat.dev 上的配置
安全
- 导入会读取笔记文件夹和邮箱,不会更改内容或将邮件标记为已读。Memo 从不发送邮件。
- 单独的 Gmail 清理命令只有在使用
--yes时才会将选定邮件移至垃圾箱或还原邮件;定时器不会运行这些命令。 - Memo 添加的内容——你的笔记、链接、标签、任务、记忆——都保存在本地存储中。
- 在源位置删除的笔记或邮件,下次导入时其文本会从存储中移除;如果某次运行发现缺失内容的比例异常高,就不会删除任何内容,并会说明原因。
- 只有使用
--analyze时,证据才会发送给模型;只有使用--allow-remote时,才会发送给远程模型。 - Agent 负责提出建议;只有你能确认记忆并批准操作。
更多信息:安全 · wirecat.dev 上的安全说明
限制
- 文件最大为 50 MiB;存储的文本每个文件最多为 200,000 个字符。扫描版 PDF、旧版
.xls文件和更大的文件会被报告,但不会读取。 - 按含义搜索时,每次运行最多嵌入 600 个片段;下一次运行会继续处理。
memo sync --only mail默认每个账户每次运行读取 200 封新邮件(--limit),并保留正文最多 1,000,000 个字符、附件文本最多 200,000 个字符(mail.max_body_chars、mail.max_attachment_chars)。- 搜索最多返回 100 条结果;
tags list最多显示 100 个标签,除非通过--limit指定更多。 - 标签必须包含 1–32 个字母 a–z、数字或连字符。
更多信息:memo 可读取的文件 · memo 可读取的文件
缺少内容时
-
**只能按词语搜索:**尚未下载本地含义模型。通过 tg、max 或 wa 安装;它们共用模型文件夹。没有该模型,词语搜索仍然可用(按含义搜索)。
-
**导入时拒绝某个文件夹:**它还没有 id——
memo folders add <path>。 -
**拒绝某个名称:**有两个人使用相同名称;请使用列出的某个 id。
-
**
memo answers create要求指定范围:**添加--all或--source。 -
**搜索结果为空:**存储中没有匹配的内容——这并不能证明事情从未发生过。请尝试该类型自带的搜索、使用更宽泛的词语,或先导入该来源。
-
**命令失败,想知道原因:**运行
memo runs list status:failed,然后运行memo runs show <run-id>。 失败的运行会保留 30 天,成功的运行会保留 7 天 (运行记录)。
WireCat 的一部分
WireCat 是一个面向 AI Agent 的开源、本地优先上下文层:tg 用于 Telegram,max 用于 MAX,wa 用于 WhatsApp,zm 用于归档的 Zoom 录制内容,drive 用于 Google Drive 和 Docs, memo 用于你的笔记和邮件。导入的上下文可以在本地搜索。从笔记开始,再添加你需要的来源。
技术文档
| 页面 | 内容简介 |
|---|---|
| 概览 | 简要介绍 memo 的功能和工作原理 |
| 安装 | 系统要求、安装、文件存放位置和更新 |
| 使用 memo | 日常操作:导入、搜索、上下文、笔记和回顾 |
| memo 的工作原理 | 本地存储、导入、链接、引用和回顾 |
| 笔记和文件夹 | Markdown 和 Obsidian 文件夹、文档、自建笔记和导出 |
| 标签 | 为任意来源添加标签 |
| 搜索 | 搜索词、search all、answers create |
| 人物和项目 | 人物上下文、关联、组织和关系 |
| 邮件 | 通过 Himalaya 使用 Gmail 和 IMAP |
| 任务和提醒 | 任务、依赖关系和本地提醒 |
| 记忆和事实 | Agent 和你记录的内容,以及建议的操作 |
| MCP 服务 | 无需终端的应用、Agent 日志 |
| 远程连接 | 浏览器和手机应用、访问码登录和撤销 |
| 保持 memo 更新 | memo sync 和定时器 |
| 操作指南 | 可交给 Agent 执行的完整任务 |
| 所有命令 | 每个命令和选项,由程序生成 |
| 配置 | 所有设置和变量 |
| 故障排除 | 屏幕提示的内容及应对方法 |
| 安全 | 读取、写入和发送的内容 |
| 与其他工具对比 · 网页 | memo 与 Hindsight、mem0、Graphiti、Cognee、basic-memory、Obsidian 和 Screenpipe 相比如何? |
| 更新日志 | 每个版本的发布记录 |
读者指南位于 wirecat.dev。
开发
pnpm install
pnpm lint && pnpm typecheck && pnpm test
欢迎提交拉取请求;示例和测试仅使用虚构人物。
更多内容:安装
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。