关于 Unfetch
Unfetch 是面向文件与媒体下载管理的下载器,提供 GUI、命令行和 AI 接入。它将多镜像 HTTP、BitTorrent、视频站点下载、RSS 与远程 Web 界面整合到同一守护进程中。
主要功能
- 01多镜像 HTTP 下载
- 02支持 BitTorrent 和磁力链接
- 03下载 1,000 多个视频站点内容
- 04RSS 订阅与自动抓取
- 05令牌保护的远程 Web 界面
- 06GUI、命令行与 MCP 接入
适用场景
- 01通过 AI 主机添加下载任务
- 02抓取支持站点的视频
- 03自动将 RSS 条目加入队列
- 04从远程设备管理下载
MCP 相关
Unfetch 提供 MCP 服务,包含 add_task、list_tasks 和 wait_for_task 工具,并支持进度通知。MCP 主机可用它管理下载任务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
unfetch 是一款下载引擎,能接手浏览器开始的下载任务并将其完成。它支持快速的多镜像 HTTP、真正的 BT/磁力链接、通过内置 yt-dlp 下载 1000 多个视频网站的内容、RSS 订阅、完成后钩子,以及通过令牌保护的远程 Web UI;可通过 GUI、CLI 或 AI(借助 MCP)驱动。安装包约 8 MB。采用类 MIT 许可证。零遥测。
功能
- 多镜像 HTTP — 最多 32 个线程 × 多个镜像 URL,自动回退、断点续传、SHA256/MD5 校验。
- BT / 磁力链接 — 35 个公共 Tracker,支持 IPv6 + WebTorrent,下载前可选择文件,查看节点/做种者统计;当 ISP 限速时自动回退到 uTP。
- 1000 多个视频网站 — 通过内置 yt-dlp 支持 YouTube、Bilibili、TikTok、X 等众多网站。
- AI 原生(MCP) — 可从任意 MCP 主机(Claude Desktop、Cursor、Codex 等)调用
add_task、list_tasks、wait_for_task、进度通知。无需绑定特定厂商。 - 远程 Web UI — 通过令牌保护的 Web UI 监听
0.0.0.0,可在手机或远程设备上管理下载。支持通过二维码分享。 - RSS 自动获取 — 使用正则表达式筛选器订阅,新条目自动加入队列,并按 GUID 去重。
- 完成后钩子 — 完成后发送 webhook POST 请求或执行 shell 命令,可接入 Home Assistant、n8n 或其他服务。
- 任务模板和依赖链 — 按站点设置 Cookie/UA 预设、等待其他任务完成、定时启动时间、每小时带宽计划。
- 6 种主题 — 奶油浅色(新用户默认)、深靛蓝、浅纸色、森林夜色、赛博朋克、单色灰;无需重启即可即时切换。
- 隐私优先 — 无广告、无遥测、无需登录、不上传 infohash。
安装
| 平台 | 下载 |
|---|---|
| macOS(Apple Silicon + Intel,已公证) | unfetch_*_universal.dmg |
| Windows 10/11(NSIS 安装程序) | unfetch_*_x64-setup.exe |
| Linux x64(AppImage / deb / rpm) | 发布页面 |
也可从 https://unfetch.org/#download 获取最新版本。
三种前端,一个守护进程
unfetch 以 Go 守护进程 + Tauri 外壳的形式提供。三种前端共用一个守护进程,并由同一个 localhost:19543 上的 REST API 提供支持:
- GUI — Tauri 窗口(默认应用图标会启动此窗口)
- CLI —
unfetch add <url>、unfetch list、unfetch pause <id>,…… - MCP —
unfetch --mcp(stdio JSON-RPC,可添加到 Claude Desktop 配置中) - 浏览器扩展 — Chrome/Edge 嗅探器见
extension/
┌──────────────────────────────────────────────────────────┐
│ Tauri 2 app (Rust + React + 6 themes) │
│ ├─ Main window / mini floating window │
│ ├─ Tray, clipboard sniffer, deep-link handler │
│ └─ Forwards arguments / events to the daemon │
└─────────────────────────────┬────────────────────────────┘
│ localhost:19543 (REST + SSE)
▼
┌──────────────────────────────────────────────────────────┐
│ Go daemon (anacrolix/torrent + http downloader + yt-dlp) │
│ ├─ SQLite store of all tasks (resumes across restarts) │
│ ├─ Speed scheduler, retry queue, hash verifier │
│ ├─ Remote Web UI on 0.0.0.0 (token-gated) │
│ └─ Same API consumed by GUI / CLI / MCP / extension │
└──────────────────────────────────────────────────────────┘
与 AI 配合使用(MCP)
将以下内容添加到 Claude Desktop / Cursor 配置中(macOS 上的路径为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"unfetch": {
"command": "/Applications/unfetch.app/Contents/MacOS/unfetch",
"args": ["--mcp"]
}
}
}
之后,AI 即可调用 add_task、list_tasks、wait_for_task 等。完整工具架构请参见 docs/mcp.md,或访问 https://unfetch.org/mcp。
从源代码构建
前置条件:pnpm、Rust 工具链、Go 1.23+、Node 20+。
# 1. Frontend
pnpm install
pnpm build
# 2. Go daemon (per-platform — Tauri externalBin requires platform-suffixed names)
cd core
GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" \
-o ../src-tauri/binaries/unfetch-daemon-aarch64-apple-darwin .
# (repeat for x86_64, linux, windows targets)
# 3. Tauri release build
cd ..
pnpm tauri build # native target only
pnpm tauri build --target universal-apple-darwin # macOS universal
macOS 公证版发布构建说明,请参见 scripts/build-mac.sh。
发布工作流
./scripts/release.sh 0.3.0 # bump → commit → tag → push (triggers CI for Win/Linux)
./scripts/build-mac.sh 0.3.0 # local universal build + Apple notarize + upload dmg
.github/workflows/release.yml 中的 CI 仅构建 Windows + Linux 版本;macOS 版本在本地进行公证,因为 Apple Developer 凭据不应存放在 CI 中。
支持开发
unfetch 由一名开发者构建和维护。如果它为你节省了时间,赞助有助于让项目持续运行:
- GitHub Sponsors — 面向国际用户,可按月赞助或一次性赞助(Stripe)
- PayPal — 面向全球的一次性打赏
- Alipay / WeChat Pay — 扫描 https://unfetch.org/#sponsor 上的二维码
许可证
MIT 风格的许可证。请参阅 LICENSE(即将推出——目前事实上采用 MIT 许可证)。
欢迎为上游项目贡献代码——unfetch 的维护者也是 anacrolix/torrent 的活跃贡献者。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。