跳转到内容

隐私

大多数隐私页只能请读者相信厂商,因为除此之外别无他法。这两个产品是开源的,所以有别的办法: 本页每一条结论,都是关于你能读到的代码的结论 —— 而其中大多数甚至不需要你真的去读代码,一分钟 就能验完。

两个产品对网络的回答不同,因此下面分开写。

  • 两个产品里都没有分析、遥测或使用上报。
  • mtty 不会自己发任何请求。 更新检查只在你主动触发时发生。
  • miao 默认会做更新检查,在界面启动一秒后。可以关掉。
  • 除这些更新检查之外,两个项目都不会向本项目运行的服务器发送任何东西。
  • 本站没有分析脚本,不加载任何第三方资源,字体由本站自己提供。

仓库里没有遥测、分析或崩溃上报代码,也没有任何会自行发起连接的代码。更新检查是调用 curl 子进程; 依赖树里那一个 HTTP 客户端服务于下文的 Markdown 远程图片。其余一切都是你自己发起的连接。正因为 如此,下面这份清单才能被完整列举出来 —— 而由于整个应用是开源的,它也能被你逐条核对。

mtty 启动时不联系任何服务器。检查由菜单里的 Check for Updates 发起,以及更新对话框在失败后 提供的重试按钮。它就是一个请求:

终端窗口
curl -fsSL --max-time 8 <update-check-url>

该地址默认指向项目自己在 GitHub 上的发布清单;这个请求暴露的信息,等同于任何一次文件下载对提供方 暴露的信息。下载下来的产物会与清单声明的 sha256 核对,设置 update-pubkey 后还会额外校验 minisign 签名。把 update-check-url 指向空,就永远不会有任何抓取。见配置。

其余离开这台机器的流量,都是你主动发起、连向你指定主机的:

内容 何时
SSH、SFTP、FTP、端口转发 当你连接某台主机时
MTP 控制面 每用户本地套接字,仅属主可访问;Windows 上为命名管道
经 TCP 的 MTP 只有你设了 remote-listen 才会启用,且未设 MTTY_MTP_TOKEN 时拒绝启动
主机与命令片段同步 只有你设了 sync-dir 才会启用,默认未设

一个不明显、但值得知道的例外:Markdown 预览编译时带上了远程图片支持,所以你打开的文档如果以 URL 引用了图片,它就会去取那张图。

仓库里不存在分析或使用上报 SDK。界面显示给你的那些数字 —— token 数、估算费用、首字节延迟、 提示缓存命中 —— 都是本地计算,从不上传。产品自己把这些叫做 “telemetry”(遥测),但那指的是终端里 的一块面板,不是一次传输。

有两样东西接了线但没开:

  • OpenTelemetry 导出:除非你自己设 OTEL_EXPORTER_OTLP_ENDPOINT,否则什么都不做。
  • 错误上报:只有在构建时提供 Sentry DSN 才会被编译进去。这里发布的版本构建时没有提供,因此不 上报任何东西。如果这一点将来变了,本页也会跟着改。

这是 miao 唯一自作主张的事。界面启动一秒后(不阻塞界面),miao 会检查有没有新版本 —— 并且默认会 在后台装上;正在运行的进程仍用旧构建,只提示你重启以应用。取决于是怎么安装的,请求会发往 github.com/oxdingzg/miao、api.github.com、npm registry 或 Homebrew 的 formula 索引。

在 miao.jsonc 里关掉:

{ "autoupdate": false }

或设 MIAO_DISABLE_AUTOUPDATE=1。预览版与开发版从不自升级。

内容 默认
models.dev 目录(模型名、价格、限制) 后台抓取,缓存 12 小时;离线时使用内置快照
模型供应商 API 只有你配置的那些
HTTP 服务与浏览器界面 需要手动开启;miao serve
远程聊天桥接(微信、QQ) 需要手动开启,且是连向那些平台自己的服务器
会话分享 已移除,没有后端

这部分值得正面写清楚,因为人们通常默认它在发生:

  • 没有账号。 两个产品都不要求登录,也都没有可登录的服务器。
  • 没有任何使用记录离开你的机器 —— 你用了哪些功能、跑了哪些命令、打开了哪些文件,都不外传。
  • 没有崩溃上报,除非你自己写一份。
  • 没有广告、追踪或指纹识别,产品与本站都没有。

这里的文档页与营销页都是静态的。没有分析脚本、没有追踪像素、没有广告或同意书代码,也没有任何从 第三方域名加载的资源 —— 字体就来自本站域名。页面上对外的链接,只有你肉眼能看到的那几个。

有两点值得实测而不是假定:

  • 不设任何 Cookie。 连一个偏好 Cookie 都没有;你选的主题存在浏览器的 localStorage 里, 从不发送到任何地方。
  • 搜索在你的浏览器里跑。 文档索引作为静态文件随站点一起提供,所以搜索查询在本地完成, 不离开页面。

有一点要说清楚:本站经由 Cloudflare 提供服务,因此 Cloudflare 会看到任何主机或 CDN 都会看到的 东西 —— 请求的 IP 地址与 User-Agent。

这些就是上面那些结论背后的命令。前两条在 mtty 的克隆里跑;后两条只要有终端就行。

mtty 里有没有会替你做上报的东西?

终端窗口
cargo tree -e normal --prefix none | awk '{print $1}' | sort -u \
| grep -iE 'posthog|mixpanel|amplitude|sentry|datadog|telemetry|crashpad'

没有。那有没有 HTTP 客户端?

终端窗口
cargo tree -e normal --prefix none | awk '{print $1}' | sort -u \
| grep -xE 'ureq|reqwest|hyper|isahc|curl|surf|minreq|attohttpc'

一行:ureq —— 就是上文提到的那个例外,由 Markdown 预览用来取远程图片。**这个例外是被这条命令 找出来的,不是被藏起来的。**更新检查不用它:那是 curl 子进程,在 crates/mtty-widget/src/lib.rs 的 check_updates 里。

本站会追踪你吗?

终端窗口
curl -s https://mtty.dev/ | grep -ciE 'beacon\.min\.js|cloudflareinsights|googletagmanager|gtag\(|plausible|umami'
curl -sI https://mtty.dev/ | grep -ci set-cookie

两条都输出 0。如果你更愿意读而不是跑:本站的源码同样是公开的 oxdingzg/mtty.dev。

以及一条完全不需要信任的检查。 应用是开源的,你可以自己编译二进制,然后看它究竟打开了什么连接。 这里没有任何东西需要你相信 —— 公开代码的意义,正是让这份信任不必被索取。

有疑问,或者发现本页与你的实际观察不符:写信到 contact@mtty.dev,或在 mtty 与 miao 开 issue。

最后更新:2026-10-03。本页描述的是代码,所以代码变了它就会变 —— 各条结论的复核日期记录在 许可与依赖政策 里。