Ve los accesos
Estado instantáneo, seguimiento en directo y panel en el terminal. Identidad del proceso y contexto cuando el sistema puede acceder a ellos.
mcw status --lang esTu privacidad, más clara.
Identifica los accesos, interpreta los indicios y actúa desde tu escritorio. MicCamWatch observa los metadatos del sistema — no tus conversaciones ni tus imágenes.
Windows 10/11 · Linux x64 · macOS 15+
Herramienta nativa · Código abierto · Sin telemetría
Observar sin grabar
Comprender antes de actuar
Mantener el control local
Menos opacidad. Más contexto.
MCW distingue la actividad observada, el nivel de confianza y el riesgo. Un indicio débil no se convierte en una certeza.
Estado instantáneo, seguimiento en directo y panel en el terminal. Identidad del proceso y contexto cuando el sistema puede acceder a ellos.
mcw status --lang esProceso, ruta, origen y validación de confianza según el sistema operativo. Los diagnósticos también muestran los recolectores degradados o no disponibles.
mcw doctorSilenciamiento, comandos de cámara e inicio al iniciar sesión: acciones explícitas, limitadas a lo que la plataforma permite realmente.
mcw tray
mcw top v0.17.1, ejecutado en ConPTY de Windows en CI (150 columnas) y después convertido en imagen. Este runner no tiene ningún dispositivo de captura y se desconoce el estado de silenciamiento del SDK: ilustra la interfaz, no una detección ni una prueba de bloqueo en hardware físico. Las capturas de esta página son exclusivamente de Windows.Tres sistemas operativos, distintas capacidades
La supervisión funciona sin derechos de administrador. Las acciones privilegiadas requieren una autorización independiente.
| Sistema | Micrófono | Cámara | Controles y límites |
|---|---|---|---|
| Windows 10/11 x64 | Sesiones WASAPI activas; proceso validado cuando es accesible. | Indicios nativos de captura; atribución al proceso cuando está disponible. Módulos cargados: solo «ready». | Silenciamiento de endpoints y control de dispositivos de cámara con UAC. Protección manual mantenida en segundo plano hasta su liberación explícita; sin aislamiento eléctrico ni garantía para las rutas exclusivas/ASIO. |
| Linux x64 · PipeWire | Fuente y flujos en curso con enlace activo; PID autenticado y después validado en /proc. | El mismo requisito de enlace activo de PipeWire. Un handle V4L2 por sí solo no demuestra que haya un flujo; los accesos fuera de PipeWire pueden escapar a la observación. | Silenciamiento de las fuentes de la sesión, no una prohibición de ALSA. Cámaras USB uvcvideo compatibles únicamente mediante un componente de administrador independiente y revisado; cámaras no USB no compatibles. |
| macOS 15+ Apple Silicon / Intel | Actividad de entrada de CoreAudio; PID validado si se puede leer la identidad del proceso. | Estado de ejecución del dispositivo mediante CoreMediaIO, confianza media. Cliente y PID desconocidos. Esta señal no demuestra que haya un flujo de imágenes; estado de la cámara «degraded». | Silenciamiento solo si la propiedad de entrada se puede modificar. Perfil de cámara gestionado por MCW, que debe aprobarse manualmente en Ajustes del Sistema; su presencia no certifica un bloqueo físico. |
No es un interruptor universal. MCW no es un antivirus ni una prueba forense de captura. Un proceso protegido, un controlador, un acceso directo o una sesión inaccesible pueden limitar las observaciones y los controles. WSL, las máquinas virtuales y los runners sin hardware no garantizan el acceso a los dispositivos físicos.
Recursos: no se ha alcanzado el objetivo de 15 MB. Las mediciones documentadas del escenario completo de Windows superan este objetivo (pico de RSS acumulado muestreado: 56,041 MB). Estas mediciones tienen límites; no se ofrece ninguna garantía de presupuesto de memoria. Leer las mediciones y su alcance ↗
Empezar de forma sencilla
Versión estable 0.17.2. Los ejecutables siguen alojados en GitHub Releases, nunca en un espejo de este sitio.
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Roman-Cuisset/miccamwatch/a58c8b9f3a967589a576879d6d27bfdbc40f9dff/installer/install.sh | shEste comando ejecuta un script remoto. Es más seguro descargarlo y leerlo primero. No es un comando de PowerShell: en Windows, elige el MSI o el ZIP de abajo.
Sin JavaScript o en una vista previa HTTP, el enlace HTTPS apunta al script del commit inmutable de la versión. En este sitio con HTTPS, el comando se adapta a su endpoint local install.sh. Los archivos y sus sumas de comprobación siguen descargándose desde GitHub.
Los comandos siguen pudiendo seleccionarse sin JavaScript. El botón «Copiar» solo aparece si el navegador ofrece su API segura del portapapeles; de lo contrario, selecciona el texto y usa Ctrl+C, Cmd+C o el menú de selección.
El MSI por usuario añade mcw al PATH y un acceso directo al menú Inicio. El ZIP portátil contiene la pareja CLI + anfitrión del icono de bandeja; conserva ambos ejecutables juntos y en la misma versión.
Vuelve a abrir PowerShell después de la instalación. Para un ZIP no añadido al PATH, usa .\mcw.exe en lugar de mcw.
mcw --version
mcw doctor
mcw status --lang es
mcw topRequiere las bibliotecas PipeWire/SPA, pw-dump y un socket PipeWire accesible en tu sesión de usuario. El icono de bandeja necesita un anfitrión StatusNotifierItem; las notificaciones y el sonido necesitan sus servicios de sesión.
El instalador gestiona el ejecutable en $HOME/.local/bin de forma predeterminada y comprueba la entrada exacta del archivo en SHA256SUMS. Las arquitecturas no compatibles se rechazan, no se sustituyen.
El instalador selecciona tu arquitectura nativa. La barra de menús requiere una sesión Aqua. El helper nativo viene incluido; estos archivos no requieren ningún entorno de desarrollo.
La alternativa recomendada
Linux y macOS · Este script está fijado al commit de la versión. Descárgalo y léelo primero; comprueba su suma antes de ejecutar el comando de instalación independiente de abajo.
curl --proto '=https' --tlsv1.2 -fsSL \
https://raw.githubusercontent.com/Roman-Cuisset/miccamwatch/a58c8b9f3a967589a576879d6d27bfdbc40f9dff/installer/install.sh \
-o mcw-install.sh
less mcw-install.shAntes de ejecutarlo, compara la suma del archivo: sha256sum mcw-install.sh en Linux, o shasum -a 256 mcw-install.sh en macOS. El valor esperado para el script instalador (no los archivos) es:
b7348c9a6f37a3d4f89faa2b767fd4880162d90c8f5d7c151185e0823384d1bbUna suma mostrada en el mismo canal comprueba la coherencia de los bytes, no una autenticidad independiente. Consulta también el script en su fuente inmutable.
Después de leerlo y comprobarlo, instala la versión 0.17.2 solicitando explícitamente que se añada al PATH:
sh mcw-install.sh --version v0.17.2 --add-pathSustituye --add-path por --no-modify-path para no modificar la configuración del shell. Si no eliges ninguna opción, el instalador solicita consentimiento en un terminal; no modifica el PATH silenciosamente en modo no interactivo. Abre después un terminal nuevo. No se activa ningún inicio automático ni control de dispositivos.
Resultado esperado en Unix: el script muestra los pasos de descarga y comprobación y después Installation completed: mcw 0.17.2 para la versión solicitada explícitamente. Los pasos se muestran en color en un terminal compatible (se desactiva con NO_COLOR). Después indica cómo iniciar mcw top y, si es necesario, usar la ruta completa o abrir un terminal nuevo para el PATH. Este éxito se refiere a la instalación: no certifica que tus dispositivos estén disponibles ni que haya una protección activa.
Descarga tu archivo y SHA256SUMS desde la misma release. En Linux, usa sha256sum --check --ignore-missing SHA256SUMS. En macOS, compara shasum -a 256 nom-de-l-archive.tar.gz con la entrada exacta del manifiesto. En PowerShell, Get-FileHash .\miccamwatch-windows-x86_64.zip -Algorithm SHA256 permite comparar el ZIP (adapta el nombre para el MSI).
Las atestaciones de GitHub informan sobre la procedencia de la compilación. Para comprobarla con GitHub CLI, adapta la ruta al archivo descargado:
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-runnersLas sumas y los archivos comparten el canal de publicación. La procedencia de la compilación, la firma del editor y el análisis antivirus son tres cosas distintas. Este sitio no sirve ningún binario.
Homebrew / AUR: hay recetas en el repositorio; no se anuncia ningún tap ni paquete AUR publicado. No uses un comando de gestor de paquetes inventado.
En el día a día
La instalación por sí sola no activa ninguna protección, ningún inicio automático ni ninguna terminación de procesos.
Muestra la versión, el estado de los recolectores y los accesos observados. status devuelve 0 si no hay accesos correspondientes, 1 si los hay y 2 si hay un error: el código 1 no indica un fallo.
mcw --version
mcw doctor
mcw status --lang estop abre el panel. tray abre el menú nativo (área de notificación de Windows, StatusNotifierItem de Linux, barra de menús de macOS). El seguimiento en el terminal termina con Ctrl+C.
mcw top
# O un seguimiento con notificaciones:
mcw watch --notifySolo si lo deseas, registra el icono de bandeja para que se inicie al iniciar sesión: tarea/entrada de usuario de Windows, archivo .desktop de Linux o LaunchAgent de macOS. No se instala implícitamente ningún servicio de inicio de sesión.
mcw autostart enable
mcw autostart status
# Para volver atrás:
mcw autostart disableLa terminación automática (--kill-unauthorized) está desactivada de forma predeterminada. Exige un rechazo explícito por política de editor/ruta, una captura activa atribuida, dos observaciones consecutivas y un proceso no protegido. Un riesgo «suspicious» por sí solo no la activa; una cámara de macOS sin PID no puede desencadenarla.
Una instalación que sigue siendo tuya
No mezcles MSI, instalador gestionado, archivo manual y gestor de paquetes. Quien gestiona la instalación determina el procedimiento.
mcw update no actualiza el registro del MSI.mcw update comprueba y sustituye una pareja CLI/tray coherente, tras validar la disponibilidad de la protección y detener de forma segura el tray gestionado por esta instalación.mcw update o el script público con el mismo prefijo. Sin --version, el script sigue la última versión estable. El actualizador rechaza los cambios a versiones anteriores.bin, según las condiciones documentadas.mcw update.Las actualizaciones gestionadas conservan las preferencias y no reactivan un inicio automático ausente, desactivado o externo. Se rechaza una instalación modificada, activa o cuya propiedad no pueda comprobarse; no fuerces una omisión de esas comprobaciones.
--prefix si la instalación tenía un prefijo personalizado.mcw autostart disable
mcw tray stop
sh mcw-install.sh --uninstallEl script Unix solo elimina los ejecutables/estados que le pertenecen y los bloques PATH que gestiona; no elimina políticas, preferencias, historiales ni pruebas de propiedad de los controles. Eliminar la aplicación no sustituye a la restauración explícita.
Local de forma predeterminada
Sin grabación de audio ni captura de imágenes. Sin telemetría ni historial enviado a un servidor.
Leer la política de privacidadMCW lee las señales del sistema y la información de los procesos. La configuración, las políticas, los registros y los historiales permanecen en local. Consulta las rutas con mcw config settings-path y mcw history path; mcw history clear borra el historial de MCW.
La instalación y la actualización contactan con GitHub. Una política de confianza «online» permite las comprobaciones de red nativas de certificados o claves; «offline» las prohíbe según la plataforma. Los registros del sistema siguen sus propias reglas de conservación.
Sin rastreadores, bibliotecas de terceros ni fuentes remotas. El JavaScript opcional mejora las pestañas y la copia; las descargas y las guías siguen siendo accesibles sin él. El proveedor de alojamiento y GitHub pueden tratar los metadatos habituales de las solicitudes, como la dirección IP.
Cuando algo no está claro
Empieza con mcw doctor. Un recolector no disponible no es una luz verde.
Abre un terminal nuevo después de modificar el PATH. En Windows portátil, usa .\mcw.exe desde la carpeta extraída. En Unix, prueba "$HOME/.local/bin/mcw" --version si has mantenido el prefijo predeterminado. El instalador no puede cambiar el entorno de su terminal padre.
Si Defender ha puesto el ejecutable en cuarentena, el PATH no es el problema: conserva los detalles del Historial de protección y sigue las precauciones de abajo, sin restaurar los bytes detectados.
La actividad de la cámara puede quedar sin un PID atribuido cuando el informe nativo no proporciona una marca de tiempo utilizable, aunque Windows proporcione un PID sin procesar. Desde la versión 0.17.2, el icono de bandeja conserva los accesos observados y distingue esta cobertura parcial con un signo de exclamación naranja. Los detalles indican el recolector afectado, el motivo y las capturas; una indisponibilidad real o un error de protección mantienen la prioridad. Las versiones antiguas pueden mostrar una cruz gris y un resumen genérico «telemetry degraded».
Consulta Status details…, mcw status --lang es, mcw status --json y mcw doctor para distinguir la actividad, la atribución y el estado de los recolectores. Una atribución desconocida no significa «ningún acceso» ni «cámara bloqueada»: no debe deducirse ningún cliente ni derecho a detener un proceso únicamente a partir de su nombre o de un PID sin procesar. Las capturas de la página siguen siendo explícitamente históricas, de 0.17.1.
Observar: ejecuta MCW en tu sesión de usuario, sin una elevación general de privilegios. Las restricciones del sistema pueden hacer que ciertas identidades o recolectores no estén disponibles; los derechos adicionales no garantizan una atribución.
Windows: los cambios de dispositivos de cámara requieren una autorización UAC independiente. Linux: los controles de cámara USB requieren primero el componente de administrador independiente de la misma versión y después una autorización Polkit explícita; el instalador de usuario no lo despliega. macOS: la instalación y la eliminación del perfil de cámara siguen siendo manuales en Ajustes del Sistema, y las notificaciones dependen del permiso del sistema. MCW no elude TCC, Gatekeeper ni SIP; la presencia de un perfil no demuestra que se haya impedido una captura.
Ejecuta MCW en tu sesión de usuario de escritorio, no mediante sudo. Comprueba pw-dump, las bibliotecas PipeWire/SPA, XDG_RUNTIME_DIR, el socket de usuario y, si está personalizado, PIPEWIRE_REMOTE. Un socket inaccesible o que se está reiniciando es un error, no «ningún acceso».
El icono de bandeja requiere un anfitrión StatusNotifierItem. Las notificaciones requieren el servicio de sesión y notify-send; el sonido requiere canberra-gtk-play, un tema y un backend de sesión. Una llamada aceptada no certifica que se haya visto una notificación ni oído un sonido. Los accesos directos a la cámara fuera de PipeWire pueden quedar sin atribución o degradar la observación.
La API pública CoreMediaIO indica el estado de ejecución del dispositivo, no la identidad del cliente que lo usa. Por eso MCW muestra un PID desconocido y un estado de cámara degradado en lugar de inventar una atribución. La disponibilidad de AVFoundation y el estado de ejecución no demuestran que se hayan capturado imágenes. Una aprobación de perfil pendiente no equivale a un bloqueo.
No: no desactives las protecciones ni añadas una exclusión. La release pública 0.17.2 no está firmada en Windows; no se anuncia ninguna firma Apple Developer ID ni notarización. Por tanto, pueden aparecer advertencias. Una atestación de GitHub describe una compilación, no su inocuidad.
Si Defender detecta algo, anota el nombre, la ruta, la versión, el hash disponible y los detalles del Historial de protección. No restaures la cuarentena ni reinstales automáticamente los bytes detectados. El repositorio documenta el incidente y el envío manual a Microsoft; no se afirma ningún veredicto de falso positivo. Firma, procedencia y tratamiento seguro ↗.
No necesariamente. En Windows, una protección manual pertenece a un broker nativo en segundo plano y sigue solicitada después de cerrar el icono de bandeja o top, hasta ejecutar mcw unmute o mcw camera allow. Esto no promete que persista tras reiniciar. Linux y macOS mantienen sus controles limitados y puntuales: no heredan este mecanismo de Windows.
Comprueba el estado real. Una guardia de cámara de Windows detenida sigue siendo una advertencia: la intención «Block» por sí sola no demuestra que las conexiones futuras estén protegidas. Restaura explícitamente antes de sustituir o desinstalar y resuelve cualquier estado pendiente.
Un ejecutable activo, una protección solicitada, una restauración pendiente, un recibo ausente/modificado o una ruta no segura pueden impedir una operación. Detén tus observadores, termina las operaciones privilegiadas y comprueba el estado de los controles. El script rechaza root, los destinos modificados/que no le pertenecen y los enlaces no seguros; no detiene procesos por ti.
Un icono de bandeja antiguo puede necesitar una salida manual normal: no fuerces su cierre durante una operación de cámara. No elimines los registros de propiedad para eludir un rechazo. Usa el gestor de instalación apropiado y el procedimiento documentado.
mcw doctor --json y mcw status --json ayudan al diagnóstico, pero las rutas, los usuarios, los PID, los dispositivos y los nombres de aplicaciones pueden ser datos personales. Revisa y oculta esos datos antes de adjuntar un extracto a una incidencia. MCW no recopila automáticamente tus informes; compartirlos sigue siendo voluntario. Los detalles técnicos de las pruebas permanecen en inglés para mantener la estabilidad de los diagnósticos.
Abierto, documentado, auditable