mcpField
W
warifu

warifu

本地服务
meta-taro.github.io通信协作0今天更新

关于 warifu

warifu 是供人和 AI Agent 使用的点对点房间应用,可聊天和分享图片,无需账号或自建服务器。Agent 可加入同一对话,但只能执行由人明确授权的操作。

主要功能

  1. 01使用一次性密钥加入房间
  2. 02点对点文字、图片、音频和视频
  3. 03桌面应用与命令行工具
  4. 04由人批准 Agent 权限
  5. 05可选的自托管中继

适用场景

  1. 01邀请外部参与者且无需注册账号
  2. 02让编码 Agent 加入会议聊天
  3. 03无需运行服务器连接家中与办公室设备
  4. 04无法直连时使用中继

MCP 相关

warifu 提供 MCP 服务,让本地 Agent 加入房间对话并使用聊天和房间工具。权限必须由人明确批准;默认范围是对话和 Agent 自身资料。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

warifu

把一把密钥交给别人,对方就能进入你的房间——无需账号,也无需运行服务器。你的 AI Agent 也能加入。

warifu(割符)——一根一分为二的契木。两半相合时,双方都能证明对方就是其声称的那个人。

日本語版: README.ja.md

一个房间:一位凭密钥加入的访客、你,以及在电脑上做笔记的 Agent,三者在同一段对话中

一位访客(Sam)凭房间密钥加入。此电脑上的 Agent(note-taker)与其他人参与同一段对话,其发言会标记为 Agent。没有人创建账号。


适用场景

你需要与组织外的人交谈,又不想让对方注册任何账号。 把一把房间密钥发给对方——通过聊天、电子邮件、二维码发送,或在电话里念给对方听。一把密钥只能让一个人加入。无需管理邀请名单,也无需把对方添加到租户中。对方离开后,这把密钥就会失效。

你想让编码 Agent 加入会议,而不是单独开一个窗口。 只需一条命令,即可连接 Claude Code(或任何 MCP 客户端)。它会在与其他人相同的对话中读取和发送内容,可以在通话中大声发言,还可以请求房间密钥来邀请他人加入。它只能执行用户允许的操作——需要更多权限时,它会在你的屏幕上请求:

Agent 请求你按下了 允许
Agent 请求获得签发房间密钥的权限,并说明原因;提供允许和拒绝按钮允许后,屏幕会显示现在可以签发房间密钥的 Agent,以及可以撤销该权限的提示

你想在办公室和家之间交谈,又不想运行服务器。 两台设备直接连接(通过 iroh 使用 QUIC——你拨号连接的是公钥,而不是 IP 地址)。如果路由器不允许它们直连,你可以选择启用中继(docs/relay.md);除非你主动开启,否则不会进行中继。

试用

  1. 下载:下载页面提供 macOS 版本(Apple Silicon,已签名并公证)和 Windows 版本(x64 和 ARM64,未进行代码签名)。Windows 首次启动时还需要一个额外步骤:docs/install.md。
  2. 打开应用。 你会进入联系人页面。前往 房间 → 邀请他人 → 签发密钥。
  3. 把密钥发给对方。 对方将密钥粘贴到 加入其他房间。你们就进入同一个房间了;先用文字交流,需要时再按 添加视频和音频。
  4. (可选) 让 Agent 加入: warifu setup 会将 warifu 添加到你的用户级 Claude Code 配置中。在任意文件夹中启动 Claude Code,它就能在房间中交流。详见 docs/mcp.md。

更喜欢使用命令行?运行 warifu host 会显示密钥并等待连接;运行 warifu join <key> 可从另一台设备加入。无需图形界面。

从源代码构建:

git clone https://github.com/meta-taro/warifu.git && cd warifu
scripts/setup-hooks.sh                        # once per clone
pnpm install
pnpm --filter @warifu/desktop tauri dev

要构建可分发版本:pnpm --filter @warifu/desktop tauri build。 cargo run 会打开一个空白窗口——调试构建会查找开发服务器。 每个版本包含的内容:CHANGELOG.md。

状态:Alpha。以下是经过实测的全部内容

此版本中,请勿放入任何你确实需要保护的内容。 所有尚未完成的事项都记录在 SECURITY.md 中。

实测内容(真实设备,真实网络)时间
两人视频通话,无服务、无外部信令、无 STUN/TURN2026-09-07
Windows 与 macOS 之间双向传输视频和音频,路径为 direct,持续 5 分 33 秒未发生路径切换。音频通过操作系统的进程级音量表确认,而非凭耳朵判断2026-09-15
同一房间内的三台设备,从主机视角来看(macOS × 2 + Windows),成员列表为 3 / 122026-09-15
Agent 在无人操作的情况下回复远程用户2026-09-12
跨互联网且无中继服务——一台位于双重 NAT 后的设备加入了另一网络上的设备,后者的路由器通过 UPnP 开放了端口;文本成功送达,使用相同密钥重新加入也成功。仅限 CLI2026-09-27
桌面应用中的跨互联网视频——家中的 Windows 设备连接办公室的 Mac,视频通过对等设备自己的连接传输,无中继服务2026-09-29
背景模糊和替换(Windows):默认隐藏背景,提供三种模糊强度,可使用自己的图片,也可不隐藏背景2026-10
Agent 在通话中发声——一台 Windows 设备上的 Agent 调用 voice_say,另一台设备只听到一次;用户可按房间开启此功能,默认关闭2026-10-07
同一房间内的六台设备(macOS × 2 + Windows × 4)。主机负责分发成员列表和消息,因此访客可以看到彼此的消息。各设备上的 Agent 可在房间内协调工作,无需用户转达2026-11-02
由设备密钥控制访问的可自托管中继——两个获准的密钥通过中继完成了一次往返(随后切换到直连路径);未获准的密钥在中继的身份验证环节被拒绝。仅限 CLI2026-11-02
重启后自动恢复连接——访客应用被强制退出并重启后,自动重新加入同一房间,无需再次粘贴密钥,且应用离线期间发送的每条消息都恰好送达一次(两台设备)2026-11-02
未经实测,因此不作此声明
通过中继进行视频通话从未尝试(仅确认过文本可通过中继传输)
三人或更多人进行视频通话从未尝试(仅确认过三台或更多设备间的文本传输)
访客之间直接连接房间仍然是以主机为中心的星型结构:访客消息经由主机传递。主机离线时,无人可以交谈

Windows 版本未经代码签名,且首次运行时,管理员必须允许应用通过防火墙——否则文本可以送达,但视频无法启动。应用会明确提示这一点,并提供准确的命令。

一段话介绍

大多数“无服务器”聊天仍需要某处的账号:信令服务、目录或租户。warifu 通过让密钥成为身份,消除了这一需求。你把一个房间密钥交给某人——它是包含你的地址和一半校验值的单个字符串——只有那个人能加入。无需创建账号,无需管理邀请,也无需运行服务。传输层使用 iroh(QUIC),其特点是拨号连接到公钥,而非 IP 地址;这一特性本身就是校验值。

目前可用的功能

房间一个房间可以容纳 1 个人或 N 个人。“1:1 聊天”只是一个有 2 个人的房间——两者的机制并无不同
房间密钥一把密钥只允许 一个人 加入。你可以随意转交:通过链接、二维码、口头读出或写在纸上
入口没有密钥的呼叫者会被 静默丢弃。不会返回原因
路由显示直连 / 中继 / 未知——我们绝不会把“未知”擅自标记为“直连”
视频是可选添加项房间最初只有文字。添加视频不会重建房间,关闭视频也不会离开房间
文字聊天无需 GUI 也能使用(warifu host / warifu join)
聊天中的图片可以粘贴、拖入或选择图片。图片会先在你的设备上缩小(长边 1600px,最大 512 KiB),然后直接发送给房间内的人。Agent 只能看到一条图片已送达的简短提示
转交房间密钥Agent 可以请求将房间密钥转交给已连接的对等端设备。此 PC 上的人批准后,密钥只会通过 warifu 链路传输(绝不会通过聊天或电子邮件传输),另一端的人再决定是否加入。Agent 永远看不到密钥
身份持久保留关闭应用后,你仍是同一个人。已记住的对等端会显示名称(warifu id / warifu contacts)
四种语言en / ja / zh / ko,包括 OS 菜单和上下文菜单。所有译文均由 AI 起草——参见 docs/i18n-review.md
供对方离线时使用的邮箱(可选)由你信任的人保管密封消息。他们无法读取消息
自动重新加入重启后,应用会自动重新加入之前所在的房间,无需密钥。主机会重新发送应用离线期间产生的消息,每条只发送一次
可自托管的中继对于无法彼此直连的对等端(例如家中和办公室的设备),自行运行的中继是备用路径。中继只允许你授权的设备密钥接入(docs/install.md)
发送秘密前进行检查消息发送后无法撤回(每台设备都会保留副本)。任何看起来像秘密的内容——例如令牌、API 密钥或完整的房间密钥——都会触发应用询问用户“仍要发送吗?”,如果内容来自 Agent,则完全不会发送
@ 提及在繁忙的房间中,@name 会在被提及者的屏幕和其 Agent 上将消息标记为“发给你”

**尚未提供:**录制、转录、日程协商,以及 持久聊天记录(关闭窗口后记录会清除)。

同时丢失所有设备时的恢复方式仍未确定(决策日志(存放在独立的非公开笔记仓库中),D2)。PGP、Keybase 和 Secure Scuttlebutt 并非因缺少功能而消亡——它们都倒在了这一关。我们将此视为已知的致命原因,而非假设风险。

Agent 是一等公民(MCP)

这是本项目最与众不同的功能。例如,你的本地编码 Agent(如 Claude Code)可以 加入人类正在查看的同一场对话。Agent 说的话会显示在人的屏幕上,并标明发言者是 Agent。

warifu setup          # writes the MCP server into your per-user Claude Code config, once
  • 安装前会向你展示将授予哪些权限。 默认权限仅包括对话和 Agent 自身的资料——不包括收件箱或日历。
  • 除非有人类编写 --allow,否则不会授予任何权限。 warifu 绝不会自行授予权限。
  • Agent 可使用 chat_send / chat_read / chat_wait / room_status / profile_set 等工具。room_status 会回答“是否仍有问题在等待人类回应?”,并说明涉及 哪个房间。

参见 docs/mcp.md。

我们绝不妥协的两项设计承诺

1. 收到的消息是数据,绝不是指令

一旦 Agent 开始交换结构化意图,提示词注入就不再是众多威胁之一,而是设计前提。

  1. 每条收到的 Agent 消息都是数据,而不是命令。
  2. 授权由模型之外的机制决定。 我们绝不读取模型的输出来判断哪些操作是允许的。
  3. 信任度更高,不会改变对字符串的处理方式。
  4. “足够聪明的模型会识别出来”不是可接受的答案。

信任回答的是某人是谁,绝不回答是否应该执行对方所说的内容。

2. 我们不会把不确定性四舍五入成确信

如果无法判断链接是否直连,界面就显示未知。如果无法判断是否存在防火墙规则,界面就说明我们无法检查——不会让你添加规则,因为这会妨碍本来就没问题的人。颜色绝不是唯一的标记:状态会同时通过颜色、标签和形状呈现。

不重复造轮子

实现之前,我们会先与现有标准进行差异比较。

领域现有方案
身份W3C DID Core / DID Document
信任凭证W3C Verifiable Credentials
Agent 间通信DIDComm v2
能力UCAN / ZCAP-LD
E2EE / 群组MLS(RFC 9420)
密钥即身份、支持中继Nostr
传输Matrix / libp2p / iroh / Veilid

“现有组件基本够用”并不意味着失败。 这会让项目成为一个配置规范加参考实现,而这些标准的实现者也会成为第二个实现的候选者。这是更好的处境,而不是更差。

技术栈

层级选择
传输iroh 1.0 — QUIC,拨号连接公钥,而非 IP
核心Rust(工作区,约 650 个测试)
音频 / 视频WebRTC(我们不编写编解码器)
桌面端Tauri 2 + TypeScript + SvelteKit + pnpm(约 400 个测试)

SFU 目前不在范围内:它意味着“用户设备会中继他人的流量”,在法律问题解决之前,我们不会着手开发(决策日志(保存在单独的非公开笔记仓库中),D7)。我们的界线在于是否中继流量,而不是房间里有多少人。你可以选择启用的网络中继则不同:当路由器不允许两端直接连接时,它会在两端之间传递加密数据包;你也可以将它指向自己运行的中继(WARIFU_RELAY_URL,参见 docs/relay.md)。默认情况下它处于关闭状态。

本仓库的开发方式

人类和 AI Agent 遵循同一套规则(.claude/rules/product-baseline.md、CLAUDE.md)共同开发:

  • 由 AI 提交变更;由人类推送。 绝不允许代码未经审查就离开本机。
  • 测试不会延期,失败的测试也不会删除。 没有测试,不会标记“完成”。
  • 决策及其理由,以及应当让我们停下来的条件,都记录在决策日志中(保存在单独的非公开笔记仓库中)。
  • 本 README 中的每项声明都经过测量,或明确标注为未经测量。

来自真实设备的缺陷报告是本项目收到的最有价值的反馈——最近几天修复的大多数问题,都来自有人在我们没有的硬件上运行项目。

许可

采用双重许可:Apache License 2.0 或 MIT,由你选择。请参见 LICENSE、LICENSE-APACHE、LICENSE-MIT。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。