关于 Funes Vault
Funes Vault 是一款开源 Mac 菜单栏应用,在本机保存个人记忆,并按 Agent 设置访问范围和审批流程。它通过 MCP 让不同 Agent 按权限读取或建议记忆,分享内容可由用户逐项确认。
主要功能
- 01记忆保存在本机
- 02按 Agent 配置权限和敏感度
- 03分享记忆前逐项审批
- 04将记忆建议放入收件箱审核
- 05记录请求活动并可暂停 Agent
- 06从文本、文件或导入内容添加记忆
适用场景
- 01为不同 Agent 限制可读取的记忆
- 02确认具体共享内容后再提供上下文
- 03审核 Agent 提议保存或更正的记忆
- 04将个人笔记或导入的记忆纳入资料库
MCP 相关
本机 MCP 服务向 Agent 提供记忆类别查询、请求记忆、接收已批准请求和建议记忆等工具。各 Agent 使用独立密钥,并受其读取、建议或写入权限限制。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Funes Vault
让 AI Agent 拥有你的记忆,而不是全部记忆。
一款免费的开源 Mac 菜单栏应用,将你的个人上下文保存在 Mac 上的私密保险库中,并且只按你的允许与 Claude、Cursor、Codex 和其他 AI Agent 分享。
下载 Mac 版 · 开始使用 · Agent 配置 · 更新日志
- 每个 Agent 只能获取你选择的内容。 每个 Agent 都有自己的密钥,以及你设定的访问权限:读取、建议或保存;可设定敏感度上限,也可选择类别。新 Agent 可以从零开始。
- 你要批准确切的文本。 记忆发送给 Agent 之前,会在一个小面板中显示,你可以取消勾选不应发送的内容。每次批准仅使用一次,有效期为 15 分钟;任何内容发生变化,批准都会失效。
- Agent 提出建议,由你决定。 Agent 想要记住的内容会留在收件箱中,你可以编辑、应用或拒绝。
- 所有内容都留在你的 Mac 上。 无需账户,没有我们的服务,也不会在云端留存副本。搜索由应用内置的小型模型执行。iPhone 应用也不会保留副本:它会通过端到端加密与 Mac 通信。claude.ai 和 ChatGPT 等云端 Agent 只能通过你启动的隧道访问,且需使用远程访问(实验性功能,默认关闭)。
**状态:**公开预览版(v0.2),提供尽力支持。Funes Vault iPhone 版(iOS 18 或更高版本)可与其配对。**兼容:**Claude Code、Claude Desktop、Cursor 和 Codex,并为 VS Code(Copilot)、Gemini CLI、Zed、Cline、JetBrains AI Assistant、Devin Desktop 和其他 MCP 客户端提供现成配置。**云端访问(实验性):**可通过远程访问连接 claude.ai、ChatGPT、Gemini Enterprise、Anthropic 和 OpenAI API,以及云端编码 Agent。
开始使用
-
安装。 下载
FunesVault.dmg,打开它,然后将 Funes Vault 拖到 Applications。如果你从磁盘映像或“下载”文件夹中打开它,应用会提示你将其移到那里。你也可以使用 Homebrew:brew install --cask bereciartua/tap/funes-vaultFunes Vault 需要运行于 macOS 15 或更高版本,支持 Apple 芯片或 Intel 芯片。
-
打开应用。 它位于菜单栏中。应用窗口打开后会显示 Home,其中有一份简短的设置清单:
- 连接 Agent。 点击 Add… 会打开“添加 Agent”界面,并优先显示在 Mac 上找到的 Agent。选择一个 Agent 和初始访问权限:默认选项 读取低敏感度记忆,先询问,允许 Agent 读取敏感度为低及以下的记忆,并在每次共享前询问你。对于 Claude Code、Claude Desktop、Cursor 和 Codex,Add and Connect… 会先明确显示即将进行的更改或操作;更改设置文件前会先备份,且绝不会将密钥写入 Agent 的设置。对于其他 Agent,请复制其 Connect 标签页中的设置。
- 批准第一个请求。 向 Agent 提问,例如 “帮我规划一周的晚餐” 或 “按照我喜欢的方式设置这个 TypeScript 项目。” Agent 会向 Funes 请求上下文,你会看到面板并选择要共享的内容。收到 Agent 的第一个请求后,此步骤即告完成。
- 为你的保险库添加初始内容。 回答几个可选问题,导入你的 ChatGPT 记忆或粘贴 Claude 的记忆,或者导入 Markdown 文件。你添加的内容会先进入收件箱;任何看起来像机密的信息都不会被导入。问题最后会询问哪些类别的内容是 Agent 绝不能查看的:这些类别对所有 Agent(包括之后添加的 Agent)一律设为“拒绝”。
- 查看收件箱。 应用合适的内容;编辑或拒绝其余内容。
你也可以随时使用 ⌥⌘M、菜单中的 Remember…,或在任何应用中选择 Services ▸ Remember in Funes 来记录想法;也可以在 Home 中输入内容并按 Return:无论使用哪种方式,内容都会进入收件箱。在 Home 中按 ⌘Return,可搜索保险库中与你输入内容相关的信息;点击麦克风即可在 Mac 上听写(macOS 26 及更高版本)。
Home 还会显示保险库的动态:每天新增的内容来自你、iPhone、Agent、导入操作或整理功能;以及共享给各个 Agent 的内容,并标出被拒绝的请求。将鼠标悬停在某一天上可查看数量,点击该日期可在“活动”中查看当天的记录。下方会显示记忆数量及其增长情况、记忆的敏感度与共享内容的对照、12 周使用节奏,以及读取保险库的对象。这里只显示数量,绝不会显示记忆文本。
每个 Agent 的设置说明、工具参考和故障排除信息,请参阅 MCP 指南。
来自云端 Agent(实验性)
claude.ai、ChatGPT 和云端编码 Agent 运行在其供应商的服务器上,因此无法直接访问你 Mac 上的应用。远程访问让它们通过你运行的隧道访问,例如 Tailscale Funnel:
- 在侧边栏中打开远程访问,并按提示完成四个步骤:选择隧道、开启远程访问并启动隧道、粘贴其地址、测试。Funes 不会启动隧道;它只会显示命令。
- 在添加 Agent…的云端 · 实验性标签页中添加 Agent(claude.ai、ChatGPT 等),或在某个 Agent 的云端标签页中开启允许云端访问。
- 连接它:需要登录的应用(claude.ai、ChatGPT、Gemini Enterprise)使用连接云端应用…,并在 Mac 上比对六位数代码;其他应用则使用 Agent 的远程令牌。每个 Agent 的云端标签页都会显示相应步骤。
云端 Agent 获得的访问权限与你为其设置的完全一致,并且使用 Mac 上相同的面板:如果你不在身边,它的请求会像其他 Agent 一样等待并过期。开启远程访问期间,保管库可通过公共地址访问,而你与云端 Agent 分享的内容会发送到其供应商的服务器。默认情况下远程访问处于关闭状态;菜单栏中的关闭远程访问会立即切断所有云端 Agent 的连接。MCP 指南中有详细说明。
如何保持掌控
Funes 是唯一保存你记忆的地方。Agent 与它通信,而不会直接访问保管库;它会根据你允许的权限检查每个请求。
由你决定每个 Agent 可以查看的内容
每个 Agent 都有独立的访问权限:是否可以读取、建议或写入;最高敏感度(公开、低、内部、敏感、受限或机密);允许或禁止使用的类别(始终以禁止的类别为准);Funes 是否在分享前询问以及是否在保存前询问;还有可选的到期日期。健康、财务和法律类记忆默认属于敏感级别。
当 Agent 请求上下文时,Funes 会查找与其任务匹配且允许该 Agent 访问的记忆。如果开启了请求确认,面板会显示每条记忆及其复选框、Agent 声称的用途、它保留所获内容的时长,以及还有多少条匹配记忆无法提供给它。Share 只发送你勾选的内容;Deny 不发送任何内容。Agent 最多等待 45 秒。如果你没有及时回应,请求会在 Pending requests 中等待最多 15 分钟,之后 Agent 会获取你的答复;More Time 会立即将请求移至那里。无论你正在使用哪个应用,按 Review Request (⌃⌥⌘R) 都会调出等待中的面板。
Agent 在任务或用途说明中写的任何内容,都不会改变它可以看到的内容。这些文字只用于帮助查找相关记忆。
Agent 提议,由你决定
Agent 会提议记忆,默认情况下,每条记忆都会作为卡片在 Inbox 中等待,你可以在 Apply 前编辑;对于更正内容,可选择 Replace 或 Keep Both,也可以选择 Reject 或 Later。卡片会标明是谁提议了什么,引用 Agent 提供的理由,指出相似记忆,并将更正内容显示为旧文本和新文本。你自己捕获和导入的内容也会出现在这里。开启 Split into separate memories 后(在 Settings ▸ AI Models 中设置,需使用本地服务或云模型),收到的内容会按主张拆分,每条建议各占一项,并在同一张卡片上标记为 New、Updates a memory、Already saved 或 Removes a memory,同时提供 Apply All 和 Keep as One。开启 Daily tidy-up 后(在 Settings ▸ AI Models 中设置,默认关闭),Funes 还会每天检查一次重复内容、过时记忆、需要合并或拆分的记忆以及相互矛盾的内容,并在 Inbox 的 Tidy-up 区域中提出建议;对于冲突,始终会询问你哪种说法属实。
一切尽在掌握,随时可以阻止
Activity 按日期列出每个 Agent 的请求及处理结果,并提供筛选器。Funes 只存储 ID 和原因代码,从不存储文本:打开某一行时,它会按记忆当前的标题显示相关记忆,说明哪些内容被拦下以及原因,并提供链接以修复拒绝原因。你可以暂停某个 Agent,在保留其配置的同时拒绝它的请求;也可以移除……,彻底切断其访问权限;还可以从菜单栏将 Pause Funes Vault 设为暂停一小时、直到明天或直到你恢复运行。
- 默认在本地运行。 MCP 服务在
127.0.0.1:47625上监听,绝不监听网络接口。无需账户、没有分析追踪,也没有我们的服务器。远程访问默认关闭,启用后会打开第二个环回端口,只有你运行的隧道才能将其暴露出去。iPhone 访问默认关闭,启用后会向你配对的 iPhone 开放端口 47626,且通过该端口传输的每条消息都经过签名和端到端加密。 - 每个 Agent 都有自己的密钥。 每个 Agent 都有一个保存在私有文件中的 256 位密钥;保险库只存储该密钥的哈希值。一键设置和启动器会读取该文件,而不是将密钥放进 Agent 的配置中。
- 默认拒绝。 对 Agent 或请求有任何疑虑时,都会拒绝。拒绝时会告知 Agent 有多少条记忆未提供以及原因,但绝不会透露具体是哪几条。
- 仅限一次。 获准分享的内容会在 15 分钟内发送一次,且只有在记忆和 Agent 的访问权限均未更改时才会发送。
- 不泄露机密。 机密扫描器会检查捕获内容(iPhone 上也会检查)、建议和导入内容,以及发送给你所选模型的所有内容。
- 更新均经过签名。 更新来自 GitHub,经过 Funes Vault 签名,并会在安装前进行验证。安装始终需要点击确认。
- 开源。 你可以查阅代码、架构和测试记录。
无法防范的情况: 以你的 macOS 用户身份运行的其他程序可以读取相同的保险库和密钥文件。访问设置用于区分你连接的各个 Agent;它们无法防御已经存在于 Mac 上的恶意软件。详情请参阅安全边界。
Agent 可以做什么
Agent 可以使用四种主要工具,但只能使用其访问权限允许的工具:
| 工具 | 功能 | 所需权限 |
|---|---|---|
list_memory_categories | 列出你的类别,以及此 Agent 在各类别中可以执行的操作。不显示记忆,也不显示数量。 | 始终可用 |
request_memory | 根据任务请求相关记忆,并提供有助于获取上下文的关键词。返回记忆、先征求你的同意,或说明原因后拒绝。每次回复还会附带你允许与该 Agent 分享的关于你部分内容(默认包含你的姓名)。 | 读取 |
get_memory_request | 获取你在 Agent 停止等待后才作出答复的请求。仅发送一次。 | 读取 |
suggest_memory | 提出一条记忆或更正建议。内容会进入收件箱;如果你允许该 Agent 无需询问即可保存,也可以直接写入保险库。 | 建议或写入 |
第五种工具 open_in_funes 只会在某个 Agent 有待处理请求或建议时将 Funes 带到前台。MCP 指南列出了所有参数和结果。
常见问题
它免费吗?
是的。Funes Vault 按 Apache License 2.0 开源,无需账户,也没有试用期。
我的记忆会离开 Mac 吗?
只有你分享给 Agent 的内容会离开 Mac;这些内容之后会根据 Agent 及其 AI 提供商的条款发送给它们。Funes 本身没有服务器。默认情况下,搜索以及新捕获内容的建议都在 Mac 上运行。如果你为这些建议选择云端模型,或为搜索选择提供商的嵌入模型,Funes 会说明它发送的内容,并且绝不会发送超过云端上限的内容(默认为「内部」)。隐私列出了应用建立的所有连接。
分享前是否总会征求同意?
默认情况下会:所有初始访问权限都会在每次分享前征求同意。你可以为信任的 Agent 关闭分享前征求同意;关闭后,该 Agent 无需弹出面板即可获取允许读取的记忆,每次分享仍会显示在「活动」中。
如果 Agent 发出请求时我不在 Mac 旁边怎么办?
Agent 会等待 45 秒,随后收到提示,告知请求正在等待你的批准。请求会在菜单栏菜单的待处理请求中保留 15 分钟。如果你在此期间批准分享,Agent 下次检查时就会收到这些记忆。
它能与 claude.ai 或 ChatGPT 搭配使用吗?
可以,通过远程访问(实验性功能):运行一个隧道(例如 Tailscale Funnel),让 Funes 可通过公开地址访问;打开配对功能后,在 Mac 上比对一个代码,claude.ai 或 ChatGPT 即可登录。每个云端应用都使用一个 Agent 的访问权限,并显示与任何 Agent 相同的面板。请参阅使用云端 Agent。
Agent 能更改或删除我的记忆吗?
不能。Agent 只能提议新增记忆和更正内容。如果你授予 Agent 写入权限,并关闭保存前询问,它就能在其类别和敏感度限制范围内直接保存新记忆;它提出的更正仍会留在收件箱中等待处理。
它需要 Apple Intelligence 吗?
不需要。搜索使用应用内置的小型模型(bge-small,运行在你的 Mac 上);你也可以在旁边添加服务提供商的嵌入模型(Ollama 或 LM Studio 中的 Qwen3-Embedding,或 OpenAI 的 text-embedding-3),这对搜索其他语言的内容最有帮助。如果你的 Mac 支持 Apple 设备端模型(macOS 26 或更高版本并配备 Apple Intelligence),它会为捕获的内容建议标题、类别和敏感度;否则会使用简单规则。你也可以在设置 ▸ AI 模型中选择 Ollama、LM Studio、Anthropic、OpenAI 或其他兼容 OpenAI 的服务,或者通过你已在使用的 Claude Code 或 Codex 使用 Claude 或 ChatGPT 套餐(无需 API 密钥)。使用其中一种模型后,可以开启拆分为独立记忆,将捕获内容、Agent 的建议和导入内容拆分为单条记忆,并关联到知识库已有的内容;还可以开启每日整理,以提议更新、合并、拆分和归档相关记忆。除非你选择自动应用更改,否则所有提议都会留在收件箱中等待处理;选择该选项后,只会应用所选模型判断足够准确的更改,并且 30 天内可以撤销。
有 iPhone 应用吗?
有:Funes Vault for iPhone 可通过端到端加密通道与这台 Mac 配对,且不会保留知识库的副本。应用打开后会显示主页:一个用于记录内容的输入框(可输入或口述;Mac 收到内容前会先在 iPhone 上排队等待)、等待你处理的 Agent 请求,以及知识库的动态概览:过去 7 天或 30 天内每个 Agent 接收和发送了哪些内容、知识库的大小和敏感度、你添加内容的频率,以及谁在读取内容。主屏幕小组件会根据 Mac 最近发送的计数显示动态概览和记录频率,点击后可打开主页,随时输入或口述。只要 Mac 可以连接,应用也能搜索和编辑知识库、查看收件箱并回复 Agent 的请求。试用演示可通过示例数据展示每个屏幕,无需 Mac。
这是 Apple、Anthropic 或 OpenAI 开发的吗?
不是。Funes Vault 是一个独立的开源项目,与这些公司均无关联,也未获得它们的认可。
还有其他问题?请提交问题。
安全边界
- MCP 服务。 在 Settings ▸ MCP ▸ Let agents connect 开启时运行(默认开启),且仅监听
127.0.0.1(端口为 47625,除非你在同一面板中更改)。每个请求都需要 Agent 自己的密钥;保险库只存储其 SHA-256 哈希值。带有外部Host、任何Origin(网页)或隧道转发标头的请求都会被拒绝,反复登录失败会导致锁定一分钟。已暂停和已过期的 Agent 会被拒绝;已移除 Agent 的密钥不再有效。 - Agent 密钥。 每个密钥都是一个只有你能读取的文件(权限模式为 0600,位于权限模式为 0700 的文件夹中),存放在
~/Library/Application Support/FunesVault/agent-keys/下。funes-mcp启动器只会在确认端口上的程序是你自己的 Funes Vault 后才发送密钥。Rotate Key… 会立即替换密钥。 - 访问决策。 访问决策由 Funes 根据 Agent 的访问权限、每条记忆的敏感度和类别,以及你的回答作出,绝不依据 Agent 写入的内容。批准仅适用于你查看过的确切记忆及其版本。
- 静态数据。 保险库是 Application Support 文件夹中的 SQLite 文件,由 FileVault 保护,而非通过自身加密保护。备份也保存在同一文件夹中。
- 模型。 只有在你添加并选择模型提供商后,文本才会发送给该提供商;使用云端提供商时,发送量不会超过你的云端限额;文本看起来像机密信息时绝不会发送。
- iPhone 访问(默认关闭)。 开启后,第三个监听器会在端口 47626 上运行,只响应通过扫描 QR 码配对并在 Mac 上点击 Allow 的 iPhone:可通过本地网络(Same Wi-Fi)、你的 tailnet(Tailscale),或你运行的隧道后的
127.0.0.1访问。每次调用都会由 iPhone 的 Secure Enclave 中的密钥签名,并封装给 Mac 的密钥,因此网络、Tailscale 或隧道都无法读取或伪造调用;重放和过期消息会被拒绝。已配对的 iPhone 会以你的身份操作。点击 Remove… 可立即断开其中一台设备。为唤醒 iPhone 以进行批准,Mac 会在你的私人 iCloud 数据库中保存一条记录,其中仅包含随机名称和标签;随后 iPhone 会从 Mac 获取请求。 - 远程访问(实验性功能,默认关闭)。 开启后,第二个监听器会在
127.0.0.1上运行(端口为 47627,除非你在 Remote Access 页面中更改),响应由你运行的隧道从互联网转发来的请求。每个路由都位于一个 128 位的秘密路径下(其他路径一律返回 404);Host必须是你的隧道地址(对于会重写该地址的隧道,也可以是环回地址);每次调用都需要你已允许其云端访问的 Agent 的凭据:其远程令牌,或在该 Agent 的配对窗口开启期间,通过六位数代码批准的云应用所提供的 OAuth 令牌。本地密钥不能用于远程访问,远程凭据也不能用于本地访问。同一地址反复登录失败会导致锁定 5 分钟,远程调用也有更严格的速率限制。对 Agent 的访问权限、面板和待处理列表与 Mac 上的 Agent 相同。你分享给云端 Agent 的文本会发送给其供应商;部分隧道(Cloudflare、ngrok)可以读取流量,而 Tailscale Funnel 会在你的 Mac 上终止 TLS。
这些控制措施无法隔离以同一 macOS 用户身份运行的其他进程。 这类进程可以读取保险库、备份和密钥文件。Funes 也无法撤回或控制你分享给 Agent 后的文本。访问设置是你所连接的 Agent 之间的边界,并非针对已遭入侵的用户账户的防御措施。请参阅威胁模型。
请按照 SECURITY.md 中的说明,私下报告漏洞。
隐私
此应用不包含分析、遥测或崩溃报告功能,也不需要账户。你的记忆、Agent、密钥和活动记录都保留在你的 Mac 上。应用会建立以下连接:
| 连接 | 时机 |
|---|---|
MCP 服务,监听 127.0.0.1:47625 | 开启 让 Agent 连接 时。仅限环回连接:其他电脑无法连接。 |
funes-mcp 连接到 127.0.0.1 | Mac 上的 Agent 启动它以连接 MCP 服务时。 |
向 GitHub 发送一次 HTTPS 请求,获取 appcast.xml | 开启 设置 ▸ 更新 ▸ 每天检查更新 时,每天一次;以及你选择 检查更新… 时。GitHub 会看到你的 IP 地址和应用版本。从源代码构建的副本不会检查更新。 |
| 从 GitHub 下载更新 | 仅在你点击安装后。 |
远程访问监听器,位于 127.0.0.1(默认端口为 47627) | 仅在开启 远程访问 时(默认关闭)。仅限环回连接;你运行的隧道(例如 Tailscale Funnel)可通过你选择的地址让它从互联网访问。Funes 不会启动隧道。 |
| 向你的隧道地址发送一次 HTTPS 请求 | 你在远程访问页面点击 测试 时(以及设置过程中):Funes 会通过隧道访问自身的健康检查 URL。 |
| 向云应用的元数据文档发送一次 HTTPS 请求 | 仅在你打开配对界面,且该应用开始登录时(claude.ai 和 ChatGPT 会发布此文档)。不会发送凭据。 |
| iPhone 监听器,默认端口为 47626 | 仅在开启 设置 ▸ iPhone 时(默认关闭)。使用同一 Wi-Fi 或 Tailscale 时,它会监听所有网络接口,仅接受本地或 tailnet 地址,并通过 Bonjour 在你的网络上公布自身;macOS 会请求本地网络访问权限。它只会响应已与你配对的 iPhone,且端到端加密。 |
| 私有 iCloud 数据库中的一条“门铃”记录 | Agent 的请求等待你处理,且已配对的 iPhone 开启了审批功能时。记录只包含随机名称和标签;请求得到答复或超时后,记录便会删除。 |
| 你添加的模型提供商 | 仅当你在 设置 ▸ AI 模型 中添加并选择模型提供商时:用于为每条记录建议标题、类别和敏感度,以及用于 加载模型 和 测试连接(这些操作不会发送你的数据)。本地服务(Ollama、LM Studio)运行在你的 Mac 或本地网络上;云服务提供商只会收到通过密钥扫描器检查、且不超过云端限制的记录,以及你的类别名称和说明。开启 拆分为单独记忆 时,它还会收到 Agent 的建议、你的回答和导入的内容,以及每条内容最多 5 条相关记忆;开启 每日整理 时,它还会收到最多 6 条相关记忆组成的组。以上内容均受相同的限制和扫描器保护(PRIVACY.md)。每天最多发送你设定数量的云端请求(默认 300 次)。 |
| 你的 Claude Code 或 Codex | 仅当你在 设置 ▸ AI 模型 ▸ 使用你的订阅 中选择 Claude 或 ChatGPT 方案时:Funes 会运行你安装的 claude 或 codex 命令,将与上述云服务提供商相同的文本发送给 Anthropic 或 OpenAI,并遵循你方案的条款。 |
| 提供商的嵌入模型 | 仅当你在 设置 ▸ AI 模型 ▸ 嵌入 中选择模型时(默认不选择):会发送不超过云端限制的记忆文本、你的保险库搜索内容,以及 Agent 的请求,除非你关闭此项。本地服务会为每条记忆生成嵌入。 |
macOS 显示的通知绝不会包含记忆文本。Agent 通过 Funes 收到的内容会发送给该 Agent 及其 AI 提供商,并受其隐私条款约束,因此请只向每个 Agent 提供其所需的信息。使用远程访问时,这也包括你允许连接的云端 Agent;如果隧道提供商在其边缘节点终止 TLS,也包括该隧道提供商。完整声明见 PRIVACY.md 和 funesvault.com/privacy。
文档
| 目标 | 指南 |
|---|---|
| 连接 Agent;了解工具、限制和故障排除 | MCP 指南 |
| 构建方式:请求管道、新记忆和整理、iPhone 通道、数据存放位置、威胁模型 | 架构 |
| 测试了什么,以及如何测试 | 测试 |
| 所有离开 Mac 的内容 | 隐私 |
| 报告漏洞 | 安全 |
| 参与贡献,或维护和发布 | 贡献、维护 |
| 完整的产品定义:需求、访问策略、决策 | spec/ |
从源代码构建
你需要安装了 iOS 平台的 Xcode 27(可在 macOS 26.6 或更高版本上运行),以及 Python 3.11(用于转换一次嵌入模型)。你构建的应用可在 macOS 15 或更高版本上运行。
sh scripts/fetch_embedding_model.sh
sh scripts/test.sh
第一条命令会在固定的修订版本下载随应用捆绑的嵌入模型(bge-small-en-v1.5),检查其校验和,并将其转换为 Core ML,存放在 ~/Library/Caches/com.funesvault.dev/;该模型不会纳入 git。第二条命令会运行软件包测试、MCP 测试工具及其他检查,并构建未签名的 Mac 和 iPhone 应用。要开发此应用,请在 Xcode 中打开 FunesVault.xcodeproj,然后运行 FunesMac 方案。调试版本会遵循 FUNES_DATA_DIR,因此开发用保险库不会触及你的真实保险库。请参阅贡献。
卸载
- 如果你使用了远程访问,请关闭隧道:远程访问页面会说明操作方法。
- 从菜单中退出 Funes Vault。
- 从 Agent 的配置中移除 Funes(例如
claude mcp remove --scope user funes)。 - 删除 Applications 中的应用及其数据:
~/Library/Application Support/FunesVault(保险库、备份、Agent 密钥和 Activity)。其设置位于~/Library/Preferences/com.funesvault.mac.plist。如果你链接了启动器,请删除~/.local/bin/funes-mcp。你添加的模型提供商 API 密钥位于 Keychain 中的com.funesvault.provider下,Mac 的 iPhone 配对密钥则位于com.funesvault.companion下。如果你配对过 iPhone,也请在那里删除 Funes Vault,或先轻点 取消配对这部 iPhone…。
如要重新开始但不卸载,请使用 设置 ▸ 数据 ▸ 擦除所有数据…,这会删除所有记忆、建议、Agent 和密钥、已配对的 iPhone、Activity、备份、提供商密钥和设置,然后以空状态重新启动。Mac 的 iPhone 配对密钥会保留在 Keychain 中,因此之后需要重新配对 iPhone。
如果通过 Homebrew 安装,运行 brew uninstall --cask funes-vault 可移除应用;运行 brew uninstall --zap --cask funes-vault 还会将数据文件夹、缓存和偏好设置移至废纸篓(提供商 API 密钥仍保留在 Keychain 中)。
许可证
Funes Vault 采用 Apache License 2.0 许可;详见 NOTICE。应用捆绑了 BridgeKit(由同一作者开发,采用 Apache License 2.0 许可)、GRDB.swift、Sparkle 和 BAAI 的 bge-small-en-v1.5 模型,它们均采用 MIT License 许可;其许可证文本随应用一同提供。该许可证不授予对项目名称或图标的权利。Apple、Mac 和 macOS 是 Apple Inc. 的商标。本项目与 Apple、Anthropic、OpenAI 或 BAAI 均无关联,也未获其认可。
Funes Vault 由 Martin Bereciartua 开发,他还开发了 EK Bridge。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。