v__MCW_VERSION__ · version stable publiée

Votre vie privée, plus lisible.

Votre micro.
Votre caméra.
Votre visibilité.

Repérez les accès, comprenez les indices et agissez depuis votre bureau. MicCamWatch observe les métadonnées du système — pas vos conversations, ni vos images.

Windows 10/11 · Linux x64 · macOS 15+
Outil natif · Code ouvert · Sans télémétrie

Le contrôle, à portée de clicWindows
Menu natif de MicCamWatch sous Windows : état du moniteur, commandes de confidentialité et options du bureau.
Le vrai menu Windows, capture v0.17.1. Capture historique de l’installation utilisateur : pipeline caméra « ready », protection micro non demandée et caméra autorisée. Une interface réelle, pas une preuve de capture ni de blocage matériel. Elle précède le diagnostic d’état incomplet décrit dans la FAQ Windows.

Observer sans enregistrer

Comprendre avant d’agir

Garder le contrôle local

Moins d’opacité. Plus de contexte.

Un signal utile.
Pas une promesse magique.

MCW distingue l’activité observée, le niveau de confiance et le risque. Un indice faible ne devient pas une certitude.

01 / OBSERVER

Voyez les accès

État instantané, suivi en direct et tableau de bord terminal. Identité du processus et contexte lorsqu’ils sont accessibles au système.

mcw status --lang fr
02 / COMPRENDRE

Remontez aux indices

Processus, chemin, origine et validation de confiance selon l’OS. Les diagnostics montrent aussi les collecteurs dégradés ou indisponibles.

mcw doctor
03 / AGIR

Choisissez vos contrôles

Mute, commandes caméra et démarrage à la connexion : des actions explicites, limitées à ce que la plateforme permet réellement.

mcw tray
Aussi à l’aise dans un terminal

Un tableau de bord, sans navigateur.

mcw top
Sortie réelle du tableau de bord mcw top 0.17.1 dans un terminal Windows de CI sans périphérique de capture.
Sortie réelle de mcw top v0.17.1, exécuté en ConPTY Windows de CI (150 colonnes), puis rendue en image. Ce runner ne possède aucun périphérique de capture et l’état du mute SDK y est inconnu : il illustre l’interface, pas une détection ou une preuve de blocage sur matériel physique. Les captures de cette page sont exclusivement Windows.

Trois OS, des capacités différentes

Les limites font partie
du produit.

La surveillance fonctionne sans droits administrateur. Les actions privilégiées, elles, demandent une autorisation distincte.

Portée de la version __MCW_VERSION__
SystèmeMicrophoneCaméraContrôles et limites
Windows 10/11
x64
Sessions WASAPI actives ; processus validé lorsque accessible.Indices natifs de capture ; attribution au processus lorsqu’elle est disponible. Modules chargés : « ready » seulement.Mute des endpoints et contrôle des périphériques caméra avec UAC. Protection manuelle détenue en arrière-plan jusqu’à libération explicite ; pas d’isolation électrique, ni de garantie sur les chemins exclusifs/ASIO.
Linux
x64 · PipeWire
Source et flux en cours avec lien actif ; PID authentifié puis validé dans /proc.Même exigence de lien actif PipeWire. Un handle V4L2 seul ne prouve pas un flux ; les accès hors PipeWire peuvent échapper à l’observation.Mute des sources de la session, pas d’interdiction ALSA. Caméras USB uvcvideo prises en charge uniquement via un composant administrateur séparé et revu ; caméras non-USB non prises en charge.
macOS 15+
Apple Silicon / Intel
Activité d’entrée CoreAudio ; PID validé si l’identité du processus est lisible.État d’exécution du périphérique via CoreMediaIO, confiance moyenne. Client et PID inconnus. Ce signal ne prouve pas le flux d’images ; santé caméra « degraded ».Mute uniquement si la propriété d’entrée est modifiable. Profil caméra détenu par MCW, à approuver manuellement dans Réglages Système ; sa présence ne certifie pas un refus physique.

Pas de coupe-circuit universel. MCW n’est ni un antivirus, ni une preuve forensique de capture. Un processus protégé, un pilote, un accès direct ou une session inaccessible peuvent limiter les observations et les contrôles. WSL, machines virtuelles et runners sans matériel ne garantissent pas l’accès aux périphériques physiques.

Ressources : objectif 15 Mo non atteint. Les mesures documentées du scénario Windows complet dépassent cet objectif (pic RSS cumulé échantillonné : 56,041 Mo). Ces mesures ont des limites ; aucune garantie de budget mémoire n’est annoncée. Lire les mesures et leur portée ↗

Commencer simplement

Votre système.
La bonne installation.

Version stable __MCW_VERSION__. Les exécutables restent hébergés sur GitHub Releases, jamais sur un miroir de ce site.

Linux et macOS uniquement

Une ligne pour suivre la version stable.

Sans sudo
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Roman-Cuisset/miccamwatch/__MCW_SOURCE__/installer/install.sh | sh

Cette commande exécute un script distant. Le télécharger et le lire d’abord est plus sûr. Ce n’est pas une commande PowerShell : sous Windows, choisissez le MSI ou le ZIP ci-dessous.

Sans JavaScript ou en aperçu HTTP, le lien HTTPS pointe vers le script du commit immuable de la version. Sur ce site en HTTPS, la commande est adaptée à son endpoint local install.sh. Les archives et leurs sommes restent téléchargées depuis GitHub.

Les commandes restent sélectionnables sans JavaScript. Le bouton « Copier » apparaît seulement si le navigateur propose son API de presse-papiers sécurisée ; sinon, sélectionnez le texte et utilisez Ctrl+C, Cmd+C ou le menu de sélection.

Windows 10 / 11

Installation native · x64

Le MSI par utilisateur ajoute mcw au PATH et un raccourci au menu Démarrer. Le ZIP portable contient la paire CLI + hôte de tray ; conservez ces deux exécutables ensemble et à la même version.

Rouvrez PowerShell après l’installation. Pour un ZIP non ajouté au PATH, utilisez .\mcw.exe à la place de mcw.

mcw --version
mcw doctor
mcw status --lang fr
mcw top

Linux de bureau

x64 · glibc 2.35+

Requiert les bibliothèques PipeWire/SPA, pw-dump et un socket PipeWire accessible dans votre session utilisateur. Le tray nécessite un hôte StatusNotifierItem ; notifications et son nécessitent leurs services de session.

L’installateur gère l’exécutable sous $HOME/.local/bin par défaut et vérifie l’entrée exacte de l’archive dans SHA256SUMS. Les architectures non prises en charge sont refusées, pas remplacées.

macOS 15 ou ultérieur

Apple Silicon / Intel

L’installateur sélectionne votre architecture native. La barre de menus requiert une session Aqua. Le helper natif est embarqué ; aucun environnement de développement n’est requis pour ces archives.

L’alternative recommandée

Télécharger. Vérifier. Lire. Exécuter.

Linux et macOS · Ce script est épinglé au commit de la version. Téléchargez-le et lisez-le d’abord ; vérifiez sa somme avant de lancer la commande d’installation séparée plus bas.

curl --proto '=https' --tlsv1.2 -fsSL \
  https://raw.githubusercontent.com/Roman-Cuisset/miccamwatch/__MCW_SOURCE__/installer/install.sh \
  -o mcw-install.sh
less mcw-install.sh

Avant exécution, comparez la somme du fichier : sha256sum mcw-install.sh sur Linux, ou shasum -a 256 mcw-install.sh sur macOS. La valeur attendue pour le script installateur (pas les archives) est :

__MCW_INSTALLER_SHA256__

Une somme affichée sur le même canal vérifie la cohérence des octets, pas une authenticité indépendante. Consultez également le script à sa source immuable.

Après lecture et vérification, installez la version __MCW_VERSION__ en demandant explicitement l’ajout au PATH :

sh mcw-install.sh --version v__MCW_VERSION__ --add-path

Remplacez --add-path par --no-modify-path pour ne pas modifier la configuration du shell. Sans choix, l’installateur propose un consentement dans un terminal ; il ne modifie pas silencieusement le PATH en non-interactif. Ouvrez ensuite un nouveau terminal. Aucun démarrage automatique ni contrôle de périphérique n’est activé.

Résultat attendu sous Unix : le script affiche les étapes de téléchargement et de vérification, puis Installation completed: mcw __MCW_VERSION__ pour la version explicitement demandée. Les étapes sont colorées dans un terminal compatible (désactivation avec NO_COLOR). Il indique ensuite comment lancer mcw top et, si nécessaire, utiliser le chemin complet ou ouvrir un nouveau terminal pour le PATH. Ce succès concerne l’installation : il ne certifie ni la disponibilité de vos périphériques, ni une protection active.

Archives, sommes SHA-256 et provenance

Téléchargez votre archive et SHA256SUMS depuis la même release. Sous Linux, utilisez sha256sum --check --ignore-missing SHA256SUMS. Sous macOS, comparez shasum -a 256 nom-de-l-archive.tar.gz à l’entrée exacte du manifeste. Sous PowerShell, Get-FileHash .\miccamwatch-windows-x86_64.zip -Algorithm SHA256 permet la comparaison du ZIP (adaptez le nom pour le MSI).

Les attestations GitHub renseignent la provenance de build. Pour une vérification avec GitHub CLI, adaptez le chemin au fichier téléchargé :

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/v__MCW_VERSION__ \
  --source-digest __MCW_SOURCE__ \
  --deny-self-hosted-runners

Sommes et archives partagent le canal de publication. Provenance de build, signature d’éditeur et analyse antivirus sont trois choses différentes. Aucun binaire n’est servi par ce site.

Homebrew / AUR : des recettes existent dans le dépôt ; aucun tap ou paquet AUR publié n’est annoncé. N’utilisez pas une commande de gestionnaire de paquets inventée.

Au quotidien

Observez d’abord.
Activez ce que vous choisissez.

L’installation seule n’active aucune protection, aucun autostart et aucune terminaison de processus.

01

Vérifiez votre session

Affichez la version, l’état des collecteurs et les accès observés. status renvoie 0 sans accès correspondant, 1 avec accès, 2 en erreur : le code 1 n’est pas une panne.

mcw --version
mcw doctor
mcw status --lang fr
02

Choisissez votre interface

top ouvre le tableau de bord. tray ouvre le menu natif (zone de notification Windows, StatusNotifierItem Linux, barre de menus macOS). Le suivi terminal se termine avec Ctrl+C.

mcw top
# Ou un suivi avec notifications :
mcw watch --notify
03

Démarrage : votre accord

Seulement si vous le souhaitez, enregistrez le tray à la connexion : tâche/entrée utilisateur Windows, fichier .desktop Linux ou LaunchAgent macOS. Aucun service de connexion n’est installé implicitement.

mcw autostart enable
mcw autostart status
# Pour revenir en arrière :
mcw autostart disable

La terminaison automatique (--kill-unauthorized) est désactivée par défaut. Elle exige un refus explicite par politique éditeur/chemin, une capture active attribuée, deux observations consécutives et un processus non protégé. Un risque « suspicious » seul ne l’active pas ; une caméra macOS sans PID ne peut pas la déclencher.

Une installation dont vous restez propriétaire

Mettre à jour.
Retirer proprement.

Ne mélangez pas MSI, installateur géré, archive manuelle et gestionnaire de paquets. Le propriétaire de l’installation détermine la procédure.

Mettre à jour

  • Windows MSI : installez le MSI de la nouvelle release ; mcw update ne met pas à jour l’enregistrement MSI.
  • Windows portable / Cargo : mcw update vérifie et remplace une paire CLI/tray cohérente, après validation de la disponibilité de la protection et arrêt sûr du tray possédé.
  • Unix géré : mcw update ou le script public avec le même préfixe. Sans --version, le script suit stable latest. L’updater refuse les downgrades.
  • Archive manuelle : Linux nécessite un remplacement manuel ; macOS peut mettre à jour un exécutable autonome possédé hors bin selon les conditions documentées.
  • Gestionnaire de paquets : mettez à jour avec ce gestionnaire, jamais avec le script curl ni mcw update.

Les mises à jour gérées préservent les préférences et ne réactivent pas un autostart absent, désactivé ou externe. Une installation modifiée, active ou dont la propriété ne peut pas être vérifiée est refusée ; ne forcez pas le contournement.

Désinstaller

  • Windows MSI : désactivez l’autostart souhaité, puis utilisez Applications installées dans les Paramètres Windows.
  • ZIP portable : désactivez l’autostart possédé, arrêtez les processus de cette installation, puis retirez la paire d’exécutables.
  • Unix géré : après téléchargement et lecture du script ci-dessus, utilisez la commande ci-dessous ; ajoutez le même --prefix si l’installation avait un préfixe personnalisé.
  • Composant caméra Linux : restaurez les liaisons possédées et retirez explicitement le composant administrateur séparé avant une mise à jour ou suppression utilisateur. Procédure ↗.
mcw autostart disable
mcw tray stop
sh mcw-install.sh --uninstall

Le script Unix retire uniquement ses exécutables/états possédés et ses blocs PATH gérés ; il ne supprime pas les politiques, préférences, historiques ou preuves de propriété des contrôles. La suppression de l’application ne remplace pas la restauration explicite.

Local par défaut

Votre activité n’est
pas notre donnée.

Ni enregistrement audio, ni capture d’images. Ni télémétrie, ni historique envoyé à un serveur.

Lire la politique de confidentialité

Des métadonnées, pas des médias

MCW lit les signaux du système et les informations de processus. Paramètres, politiques, journaux et historiques restent locaux. Consultez les chemins avec mcw config settings-path et mcw history path ; mcw history clear efface l’historique MCW.

Les exceptions réseau sont explicites

Installation et mise à jour contactent GitHub. Une politique de confiance « online » autorise les vérifications réseau natives de certificats ou de clés ; « offline » les interdit selon la plateforme. Les journaux système suivent leurs propres règles de conservation.

Cette page reste légère en dépendances

Pas de tracker, pas de bibliothèque tierce ni de police distante. Le JavaScript facultatif améliore les onglets et la copie ; téléchargements et guides restent accessibles sans lui. L’hébergeur et GitHub peuvent traiter les métadonnées normales de requête, comme l’adresse IP.

Quand quelque chose n’est pas clair

Les réponses,
sans zone grise.

Commencez par mcw doctor. Un collecteur indisponible n’est pas un feu vert.

« mcw » n’est pas reconnu après installation

Ouvrez un nouveau terminal après une modification du PATH. Sous Windows portable, utilisez .\mcw.exe depuis le dossier extrait. Sous Unix, essayez "$HOME/.local/bin/mcw" --version si vous avez gardé le préfixe par défaut. L’installateur ne peut pas changer l’environnement de son terminal parent.

Si Defender a mis l’exécutable en quarantaine, le PATH n’est pas le problème : conservez les détails de l’Historique de protection et suivez les précautions ci-dessous, sans restaurer les octets détectés.

Windows : caméra utilisée, PID inconnu ou couverture partielle dans le tray

Une activité caméra peut rester sans PID attribué lorsque le rapport natif ne fournit pas d’horodatage exploitable, même si Windows fournit un PID brut. Depuis la version 0.17.2, le tray conserve les accès observés et distingue cette couverture partielle par un point d’exclamation orange. Les détails donnent le collecteur concerné, sa raison et les captures ; une véritable indisponibilité ou une erreur de protection garde la priorité. Les anciennes versions peuvent afficher une croix grise et un résumé générique « telemetry degraded ».

Consultez Status details…, mcw status --lang fr, mcw status --json et mcw doctor pour distinguer activité, attribution et santé des collecteurs. Une attribution inconnue n’est ni « aucun accès », ni « caméra bloquée » : aucun client ou droit d’arrêter un processus ne doit être déduit de son seul nom ou d’un PID brut. Les captures de la page restent explicitement historiques, en 0.17.1.

Quels droits et permissions sont nécessaires ?

Observer : lancez MCW dans votre session utilisateur, sans élévation générale. Les restrictions du système peuvent rendre certaines identités ou certains collecteurs indisponibles ; des droits supplémentaires ne garantissent pas une attribution.

Windows : les changements de périphériques caméra demandent une autorisation UAC distincte. Linux : les contrôles caméra USB nécessitent d’abord le composant administrateur séparé de la même version, puis une autorisation Polkit explicite ; l’installateur utilisateur ne le déploie pas. macOS : l’installation et le retrait du profil caméra restent manuels dans Réglages Système, et les notifications dépendent de l’autorisation système. MCW ne contourne pas TCC, Gatekeeper ou SIP ; la présence d’un profil ne prouve pas un refus de capture.

Linux : PipeWire indisponible, aucune caméra ou aucun tray

Lancez MCW dans votre session utilisateur de bureau, pas via sudo. Vérifiez pw-dump, les bibliothèques PipeWire/SPA, XDG_RUNTIME_DIR, le socket utilisateur et, si personnalisé, PIPEWIRE_REMOTE. Un socket inaccessible ou en redémarrage est une erreur, pas « aucun accès ».

Le tray requiert un hôte StatusNotifierItem. Les notifications nécessitent le service de session et notify-send ; le son requiert canberra-gtk-play, un thème et un backend de session. Un appel accepté ne certifie pas qu’une notification a été vue ou un son entendu. Les accès caméra directs hors PipeWire peuvent rester sans attribution ou dégrader l’observation.

macOS : pourquoi la caméra n’a-t-elle pas de PID ?

L’API publique CoreMediaIO indique l’état d’exécution du périphérique, pas l’identité du client qui l’utilise. MCW affiche donc un PID inconnu et une santé caméra dégradée au lieu d’inventer une attribution. Disponibilité AVFoundation et état d’exécution ne prouvent pas que des images ont été capturées. Une approbation de profil en attente ne vaut pas blocage.

SmartScreen, Defender ou Gatekeeper : faut-il passer outre ?

Non : ne désactivez pas les protections et n’ajoutez pas d’exclusion. La release __MCW_VERSION__ publique est non signée sous Windows ; aucune signature Apple Developer ID ni notarisation n’est annoncée. Des avertissements peuvent donc apparaître. Une attestation GitHub décrit un build, pas son innocuité.

En cas de détection Defender, notez le nom, le chemin, la version, le hash disponible et les détails de l’Historique de protection. Ne restaurez pas la quarantaine et ne réinstallez pas automatiquement les octets détectés. Le dépôt documente l’incident et la soumission manuelle à Microsoft ; aucun verdict de faux positif n’est revendiqué. Signature, provenance et traitement sûr ↗.

J’ai fermé le tray : mes protections sont-elles retirées ?

Pas nécessairement. Sous Windows, une protection manuelle appartient à un broker natif en arrière-plan et reste demandée après fermeture du tray ou de top, jusqu’à mcw unmute ou mcw camera allow. Cela ne promet pas une persistance au redémarrage. Linux et macOS gardent leurs contrôles limités, ponctuels : ils n’héritent pas de ce mécanisme Windows.

Vérifiez le statut réel. Une garde caméra Windows arrêtée reste un avertissement : une intention « Block » seule ne prouve pas la protection des futures connexions. Restaurez explicitement avant remplacement ou désinstallation et résolvez tout état en attente.

Pourquoi une mise à jour ou une désinstallation est-elle refusée ?

Un exécutable actif, une protection demandée, une restauration en attente, un reçu manquant/modifié ou un chemin non sûr peuvent empêcher une opération. Arrêtez vos watchers, terminez les opérations privilégiées et vérifiez l’état des contrôles. Le script refuse root, les cibles modifiées/non possédées et les liens non sûrs ; il n’arrête pas de processus à votre place.

Un ancien tray peut nécessiter une sortie manuelle normale : ne le forcez pas à quitter pendant une opération caméra. Ne supprimez pas les journaux de propriété pour contourner un refus. Utilisez le propriétaire d’installation approprié et la procédure documentée.

Comment partager un diagnostic sans exposer ma vie privée ?

mcw doctor --json et mcw status --json aident au diagnostic, mais chemins, utilisateurs, PID, appareils et noms d’applications peuvent être personnels. Relisez et masquez ces données avant de joindre un extrait à une issue. MCW ne collecte pas automatiquement vos rapports ; le partage reste volontaire. Les détails techniques de preuve restent en anglais pour la stabilité des diagnostics.

Ouvert, documenté, auditable

La confiance commence
par ce que l’on peut vérifier.