VoxFlow 隐私说明
June 30, 2026 · View on GitHub
本地数据
VoxFlow 将工作台相关数据保存在 SQLite 中,默认路径为:
~/Library/Application Support/VoxFlow/voxflow.sqlite
这些数据包括听写历史、易错词规则、风格配置、Provider 元数据、转写任务、笔记、语音任务,以及非敏感设置。旧版本的词表和文本替换表会在数据库迁移中删除。
密钥
LLM Provider 的 API Key 通过 KeychainCredentialStore 存入 macOS Keychain。
Groq、腾讯云、阿里云等云端 ASR 凭据按当前产品设计保存在本地凭据文件 ~/Library/Application Support/VoxFlow/credentials.json 中,便于在模型设置页直接查看、更新和删除。它们不会写入 UserDefaults、SQLite、日志、测试快照或导出归档。
VoxFlow 不应把 API Key 存到以下位置:
UserDefaults- SQLite
- 日志
- 测试快照
- 导出归档
早期写入 UserDefaults 的明文 LLM 密钥会迁移到 Keychain,并随后删除。
网络使用
网络行为默认是显式开启的:
- LLM 纠错默认关闭。
- 只有当用户启用纠错,或者某种风格确实需要它时,才会把识别文本发送给 LLM。
- 本地 ASR 在本机处理音频;Apple Speech 是否使用系统在线服务取决于 macOS 和当前语言。
- 选择 Groq、腾讯云或阿里云等云端 ASR Provider 时,录音会发送给对应服务商完成识别。
- “任务助手”会在触发时把用户口述内容和收集到的上下文发送给已配置的 LLM Provider。
上下文采集
“任务助手”会采集当前窗口上下文,以提升生成质量:
- 窗口元数据:应用名称、窗口标题、Bundle ID。
- 辅助功能文本:当前聚焦 UI 元素中的可见文本、选中文本、输入区内容。
- 视觉兜底:当辅助功能文本不足时,会临时截取当前窗口截图,仅用于单次任务,不会落盘或上传。
安全防护
- 会检测并屏蔽安全文本字段(如密码框),不会从中采集内容。
- 上下文管线不会自动滚动窗口,也不会修改 UI。
- 截图是临时的,不会写入数据库、日志或上传链路。
- 上下文采集在后台队列执行,超时时间为 500ms。
- 所有采集到的上下文都会标记来源,便于透明追踪。
权限
VoxFlow 会使用以下 macOS 权限:
- 麦克风:所有录音都需要。
- 语音识别:Apple Speech ASR 需要。
- 辅助功能:文本注入(⌘V)和上下文采集需要。
- 屏幕录制:视觉兜底截图需要,只在“任务助手”第一次需要视觉上下文时申请。
日志
AppLogger 在写入 OSLog 之前会脱敏以下内容:
- Bearer token 和类似 API Key 的值
- 上下文文本内容(可见文本、选中文本、输入区文本)
- 截图引用和图片路径
- 用户主目录路径
诊断与崩溃日志
“崩溃日志”默认关闭。关闭时,VoxFlow 不会自动向外部服务发送崩溃报告;用户仍可在“数据与隐私”里手动发送最近一次 macOS 系统崩溃报告。
开启“崩溃日志”后,VoxFlow 会使用 Sentry 接收自动崩溃诊断,用于定位闪退、启动失败和崩溃线程栈。上报内容限于崩溃诊断所需的信息,例如应用版本、构建号、Bundle ID、系统版本、异常类型、线程栈和脱敏后的设备诊断字段。Sentry 端保留期按产品约定为 30 天。
崩溃日志不应包含以下用户内容:
- 原始音频
- 转写文本
- 剪贴板内容
- 截图或录屏内容
- 提示词、LLM 请求或响应正文
- API Key、Bearer token 或其它凭据
手动发送最近系统崩溃报告时,VoxFlow 会先对报告做本地脱敏:将用户主目录路径替换为 ~,并过滤提示词、剪贴板、转写文本等敏感标记行。若未配置 Sentry DSN,手动发送会提示“崩溃日志上报地址尚未配置”,不会产生网络请求。
手动控制
设置和工作台提供或计划提供以下手动控制:
- 清空历史
- 清空缓存 / 模型下载
- 导出本地数据,但不包含密钥
- 导入本地数据时不覆盖 Keychain 密钥;云端 ASR 凭据也不进入普通导出归档