查看访问
即时状态、实时监测和终端仪表板。当系统允许获取时,还会提供进程身份和上下文。
mcw status --lang zh让隐私状况更清晰。
发现访问、理解线索,并在桌面上采取行动。MicCamWatch 观察的是系统元数据,而不是你的谈话或画面。
Windows 10/11 · Linux x64 · macOS 15+
原生工具 · 开源代码 · 无遥测
观察,但不录制
先理解,再行动
在本地保持控制
减少不透明,增加上下文。
MCW 区分观察到的活动、可信度和风险。微弱的线索不会被当成确定的事实。
即时状态、实时监测和终端仪表板。当系统允许获取时,还会提供进程身份和上下文。
mcw status --lang zh根据操作系统提供进程、路径、来源和信任验证。诊断也会显示功能降级或不可用的采集器。
mcw doctor静音、摄像头控制和登录时启动:这些都是明确选择的操作,范围仅限于平台实际支持的能力。
mcw tray
mcw top v0.17.1 的真实输出(150 列),随后渲染成图像。该运行器没有任何采集设备,SDK 的静音状态也未知:它展示的是界面,而不是在物理硬件上的检测结果或阻断证明。本页所有截图均来自 Windows。三种操作系统,各有不同能力
监测无需管理员权限。需要特权的操作则必须另外获得授权。
| 系统 | 麦克风 | 摄像头 | 控制与限制 |
|---|---|---|---|
| Windows 10/11 x64 | 活跃的 WASAPI 会话;可访问时验证进程。 | 原生采集线索;可获取时归属到进程。仅加载模块时,只表示“ready”。 | 端点静音,以及需要 UAC 授权的摄像头设备控制。手动保护请求在后台保持,直到明确释放;这不是电气隔离,也不保证覆盖独占模式或 ASIO 路径。 |
| Linux x64 · PipeWire | 具有活跃链接的源和运行中的流;先认证 PID,再通过 /proc 验证。 | 同样要求存在活跃的 PipeWire 链接。仅有 V4L2 句柄不能证明存在流;绕过 PipeWire 的访问可能无法被观察到。 | 对会话中的源静音,并非禁止 ALSA 访问。USB 摄像头的 uvcvideo 仅通过单独审阅并安装的管理员组件支持;不支持非 USB 摄像头。 |
| macOS 15+ Apple Silicon / Intel | CoreAudio 输入活动;可读取进程身份时验证 PID。 | 通过 CoreMediaIO 获取设备运行状态,可信度中等。客户端和 PID 未知。此信号不能证明存在图像流;摄像头健康状态为“degraded”。 | 仅在输入属性可修改时支持静音。MCW 管理的摄像头描述文件需要在系统设置中手动批准;它的存在不能证明物理层面的访问拒绝。 |
没有通用的断路开关。MCW 既不是杀毒软件,也不是证明发生过采集的取证工具。受保护的进程、驱动程序、直接访问或不可访问的会话,都可能限制观察和控制。WSL、虚拟机和没有硬件的运行器不保证能够访问物理设备。
资源占用:尚未达到 15 MB 的目标。已记录的 Windows 完整场景测量值超过了这一目标(采样的累计 RSS 峰值:56.041 MB)。这些测量存在局限;我们不承诺内存预算保证。阅读测量结果及其适用范围 ↗
轻松开始
稳定版 0.17.2。可执行文件始终托管在 GitHub Releases,绝不会从本网站的镜像提供。
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Roman-Cuisset/miccamwatch/a58c8b9f3a967589a576879d6d27bfdbc40f9dff/installer/install.sh | sh此命令会执行远程脚本。先下载并阅读脚本更安全。这不是 PowerShell 命令:在 Windows 上,请选择下方的 MSI 或 ZIP。
未启用 JavaScript 或在 HTTP 预览中时,HTTPS 链接指向发布版本不可变提交中的脚本。在本网站的 HTTPS 页面上,命令会调整为使用本站的 install.sh 端点。归档文件及其校验和仍从 GitHub 下载。
没有 JavaScript 也能选中命令文本。“复制”按钮仅在浏览器提供安全的剪贴板 API 时出现;否则,请选中文本并使用 Ctrl+C、Cmd+C 或选择菜单复制。
按用户安装的 MSI 会将 mcw 添加到 PATH,并在开始菜单中创建快捷方式。便携 ZIP 包含 CLI 和托盘宿主这一对程序;请将两个可执行文件放在一起,并保持版本一致。
安装后请重新打开 PowerShell。若 ZIP 未添加到 PATH,请用 .\mcw.exe 代替 mcw。
mcw --version
mcw doctor
mcw status --lang zh
mcw top需要 PipeWire/SPA 库、pw-dump,以及在用户会话中可访问的 PipeWire 套接字。托盘需要 StatusNotifierItem 宿主;通知和声音需要各自的会话服务。
安装程序默认管理 $HOME/.local/bin 下的可执行文件,并验证 SHA256SUMS 中该归档的精确条目。不支持的架构会被拒绝,不会用其他架构替代。
安装程序会选择你的原生架构。菜单栏需要 Aqua 会话。原生辅助程序已内置;这些归档不需要开发环境。
推荐的替代方式
Linux 和 macOS · 此脚本固定到发布版本的提交。先下载并阅读,再验证校验和,然后运行下方独立的安装命令。
curl --proto '=https' --tlsv1.2 -fsSL \
https://raw.githubusercontent.com/Roman-Cuisset/miccamwatch/a58c8b9f3a967589a576879d6d27bfdbc40f9dff/installer/install.sh \
-o mcw-install.sh
less mcw-install.sh执行前,请比较文件校验和:Linux 使用 sha256sum mcw-install.sh,macOS 使用 shasum -a 256 mcw-install.sh。安装脚本(不是归档文件)的预期值为:
b7348c9a6f37a3d4f89faa2b767fd4880162d90c8f5d7c151185e0823384d1bb在同一渠道显示的校验和只能验证字节一致性,不能提供独立的真实性验证。也请查看不可变源代码中的脚本。
阅读并验证后,安装版本 0.17.2,并明确请求添加到 PATH:
sh mcw-install.sh --version v0.17.2 --add-path若不希望修改 shell 配置,请将 --add-path 替换为 --no-modify-path。未作选择时,安装程序会在终端中征求同意;在非交互模式下,它不会悄悄修改 PATH。之后请打开一个新终端。不会启用任何自动启动或设备控制。
Unix 上的预期结果:脚本会显示下载和验证步骤,然后针对明确请求的版本显示 Installation completed: mcw 0.17.2。在兼容的终端中,步骤会以彩色显示(可通过 NO_COLOR 禁用)。随后会说明如何启动 mcw top,以及在需要时使用完整路径,或打开新终端以使 PATH 生效。这个成功结果仅指安装成功:它不证明设备可用,也不证明保护已启用。
请从同一个发布版本下载归档文件和 SHA256SUMS。Linux 使用 sha256sum --check --ignore-missing SHA256SUMS。macOS 请将 shasum -a 256 nom-de-l-archive.tar.gz 的结果与清单中的精确条目比较。PowerShell 可用 Get-FileHash .\miccamwatch-windows-x86_64.zip -Algorithm SHA256 比较 ZIP(MSI 请相应调整文件名)。
GitHub 证明提供构建来源信息。使用 GitHub CLI 验证时,请根据下载的文件调整路径:
gh attestation verify ./miccamwatch-linux-x86_64.tar.gz \
--repo Roman-Cuisset/miccamwatch \
--signer-workflow Roman-Cuisset/miccamwatch/.github/workflows/release.yml \
--source-ref refs/tags/v0.17.2 \
--source-digest a58c8b9f3a967589a576879d6d27bfdbc40f9dff \
--deny-self-hosted-runners校验和与归档共用发布渠道。构建来源、发布者签名和杀毒扫描是三件不同的事。本网站不提供任何二进制文件。
Homebrew / AUR:仓库中有配方,但未宣布任何已发布的 tap 或 AUR 软件包。不要使用凭空编造的包管理器命令。
日常使用
仅安装不会启用任何保护、自动启动或进程终止。
显示版本、采集器状态和观察到的访问。status 在没有匹配的访问时返回 0,有访问时返回 1,出错时返回 2:返回码 1 不是故障。
mcw --version
mcw doctor
mcw status --lang zhtop 打开仪表板。tray 打开原生菜单(Windows 通知区域、Linux StatusNotifierItem、macOS 菜单栏)。终端监测可用 Ctrl+C 结束。
mcw top
# 或进行带通知的监测:
mcw watch --notify仅在你愿意时,注册托盘以便登录时启动:Windows 使用用户任务/条目,Linux 使用 .desktop 文件,macOS 使用 LaunchAgent。不会隐式安装任何登录服务。
mcw autostart enable
mcw autostart status
# 如需撤销:
mcw autostart disable自动终止(--kill-unauthorized)默认禁用。它要求发布者/路径策略明确拒绝、可归属的活跃采集、连续两次观察,以及进程不受保护。仅有“suspicious”风险不会触发它;没有 PID 的 macOS 摄像头也无法触发它。
始终由你管理的安装
不要混用 MSI、受管理的安装程序、手动归档安装和包管理器。安装的管理方式决定操作流程。
mcw update 不会更新 MSI 注册信息。mcw update 在验证保护功能可用性并安全停止自身管理的托盘后,验证并替换一致的 CLI/托盘程序对。mcw update,或使用公开脚本并指定相同前缀。没有 --version 时,脚本跟随最新稳定版。更新程序拒绝降级。bin 之外、由其管理的独立可执行文件。mcw update。受管理的更新会保留偏好设置,不会重新启用不存在、已禁用或由外部管理的自动启动。安装被修改、正在运行或无法验证归属时会被拒绝;不要强行绕过。
--prefix。mcw autostart disable
mcw tray stop
sh mcw-install.sh --uninstallUnix 脚本仅移除自身管理的可执行文件/状态以及受管理的 PATH 区块;不会删除策略、偏好设置、历史记录或控制归属证明。删除应用不能替代明确的恢复操作。
MCW 读取系统信号和进程信息。设置、策略、日志和历史记录保留在本地。可用 mcw config settings-path 和 mcw history path 查看路径;mcw history clear 清除 MCW 历史记录。
安装和更新会连接 GitHub。“online”信任策略允许原生的证书或密钥网络验证;“offline”则根据平台禁止这些验证。系统日志遵循各自的保留规则。
没有跟踪器、第三方库或远程字体。可选的 JavaScript 改善选项卡和复制功能;没有它,下载和指南仍可访问。托管服务商和 GitHub 可能处理正常的请求元数据,例如 IP 地址。
遇到不清楚的情况时
先运行 mcw doctor。采集器不可用不代表一切正常。
修改 PATH 后请打开新终端。Windows 便携版请从解压目录使用 .\mcw.exe。Unix 若保留了默认前缀,可尝试 "$HOME/.local/bin/mcw" --version。安装程序无法改变父终端的环境。
如果 Defender 已隔离可执行文件,问题就不在 PATH:请保留“保护历史记录”的详细信息,并遵循下方注意事项,不要恢复检测到的字节内容。
当原生报告未提供可用的时间戳时,即使 Windows 提供了原始 PID,摄像头活动也可能无法归属到 PID。从版本 0.17.2 开始,托盘保留观察到的访问,并用橙色感叹号区分这种部分覆盖状态。详细信息提供相关采集器、原因和采集情况;真正的不可用状态或保护错误仍具有优先级。旧版本可能显示灰色叉号和笼统的“telemetry degraded”摘要。
请查看 Status details…、mcw status --lang zh、mcw status --json 和 mcw doctor,以区分活动、归属和采集器健康状态。归属未知既不是“没有访问”,也不是“摄像头已阻断”:不能仅凭名称或原始 PID 推断客户端身份,或推断有权停止某个进程。本页截图明确保留为 0.17.1 的历史截图。
观察:在用户会话中运行 MCW,无需全面提权。系统限制可能使某些身份信息或采集器不可用;额外权限也不保证能确定归属。
Windows:更改摄像头设备需要单独的 UAC 授权。Linux:USB 摄像头控制首先需要单独安装同一版本的管理员组件,然后明确进行 Polkit 授权;用户安装程序不会部署该组件。macOS:摄像头描述文件的安装与移除仍需在系统设置中手动完成,通知取决于系统授权。MCW 不绕过 TCC、Gatekeeper 或 SIP;描述文件的存在不能证明采集已被拒绝。
在桌面用户会话中运行 MCW,不要通过 sudo 运行。检查 pw-dump、PipeWire/SPA 库、XDG_RUNTIME_DIR、用户套接字,以及自定义配置时的 PIPEWIRE_REMOTE。套接字不可访问或正在重启属于错误,不是“没有访问”。
托盘需要 StatusNotifierItem 宿主。通知需要会话服务和 notify-send;声音需要 canberra-gtk-play、主题和会话后端。调用被接受不证明通知已被看到或声音已被听到。绕过 PipeWire 的直接摄像头访问可能仍无法确定归属,或使观察能力降级。
CoreMediaIO 公共 API 提供设备运行状态,而不是使用它的客户端身份。因此,MCW 显示 PID 未知和摄像头健康状态降级,而不会编造归属。AVFoundation 可用性和设备运行状态都不能证明图像已被采集。描述文件等待批准不等于已阻断。
不应该:不要关闭保护,也不要添加排除项。公开发布的 0.17.2 在 Windows 上未签名;也未宣布任何 Apple Developer ID 签名或公证。因此可能出现警告。GitHub 证明描述的是构建,而不是其无害性。
若 Defender 检出威胁,请记录名称、路径、版本、可获取的哈希值和“保护历史记录”详情。不要从隔离区恢复,也不要自动重新安装检测到的字节内容。仓库记录了该事件以及向 Microsoft 手动提交的流程;不声称已被判定为误报。签名、来源与安全处理 ↗。
不一定。在 Windows 上,手动保护由后台原生代理管理;关闭托盘或 top 后,请求仍保持,直到运行 mcw unmute 或 mcw camera allow。这不承诺重启后仍持续生效。Linux 和 macOS 保留其有限、单次的控制方式,不会继承这一 Windows 机制。
请检查实际状态。Windows 摄像头守护已停止时仍会发出警告:仅有“Block”意图不能证明未来的连接会受到保护。替换或卸载前请明确恢复,并解决所有待完成状态。
正在运行的可执行文件、已请求的保护、待完成的恢复、缺失或被修改的管理凭据、不安全的路径,都可能阻止操作。请停止监测进程,完成特权操作,并检查控制状态。脚本拒绝 root、被修改或不归其管理的目标,以及不安全的链接;它不会替你停止进程。
旧版托盘可能需要正常手动退出:不要在摄像头操作期间强制退出。不要删除归属记录来绕过拒绝。请使用正确的安装管理方式和文档中的流程。
mcw doctor --json 和 mcw status --json 有助于诊断,但路径、用户名、PID、设备和应用名称可能涉及个人信息。在将片段附到 issue 前,请检查并遮盖这些数据。MCW 不会自动收集你的报告;分享完全自愿。为保持诊断稳定,技术性证据详情仍使用英语。
开放、有文档、可审计