🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本机聊天助手 fumingyang2004/Tulpa

DeepSeek Harness
fumingyang20049 天前有提交已提供中文文档扫描:含敏感能力

使用MCP,让你几乎所有的Agent访问QQ/微信/B站,甚至亲自下场水群和发消息!

67/100
综合分
446
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/fumingyang2004/Tulpa.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · platform
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/19) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包Tulpa(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 02:38:48

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 38 处,展示前 33 条)
  • 读取密钥环境变量
    harness/chat-tools.mjs:7
    const headers = { Authorization: `Bearer ${process.env.CHATLOCAL_BRIDGE_TOKEN}` };
  • 发起网络请求
    harness/chat-tools.mjs:8
    const response = await fetch(`${base}/tools`, { headers });
  • 发起网络请求
    harness/chat-tools.mjs:18
    const result = await fetch(`${base}/tools/call`, {
  • 发起网络请求
    tulpa_bilibili/ui.js:2
    async function api(action,values={}){const r=await fetch('/bilibili/api/action',{method:'POST',headers:{'Content-Type':'application/json','X-Tulpa-Bil
  • 发起网络请求
    tulpa_bilibili/ui.js:4
    async function refresh(){if(refreshing)return;refreshing=true;try{const r=await fetch('/bilibili/api/status',{cache:'no-store'});if(!r.ok)throw Error(
  • 发起网络请求
    web/app.js:107
    const r=await fetch(`${API}/gradio_api/run/refresh`,{method:'POST',headers:{'Content-Type':'application/json'},
  • 发起网络请求
    web/app.js:112
    const joined=await fetch(`${API}/gradio_api/queue/join`, {method:'POST',headers:{'Content-Type':'application/json'},
  • 发起网络请求
    web/app.js:116
    const stream=await fetch(`${API}/gradio_api/queue/data?session_hash=${encodeURIComponent(state.hash)}`);
  • 发起网络请求
    web/app.js:157
    const r=await fetch('/api/ui-preferences',{method:'PUT',headers:{'Content-Type':'application/json','X-ChatWeave-UI':'1'},body:JSON.stringify({show_rea
  • 发起网络请求
    web/app.js:165
    const r=await fetch('/api/ui-preferences',{cache:'no-store'});
  • 写入剪贴板
    web/app.js:235
    try { await navigator.clipboard.writeText(text); toast('已复制回答'); } catch { toast('复制失败,可以选中文字复制。'); }
  • 发起网络请求
    web/app.js:280
    const response=await fetch('/api/agent-presets');
  • 发起网络请求
    web/artifacts.js:25
    async function api(path,options){const r=await fetch(path,options);const d=await r.json();if(!r.ok)throw Error(typeof d.detail==='string'?d.detail:'请求
  • 发起网络请求
    web/chat.js:9
    const response=await fetch(path+'?'+new URLSearchParams(params),{signal:AbortSignal.timeout(12000),cache:'no-store'});
  • 发起网络请求
    web/collections.js:12
    async function api(path,method='GET',data){const r=await fetch(path,{method,headers:data?{'Content-Type':'application/json'}:{},body:data?JSON.stringi
  • 发起网络请求
    web/desktop.js:62
    const r=await fetch('/api/desktop/'+path,{method,cache:'no-store',headers:{'Content-Type':'application/json','X-ChatWeave-UI':'1'},body:body===undefin
  • 发起网络请求
    web/desktop.js:124
    const r=await fetch('/api/mcp',{cache:'no-store'});if(!r.ok)return;const mcp=await r.json();
  • 发起网络请求
    web/group-admin.js:6
    const response=await fetch('/api/group-admin'+path,body===undefined?{cache:'no-store'}:{method,
  • 发起网络请求
    web/mcp-bilibili-login.js:5
    async function api(action){const r=await fetch('/bilibili/api/action',{method:'POST',headers:{'Content-Type':'application/json','X-Tulpa-Bilibili':'1'
  • 发起网络请求
    web/mcp-bilibili-login.js:12
    try{const r=await fetch('/bilibili/api/status',{cache:'no-store'});if(!r.ok)throw Error('账号状态暂不可用,请重试。');const d=await r.json();if(v!==version||!dialo
  • 发起网络请求
    web/mcp-home.js:8
    async function watchApi(path,body,method){const r=await fetch(path,{method:method||(body===undefined?'GET':'POST'),cache:'no-store',headers:{'Content-
  • 发起网络请求
    web/mcp-learning.js:3
    async function api(path,method='GET',body){const r=await fetch('/api/mcp'+path,{method,cache:'no-store',headers:{'Content-Type':'application/json','X-
  • 发起网络请求
    web/mcp.js:46
    async function api(path,method='GET',body){let response,data;try{response=await fetch('/api/mcp'+path,{method,cache:'no-store',headers:{'Content-Type'
  • 发起网络请求
    web/mcp.js:109
    $('mcp-test-onebot').onclick=()=>action(async()=>{const r=await fetch('/api/desktop/onebot/test',{method:'POST',headers:{'Content-Type':'application/j
  • 写入剪贴板
    web/mcp.js:138
    $('mcp-copy-connection').onclick=()=>action(async()=>{if(!credential)return;await navigator.clipboard.writeText(JSON.stringify({mcpServers:{[credentia
  • 写入剪贴板
    web/mcp.js:139
    $('mcp-copy').onclick=()=>action(async()=>{if(renderCodexConfig()){await navigator.clipboard.writeText($('mcp-config').value);$('mcp-copy').textConten
  • 发起网络请求
    web/reply.js:5
    const response=await fetch('/api/replies'+path,{method,cache:'no-store',headers:{'Content-Type':'application/json','X-Reply-UI':'1'},...(body===undefi
  • 写入剪贴板
    web/reply.js:120
    $('reply-copy').onclick=async()=>{try{await navigator.clipboard.writeText($('reply-text').value);toast('已复制回复。');}catch{toast('复制失败,可选中文字手动复制。');}};
  • 发起网络请求
    web/reply.js:154
    const r=await fetch('/api/reply-receipts?'+new URLSearchParams({platform:chatPage.platform,conversation_id:chatPage.conversation_id}),{cache:'no-store
  • 发起网络请求
    web/snowluma.js:10
    const response=await fetch('/api/desktop/snowluma/'+action,{method:body===undefined?'GET':'POST',cache:'no-store',
  • 发起网络请求
    web/snowluma.js:45
    const r=await fetch('/api/desktop/status',{cache:'no-store',signal:AbortSignal.timeout(15000)});
  • 发起网络请求
    web/tulpa.js:12
    async function api(path,method='GET',body){const r=await fetch('/api/tulpa'+path,{method,cache:'no-store',headers:body?{'Content-Type':'application/js
  • 发起网络请求
    web/watch.js:4
    const response=await fetch(path,{method:method||(body===undefined?'GET':'POST'),
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

6 张 · 点击查看大图

功能亮点

  • 访问QQ微信本地数据
  • 调用QQ微信功能
  • 实时检索与管理消息

基于Windows本地QQ+微信的Harness/MCP:用Agent进行实时检索、跟进、管理、记忆与工作区。同时开放MCP版本,可供DSH,Codex,Antigravity等agent使用

README

由 DeepSeek 最新模型翻译生成
Tulpa 使用 MCP,让你几乎所有的智能体访问 QQ/微信/B站,甚至亲自下场水群! 为推动硅基生命的发展和普及贡献一份力量! Linux 终端版 · MCP 命令行 · 下载 · 快速开始 · 智能体配置教程 · 使用场景 · 完整文档 Tulpa 通过同一条 MCP 连接提供 QQ、微信与哔哩哔哩能力,三个模块分别授权。智能体可以查资料、追溯消息、带着自定义人格参与 QQ 群聊,或从视频字幕、真实画面和评论中寻找信息。 桌面发行版:Windows 10 / 11 x64;Linux:x86_64 / ARM64 终端源码版。 能做什么? 下面是可以交给智能体的请求示例。 让小鲸鱼来水群 用随包的小鲸鱼持续聊天,你也可以自行编写你的人物卡片。 随包提供小鲸鱼(little_whale)、小鲸鱼2号(little_whale_v2)和龙娘(dragon_girl,测试版),你也可以用 Markdown 写自己的角色人设卡片。支持按语境接话、原生 @ 与引用;授权后可看图、发送和收藏表情、给消息贴表情回应,保留理解笔记供后续会话选用。 持续聊天会在当前已授权的机器人账号和群里积累群友表达与黑话,潜水时也能学习;同账号同群重开可接续积累。人物卡与学习参考分开,模型可以选择本轮不用。聊天节奏 · 实时学习 人格卡详见 人格教程与表情链路。
展开完整文档(README 剩余 1 节)
Tulpa

使用 MCP,让你几乎所有的智能体访问 QQ/微信/B站,甚至亲自下场水群!

为推动硅基生命的发展和普及贡献一份力量!

Linux 终端版 · MCP 命令行 · 下载 · 快速开始 · 智能体配置教程 · 使用场景 · 完整文档

Tulpa 通过同一条 MCP 连接提供 QQ、微信与哔哩哔哩能力,三个模块分别授权。智能体可以查资料、追溯消息、带着自定义人格参与 QQ 群聊,或从视频字幕、真实画面和评论中寻找信息。

桌面发行版:Windows 10 / 11 x64;Linux:x86_64 / ARM64 终端源码版。

能做什么?

下面是可以交给智能体的请求示例。

让小鲸鱼来水群

用随包的小鲸鱼持续聊天,你也可以自行编写你的人物卡片。

随包提供小鲸鱼(little_whale)、小鲸鱼2号(little_whale_v2)和龙娘(dragon_girl,测试版),你也可以用 Markdown 写自己的角色人设卡片。支持按语境接话、原生 @ 与引用;授权后可看图、发送和收藏表情、给消息贴表情回应,保留理解笔记供后续会话选用。

持续聊天会在当前已授权的机器人账号和群里积累群友表达与黑话,潜水时也能学习;同账号同群重开可接续积累。人物卡与学习参考分开,模型可以选择本轮不用。聊天节奏 · 实时学习

人格卡详见 人格教程与表情链路。

视频链接:点击这里查看哔哩哔哩视频

刷B站(测试中)

直接让智能体帮你刷B站视频,B站信息可直接植入智能体的思维链和工作流。

支持关键词搜索、账号推荐流、视频详情与分 P、带时间戳的字幕、真实抽帧和评论分页。无字幕时可使用已安装的本地 ASR 模型;读不到的内容会明确返回缺失项。B站账号扫码登录,权限在同一 MCP 连接中勾选。B站使用说明

找回聊过的资料和文件

帮我找我的群里的一些我需要的附件,核对时间,并标出消息来源。

按关键词、人物、会话和日期检索,再展开上下文。图片、语音和文件按需读取;轻量版可经 OneBot 下载 QQ 群原文件,交给同机智能体自己的文件工具阅读。

Tulpa

为什么用 Tulpa

- 多平台信息整合:把QQ、微信和哔哩哔哩的能力整合到任意智能体上。
- 安装方便:具备图形化界面和CLI界面,直接让你的肥鱼全自动配置即可~
- 全自动部署:自动下载、校验、配置和运行SnowLuma和配置OneBot服务。已获得SnowLuma主开发授权!
- 复用熟悉的智能体:MCP协议使得你可以用几乎所有的桌面智能体来使用Tulpa提供的大量接口。

经过测试可完美接入以下。理论上可完全兼容所有已发行智能体:

- Codex ·
- Claude Code ·
- DeepSeek Harness ·
- Antigravity ·
- WorkBuddy

下载

| 版本 | 适合你,如果你想… | 下载 |
| Windows MCP 版 | 图形界面或命令行,连接已有智能体 | 0.5.7 ZIP |
| Linux MCP 终端版 | Linux x86_64 / ARM64,CLI/TUI 与 MCP 服务 | 0.5.7 tar.gz |

0.5.7 只发布 MCP 版。 Windows 包自带 Python 与命令行入口,使用系统 WebView2 Evergreen Runtime;Linux 包为终端源码包,首次启动安装依赖。语音模型不随包附带。MCP 说明 · 最新发布 · 0.5.7 更新说明 Windows 需要 .NET Framework 4.8。下载 ZIP 后完整解压到可写目录,打开 Tulpa/Tulpa.exe;命令行使用 Tulpa/Tulpa.CLI.exe。不要从压缩包直接运行,GitHub 自动生成的 Source code 也不是 Windows 安装包。QQ / 微信客户端与外部智能体需自行准备;SnowLuma 可由 Tulpa 自动配置。

老用户升级: 按保留数据升级教程检查、备份并更新原目录,无需重新导入。自改的同名随包人格先另存;升级后仍打开原目录 EXE,并重连 MCP。

快速开始

SnowLuma 自动配置

打开并登录 QQ,在 Tulpa 的 OneBot 设置 → 连接 QQ 中勾选协议和自动配置授权,点击 一键配置。Tulpa 自动准备固定版本 SnowLuma 2.1.1,校验运行包、初始化随机凭据、选择空闲端口、配置 HTTP/WS 并核对 QQ 与实时事件。多个 QQ 进程时选择目标,未登录时在 QQ 扫码即可,无需终端、下载路径、手填 Token 或管理密码。

优先使用校验通过的随包运行文件;未随包提供时从官方渠道下载。原有独立 SnowLuma 可在高级选项导入,保留原配置;不会扩大 MCP 授权。第三方许可仍独立适用。操作与恢复 · 本次开发验证

已取得 SnowLuma 主开发作者对自动部署的书面同意,条件是不修改 SnowLuma 本体。查看授权记录。使用者仍需在 Tulpa 内主动同意 SnowLuma 协议。

我要 QQ 水群

无需先导入整库历史。 这条路径直接接收 OneBot 实时事件。

1. 启动 QQ 和 Tulpa;在连接 QQ 中勾选协议并点击“一键配置”,或从高级选项导入已有 OneBot 连接。持续群聊需要 HTTP + 正向 WebSocket。连接教程
2. 点击 开始创建链接,启用 QQ 模块,选择当前群与持续聊天、发送权限;按需加看图、表情发送或收藏。只水群不需勾选历史读取。
3. 点击 一键开启 MCP。名称可留空;按 Agent 教程配置并重连客户端。首页可单独启停或删除连接。
4. 在外部智能体的专用对话中使用上面的水群示例。想换龙娘,选择 dragon_girl。新人格放进当前安装目录的 chatlocal/prompts/mcp_chat/,重新列出即可发现。

保持 QQ、OneBot、Tulpa 和外部智能体运行。宿主结束回合、达到预算、退出或休眠后,Tulpa 不会自行继续推理。可在 Tulpa 点 停止聊天 / 停止全部群聊;已发出的消息不会因此撤回。改过人格后,停止并重新开启会话才会采用新设定。

我要看 B站视频

1. 在左侧 B站账号设置 用 B站 App 扫码登录。
2. 点击 开始创建链接,启用 哔哩哔哩 并勾选只读能力,点击 一键开启 MCP。可以只选 B站,也可和 QQ / 微信共用这条连接。
3. 在智能体中刷新工具列表,直接描述想找的话题。模型可自行搜索、读取推荐、字幕/本地 ASR、真实画面及评论。使用与限制

我想通过命令行配置

Windows 双击 Tulpa.CLI.exe,或在终端执行 Tulpa.CLI.exe --json status。智能体可以直接管理连接、配置 QQ、发起 B站扫码、查询学习库并调用已授权 MCP 工具。CLI 教程;Linux 沿用 ./tulpa CLI/TUI。

我要查 QQ / 微信历史

1. 登录本机 QQ / 微信,在 数据与同步 → 本机账号核对账号,再选会话和日期读取。可以从少量近期消息开始。
2. 点击 开始创建链接,启用对应的 QQ / 微信模块,勾选聊天记录读取及所需附件权限,选择资料范围。
3. 点击 一键开启 MCP,按教程接入外部智能体,从上面的资料查询或总结示例开始。未导入资料时,界面会在选择历史读取后提示导入。

本地历史查询和草稿不需要 OneBot。读取范围受客户端版本、账号、权限及本机缓存影响,无法保证找回未取得的历史;见数据读取与实时摄取。

隐私与权限

- 资料保存在本机,不等于完全离线。 必要消息片段会进入你选择的模型服务;启用识图时也会发送所选图片。
- 看图、发送、收藏和群管理分别授权,默认关闭、可撤销。MCP 的发送和群管理勾选后是持续授权,调用直接执行,不会逐条回到 Tulpa 审批。
- 微信提供资料读取,回复草稿可由外部智能体生成,不提供微信发送能力。
- 不要分享使用过的整个安装目录,尤其是 data/、imports/、.env、Token 和私人诊断。撤销连接不能收回已交给客户端的内容;MCP 范围限制也不是整台电脑的文件隔离。

[!CAUTION]
Tulpa 是独立的第三方项目,与腾讯 / 哔哩哔哩无隶属或授权关系。项目仅供学习与技术研究,使用风险自负。

相关文档

- 接入与群聊:Agent 教程 · MCP 权限 · OneBot · 人格 · 表情
- 资料与调查:文件 · 语音 · 调查与证据 · 工作区 · 会话记忆
- 功能与维护:完整功能 · 回复助手 · 群管理 · 升级 · 安全报告

参与开发

从源码运行与贡献

需要 Windows x64、Python 3.13 和 Git,在 PowerShell 执行:

git clone https://github.com/fumingyang2004/Tulpa.git
cd Tulpa
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements/mcp.txt
.\.venv\Scripts\python.exe app_mcp.py

打开 <http://127.0.0.1:7861/>。实时 QQ 与 B站不要求安装历史读取器;历史资料及便携包构建依赖见下方文档。

贡献指南 · 桌面构建 · 验证说明

许可与致谢

Tulpa 自有代码采用 MIT License,第三方组件、模型与客户端遵循各自许可,见 THIRD_PARTY.md。本项目不是腾讯官方产品,与 QQ、微信及模型服务商没有隶属关系。

感谢以下仓库提供的参考或支持!

- qq-bridge:群聊行为与提示词设计参考;小鲸鱼基于其角色卡。
- MaiBot:会话的组织逻辑和学习机制参考。
- QQ-agent:表情收藏、语义笔记、候选与用量反馈的设计参考。
- SnowLuma:提供 QQ / OneBot 接入能力;感谢主开发墨梓柒对 Tulpa 自动部署的书面授权与支持。授权记录
- 墨梓柒:感谢您的开源精神以及对本人的支持!

SnowLuma 自动部署授权记录

SnowLuma 自动部署授权记录
预览分享卡片长什么样 ↓fumingyang2004/Tulpa
分享 · DeepSeek Harness Hub
fumingyang2004/Tulpa

使用MCP,让你几乎所有的Agent访问QQ/微信/B站,甚至亲自下场水群和发消息!

回到顶部