iliyami/MacSai
iliyami/MacSai has 2,133 GitHub stars and 133 forks. GitHot measured +69 in 7 days. Last checked 2026-11-09 21:24 UTC. Last push 2026-10-29.
Comment ces chiffres sont mesurés
Mac Sai est un logiciel libre qui nettoie et optimise les Mac et détecte les logiciels malveillants. Développé avec Swift 6 et SwiftUI, il constitue une alternative gratuite à CleanMyMac et est notarié par Apple.
What you can do
- 🧹 Cleanup Smart Scan (one click) System Junk (16+ categories) Mail Attachments Trash Bins Project Junk (build folders) Disk Hogs (Docker, simulators) Clean History (one-click Restore) - 🛡️ Protection Malware Removal Privacy (browsers) Browser Extensions Saved Wi-Fi Permissions Overview - ⚡ Performance Optimization (login items) Maintenance (system tasks)
Progression mesurée des étoiles
- in 24h
- Mise à jour retardée
- in 7 days
- +69
- in 15 days
- Mise à jour retardée
- in 1 month
- Mise à jour retardée
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.fr.md
Original
Mac Sai
Le nettoyeur, optimiseur et scanner de logiciels malveillants open source pour Mac.
Une alternative gratuite et notariée par Apple à CleanMyMac, conçue avec Swift 6 et SwiftUI.
Téléchargé plus de 100 000 fois. Gratuit pour toujours, sans télémétrie.
English | 简体中文 | 繁體中文 | Deutsch | Français | Русский
Installez en une commande :
brew install --cask mac-sai
Ou récupérez le dernier DMG. Il est notarié par Apple, il s'ouvre donc directement, sans clic droit, sans avertissement, sans Terminal.
Jamais de pub dans l'application. Cette page propose un seul emplacement sponsor sélectionné, et il est libre.
Pourquoi Mac Sai ?
Un nettoyeur Mac complet ne devrait pas coûter un abonnement annuel ni vous demander de faire confiance à une boîte noire disposant d'un accès étendu à vos fichiers. Mac Sai vous offre toute la boîte à outils, à découvert.
- Gratuit, pour toujours. Pas d'abonnement, pas d'achats intégrés, pas de « passage à Pro », pas de fenêtres insistantes. Sous licence BSD-3.
- Zéro télémétrie. Pas d'analytique, pas de rapport de plantage, pas de traqueurs, aucun serveur où téléphoner. Et vous n'avez pas à nous croire sur parole, vérifiez-le vous-même en deux commandes.
- Chaque outil majeur de CleanMyMac, dans une seule app. 22 modules couvrant le nettoyage, la protection, les performances, les applications et l'analyse du disque, plus un widget dans la barre des menus.
- Sûr par conception. Suppression d'abord vers la corbeille, une liste de chemins protégés, des protections contre les liens symboliques et TOCTOU, et un
SafetyGuardqui valide chaque chemin. Conçu pour ne jamais perdre vos données. - Notarié par Apple et entièrement open source. Votre Mac vérifie la signature à chaque lancement, et chaque ligne est ici, à lire.
Fonctionnalités en un coup d'œil
🧹 Nettoyage
|
🛡️ Protection
|
⚡ Performances
|
📦 Applications
|
🗂️ Fichiers
|
📊 Barre des menus
|
Fonctionnalités en détail
🧹 Nettoyage
| Module | Ce que ça fait |
|---|---|
| Smart Scan | Un clic exécute ensemble les modules de nettoyage, de protection et de performances avec une progression en direct, puis montre exactement ce qui a été libéré par module |
| System Junk | 16+ catégories de scan : caches utilisateur et système, journaux, fichiers de langue, préférences corrompues, objets d'ouverture invalides, versions de documents, sauvegardes iOS, résidus Xcode, caches des gestionnaires de paquets / IDE / outils d'IA, restes d'utilisateurs supprimés, ainsi que l'amincissement des binaires universels (repère les binaires Mach-O gras contenant à la fois arm64 et x86_64 et les réécrit pour votre architecture native via lipo, en respectant l'annulation) |
| Mail Attachments | Trouve les pièces jointes mises en cache par Apple Mail, Outlook et Spark |
| Trash Bins | Vide la corbeille à chaque emplacement, y compris sur les disques externes |
| Project Junk | Trouve les dossiers de build régénérables dans vos projets : node_modules, .next, dist, target de Rust et Maven, build de Gradle, environnements virtuels Python et Pods de CocoaPods. Un dossier ne compte que si les fichiers voisins confirment le type de projet, et dist et Pods seulement si votre .gitignore les nomme. Tout part à la corbeille |
| Disk Hogs | Montre l'espace occupé par Docker et les simulateurs Xcode. Supprime les conteneurs arrêtés, les images orphelines et le cache de build orphelin (chacun après une confirmation), et supprime les simulateurs indisponibles et les anciens runtimes de simulateur. Les volumes Docker et le runtime le plus récent de chaque plateforme ne sont jamais touchés |
| Clean History | Liste vos nettoyages récents (les 30 derniers jours, jusqu'à 20) et remet un nettoyage entier hors de la corbeille en un clic. L'historique reste sur votre Mac dans ~/Library/Logs/MacClean/clean-history.json, lisible uniquement par votre compte utilisateur, et n'est jamais envoyé nulle part |
🛡️ Protection
| Module | Ce que ça fait |
|---|---|
| Malware Removal | Analyse par signatures à 3 profondeurs (Rapide / Équilibré / Approfondi) : agents et démons de lancement, paquets d'apps, extensions de navigateur et motifs connus d'adware/malware. Correspondance exacte de hachages avec les signatures Apple XProtect déjà présentes sur votre Mac, hors ligne, plus un flux optionnel de hachages MalwareBazaar (abuse.ch). Les extensions Safari de la liste de blocage d'Apple et les correspondances MalwareBazaar sont listées pour vérification, jamais présélectionnées (pas un antivirus, et il le dit) |
| Privacy | Nettoie l'historique, les cookies et le cache de Safari, Chrome et Firefox, avec des filtres temporels. Les favoris de Safari ne sont jamais touchés |
| Browser Extensions | Liste les extensions installées dans Safari, Chrome, Brave, Edge, Arc et Firefox. Les extensions Chromium et Firefox que vous avez installées vous-même peuvent aller à la corbeille quand le navigateur est fermé ; celles installées par une stratégie ou par le navigateur lui-même sont affichées mais laissées intactes. Les extensions Safari renvoient vers les réglages de Safari |
| Saved Wi-Fi | Liste vos réseaux sans fil préférés et oublie ceux que vous choisissez |
| Permissions Overview | Une vue en lecture seule, par app, des autorisations de confidentialité (TCC) détenues par chaque app, l'angle que les Réglages Système ne vous donnent pas. Chaque action renvoie vers les Réglages Système, qui possèdent les interrupteurs |
⚡ Performances
| Module | Ce que ça fait |
|---|---|
| Optimization | Gère les objets d'ouverture et les agents de lancement avec activation/désactivation par élément |
| Maintenance | Tâches système : libérer la RAM, exécuter les scripts de maintenance, vérifier le disque de démarrage, reconstruire Launch Services, réindexer Spotlight, vider le DNS, amincir les instantanés Time Machine. Les tâches sont étiquetées par gravité, « Exécuter les tâches sûres » est séquentiel, et le mot de passe administrateur est demandé une seule fois |
📦 Applications
| Module | Ce que ça fait |
|---|---|
| Uninstaller | Un moteur de correspondance par motifs qui trouve chaque fichier associé dans 17+ sous-dossiers de Library (y compris les apps imbriquées dans des sous-dossiers d'éditeur). Suppression complète, Réinitialiser aux valeurs par défaut (effacer les caches et préférences d'une app tout en la conservant) et détection des apps inutilisées |
| Unused Apps | Trouve les apps que vous n'avez pas ouvertes depuis 3, 6 ou 12 mois, d'après la date de dernière utilisation de Spotlight, triées par taille. Les apps en cours d'exécution ne sont jamais listées, et quand Spotlight n'a pas de données d'utilisation, il le dit au lieu de deviner. Un clic confie une app à l'Uninstaller |
| Extensions | Passez en revue les volets de préférences tiers, les modules Internet et les extensions Safari. Les volets et modules installés par l'utilisateur peuvent aller à la corbeille |
| Updater | Vérifie les mises à jour des apps installées via leurs propres flux d'appcast Sparkle (lit uniquement les informations de version, n'envoie rien vous concernant) |
🗂️ Fichiers
| Module | Ce que ça fait |
|---|---|
| Space Lens | Visualisation en treemap carré de l'utilisation du disque avec navigation par exploration |
| Large & Old Files | Trouve les fichiers de plus de 50 Mo, triés par taille et date de dernier accès |
| Duplicates | Détection progressive (regroupement par taille, SHA-256 partiel, hachage complet, vérification d'inode), plus un mode Consolider qui récupère de l'espace avec des clones APFS en copie sur écriture sans supprimer une seule copie |
| Shredder | Effacement sécurisé de fichiers avec les modes standard, permanent et réécriture sécurisée |
📊 Widget de la barre des menus
Un widget de barre des menus au style glassmorphisme qui met les constantes vitales de votre Mac à un clic. C'est un processus indépendant qui se lance à l'ouverture de session et se bascule depuis la barre latérale de l'app, vous n'avez donc jamais à ouvrir la fenêtre principale juste pour jeter un œil.
- Anneaux de statistiques en direct : charge CPU, pression mémoire, utilisation du disque et batterie dans une grille d'anneaux 2x2 (
host_processor_info,vm_statistics64, capacité APFS, source d'alimentation IOKit), graduée en couleur du vert à l'ambre au rouge - Affichage configurable : montrez l'espace disque libre, l'utilisation du GPU, l'utilisation de la mémoire ou la température de la batterie ; le choix persiste, et les capteurs indisponibles affichent
-- - Réseau, temps de fonctionnement et swap : débit montant/descendant en temps réel, temps de fonctionnement du système, utilisation du swap
- Recommandations : conseils actionnables et masquables (« Les caches utilisateur ont atteint 2,52 Go, lancez System Junk »), une touche pour agir, supprimés pendant 30 jours une fois masqués
- Statut de protection : heure du dernier scan de logiciels malveillants et nombre de menaces, codé en couleur selon la fraîcheur
- Appareils connectés : volumes externes (avec espace libre) et écrans en un coup d'œil
- Alertes de santé : notifications limitées et optionnelles lorsque le disque devient critiquement plein ou que la pression mémoire reste élevée
⌨️ Raccourcis clavier
| Raccourci | Action |
|---|---|
| ⌘R | Démarrer un scan dans le module actuel |
| ⌘K | Nettoyer la sélection actuelle (quand des résultats sont affichés) |
| ⌘1 à ⌘9 | Sauter aux neuf premiers modules de la barre latérale |
| ⌘, | Ouvrir les Réglages |
Comment Mac Sai se compare
| Mac Sai | CleanMyMac | Pearcleaner | PureMac | OnyX | Mole | |
|---|---|---|---|---|---|---|
| Prix | Gratuit | 39,95 $/an | Gratuit | Gratuit | Gratuit | Gratuit (CLI) |
| Open source | ✅ BSD-3 | ❌ | ✅ Fair-code | ✅ MIT | ❌ | ✅ MIT |
| Télémétrie | ❌ Aucune | ⚠️ Oui | ❌ Aucune | ❌ Aucune | ❌ Aucune | ❌ Aucune |
| App GUI native | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ CLI (GUI payante séparée) |
| Smart Scan (un clic) | ✅ | ✅ | ❌ | ➖ Partiel | ❌ | ➖ CLI interactive |
| System Junk (16+ catégories) | ✅ | ✅ | ➖ | ✅ | ➖ Limité | ✅ |
| Amincissement des binaires universels | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Scanner de logiciels malveillants | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Nettoyeur de confidentialité des navigateurs | ✅ | ✅ | ❌ | ❌ | ➖ | ❌ |
| Désinstalleur avec détection des restes | ✅ | ✅ | ✅ Spécialisé | ❌ | ❌ | ✅ |
| Recherche de doublons (+ consolidation) | ✅ | ➖ | ❌ | ❌ | ❌ | ❌ |
| Visualiseur treemap du disque | ✅ | ❌ | ❌ | ❌ | ❌ | ➖ Analyseur |
| Moniteur système dans la barre des menus | ✅ | ✅ Menu | ❌ | ❌ | ❌ | ❌ |
| Scripts de maintenance | ✅ | ✅ | ❌ | ❌ | ✅ Robuste | ➖ |
| Notarié par Apple | ✅ | ✅ | ✅ | ✅ | ✅ | N/D |
| Version de macOS | 14+ | 13+ | 13+ | 13+ | variable | variable |
CleanMyMac est un excellent produit, et ceux qui veulent une expérience soignée et prise en charge devraient volontiers payer pour cela. Mac Sai est pour tous ceux qui préfèrent un code source transparent et zéro abonnement.
Langues de l'interface
Choisissez System, Deutsch, Français, Русский, 简体中文, 繁體中文 ou English dans Réglages → Langue de l'interface. L'allemand, le français et le chinois traditionnel traduisent les textes statiques de l'interface ; les messages interpolés conservent pour l'instant le texte anglais et ses règles de pluriel (le chinois traditionnel se rabat sur le simplifié). La fenêtre principale et le widget de la barre des menus partagent le réglage de langue.
Installation
Homebrew (recommandé)
Mac Sai est dans le cask Homebrew officiel, aucun tap n'est donc nécessaire :
brew install --cask mac-sai
Il est notarié par Apple, il se lance donc depuis Spotlight ou le dossier Applications sans avertissement et sans étape supplémentaire.
Autres façons d'installer (script en une ligne, DMG, compilation depuis les sources)
Installateur en une ligne
curl -fsSL https://raw.githubusercontent.com/iliyami/MacSai/main/scripts/install.sh | bash
Télécharge le dernier DMG et installe l'app dans /Applications.
Téléchargement du DMG
Récupérez le dernier DMG depuis les Releases et glissez Mac Sai dans votre dossier Applications.
Compiler depuis les sources
git clone https://github.com/iliyami/MacSai.git
cd MacSai
swift build
swift test # exécuter la suite complète de 1048 tests
bash scripts/build-dmg.sh # compiler un DMG local (non signé)
Nécessite la chaîne d'outils Swift 6 (Xcode 16+).
Installé via l'ancien tap ?
Mac Sai est maintenant dans le cask officiel, vous pouvez donc retirer le tap : brew untap iliyami/macsai (votre app installée et les futurs brew upgrade ne sont pas affectés).
Accorder l'accès complet au disque
Quelques modules (Mail Attachments, Privacy, Malware) ont besoin de l'accès complet au disque pour scanner les zones protégées :
- Ouvrez Réglages Système, Confidentialité et sécurité, Accès complet au disque
- Cliquez sur + et ajoutez Mac Sai.app
- Redémarrez Mac Sai
Désinstaller
Installation Homebrew :
brew uninstall --zap --cask mac-sai
Installation DMG ou manuelle (gère aussi une installation Homebrew) :
curl -fsSL https://raw.githubusercontent.com/iliyami/MacSai/main/scripts/uninstall.sh | bash
Les deux retirent Mac Sai ainsi que ses préférences, caches, journaux et base de données sous ~/Library.
Signé, notarié, et digne de votre confiance
Mac Sai est signé avec un Developer ID Apple et notarié par Apple. Cela compte davantage pour une app de nettoyage que pour presque tout ce que vous installez, car vous êtes sur le point de lui donner un accès étendu à vos fichiers, et vous méritez de savoir que ce qui s'exécute sur votre Mac est vraiment le nôtre et non altéré. Tout cela est imposé par votre propre Mac, pas seulement promis par nous :
- Apple l'a analysé. Chaque version est soumise à Apple et vérifiée contre les logiciels malveillants avant d'être publiée.
- Il ne peut pas être altéré. La signature est un sceau cryptographique sur chaque fichier ; changez un seul octet et macOS refuse de l'ouvrir.
- Il provient incontestablement de nous. La signature est liée à notre identité Apple Developer, personne d'autre ne peut donc publier quelque chose que votre Mac accepte comme Mac Sai.
- Ça marche, tout simplement. Pas d'avertissement Gatekeeper, pas de clic droit pour ouvrir, pas de Terminal.
Associé à un code entièrement open source, c'est une chaîne de confiance que vous ne prenez pas sur parole : le code est public, nous signons chaque version, Apple la vérifie, et votre Mac revérifie le sceau à chaque ouverture de l'app.
Vérifiez l'absence de télémétrie vous-même
Ne nous croyez pas sur parole. Le code source comme le processus en cours d'exécution sont vérifiables.
1. Cherchez dans le code les API réseau
rg -n 'URLSession|NSURLConnection|Sparkle|SecTrustEvaluate' Sources --glob '*.swift'
Les accès réseau facultatifs sont indiqués ci-dessous. Le nettoyage local n’envoie ni résultats d’analyse ni listes de fichiers :
Sources/MacClean/Services/SelfUpdateController.swift: Sparkle consulte le flux HTTPS inscrit dans l’application signée et télécharge les notes de version et les archives de mise à jour signées. La recherche automatique et le téléchargement/installation automatiques sont des réglages distincts ; le profilage système et JavaScript dans les notes sont désactivés. Voir la configuration des mises à jour. Pour les installations directes configurées, la recherche automatique des mises à jour est activée par défaut et a lieu une fois par jour ; chaque requête contient les versions de l’application et de Sparkle dans le User-Agent, et cette recherche peut être désactivée dans Réglages.Sources/MacCleanKit/UpdateChecker.swift: les vérifications Homebrew et la page des versions en solution de repli pour les builds sans flux signé configuréSources/MacClean/Modules/Updater/UpdaterModule.swift: la vérification, déclenchée par l'utilisateur, des flux Sparkle d'autres apps lorsque vous ouvrez l'UpdaterSources/MacCleanKit/MalwareBazaarFeed.swift: le téléchargement optionnel des hachages MalwareBazaar. Il ne s'exécute que si vous ajoutez votre propre Auth-Key abuse.ch et cliquez sur Mettre à jour maintenant dans Réglages > Bases de logiciels malveillants. Chaque requête n'envoie que votre Auth-Key et la requête, jamais de hachages ni de chemins de fichiers. Lorsqu'un hachage téléchargé correspond à un fichier signé, macOS demande à Apple si son certificat de signature a été révoqué, la même vérification que celle de Gatekeeper ; cette requête porte sur le certificat, pas sur vos fichiers
Il n'y a aucun SDK d'analytique, de rapport de plantage ou de traqueur nulle part dans le code.
2. Observez le processus en direct
(
MACSAI_APP=$(cd "/Applications/Mac Sai.app" && pwd -P) || exit 1
MACSAI_PIDS=$(ps -ww -axo pid=,comm= | awk -v bundle="$MACSAI_APP/" '
{ pid=$1; sub(/^[[:space:]]*[0-9]+[[:space:]]+/, "")
if (index($0, bundle) == 1) print pid }' | paste -sd, -)
if [ -n "$MACSAI_PIDS" ]; then
ps -p "$MACSAI_PIDS" -o pid=,comm=
lsof -nP -a -p "$MACSAI_PIDS" -i
else
echo "No running executables from this Mac Sai bundle"
fi
)
Cet instantané sélectionne les PID selon le chemin des exécutables dans le paquet choisi, ce qui exclut les processus Installer/Updater sans rapport. Les assistants Sparkle copiés ailleurs et les services de confiance de macOS sont hors de cette sélection ; utilisez un pare-feu qui distingue les processus pour les observer. Exécutez la commande pendant une recherche ou un téléchargement pour voir les connexions brèves.
Lorsque les vérifications/téléchargements de mises à jour et la vérification facultative des logiciels malveillants sont inactifs, le nettoyage local n’ouvre aucune connexion réseau. Pendant une mise à jour, observez aussi les sous-processus Sparkle ; les vérifications de certificats Apple passent par les services de confiance de macOS. Little Snitch ou LuLu permettent également de les visualiser.
3. Inspectez le binaire que vous avez réellement installé
Pour une installation par DMG ou Homebrew, cette boucle ne demande que les outils en ligne de commande de macOS, sans copie du code ni Python. Elle lit les sept binaires fournis et affiche les imports réseau courants, les URL statiques et les chaînes de traceurs pour une inspection manuelle :
(
MACSAI_APP="/Applications/Mac Sai.app"
MACSAI_SPARKLE="$MACSAI_APP/Contents/Frameworks/Sparkle.framework/Versions/B"
for MACSAI_BINARY in \
"$MACSAI_APP/Contents/MacOS/MacClean" \
"$MACSAI_APP/Contents/Library/LoginItems/MacCleanMenu.app/Contents/MacOS/MacCleanMenu" \
"$MACSAI_SPARKLE/Sparkle" "$MACSAI_SPARKLE/Autoupdate" \
"$MACSAI_SPARKLE/Updater.app/Contents/MacOS/Updater" \
"$MACSAI_SPARKLE/XPCServices/Downloader.xpc/Contents/MacOS/Downloader" \
"$MACSAI_SPARKLE/XPCServices/Installer.xpc/Contents/MacOS/Installer"
do
printf '\n%s\n' "$MACSAI_BINARY"
MACSAI_IMPORTS=$(nm -uj "$MACSAI_BINARY") || exit 1
printf '%s\n' "$MACSAI_IMPORTS" | grep -Ei \
'URLSession|URLConnection|CFNetwork|Network|nw_|DNSService|NetService|curl_|^_(socket|connect|connectx|send|recv)([$]|$)' || true
MACSAI_STRINGS=$(strings -a "$MACSAI_BINARY") || exit 1
printf '%s\n' "$MACSAI_STRINGS" | grep -Ei \
'://|sentry|firebase|mixpanel|amplitude|bugsnag|crashlytics|posthog|appsflyer' || true
done
)
Ces listes ne constituent pas un verdict automatique ni la preuve que toutes les destinations choisies à l’exécution sont visibles. Utilisez le contrôle ci-dessous pour l’inventaire complet, les listes d’autorisation explicites et les réglages de confidentialité intégrés.
Exécutez le contrôle depuis une copie du code correspondant à la version installée. Il inspecte le véritable paquet de l’application : exécutable principal, assistant de barre des menus, Sparkle.framework, Autoupdate, Updater.app, Downloader.xpc et Installer.xpc :
bash scripts/check-network-surface.sh "/Applications/Mac Sai.app"
Résultat attendu : sept fichiers Mach-O vérifiés. Un binaire manquant ou inattendu, un import réseau ou une URL statique non autorisés, ou un marqueur de traqueur font échouer le contrôle. Les imports URLSession sont autorisés dans Mac Sai, son assistant de barre des menus, Sparkle et Downloader ; les autres assistants Sparkle n’ont aucun import réseau autorisé. Les liens de documentation et l’espace de noms XML de Sparkle sont explicitement répertoriés, sans être considérés comme des adresses de téléchargement.
Le script affiche aussi la SUFeedURL intégrée et vérifie l’exigence de signature du flux, la vérification avant extraction et les réglages de confidentialité. Comparez les adresses d’archives/notes de ce flux et les flux des autres apps que vous consultez aux connexions observées. Les adresses de repli sont api.github.com/repos/iliyami/MacSai/releases/latest et formulae.brew.sh/api/cask/mac-sai.json ; celle de la base facultative est mb-api.abuse.ch/api/v1/. Les liens du projet, de soutien et des paramètres du navigateur s’ouvrent à votre demande. Le même contrôle du paquet complet s’exécute lors de sa création ; la CI vérifie les deux exécutables compilés et les cinq binaires de la version Sparkle épinglée. Implémentation et listes d’autorisation.
Architecture
Mac Sai
├── MacClean App SwiftUI principale (22 modules)
├── MacCleanKit Framework partagé (modèles, constantes, protocoles)
├── MacCleanHelper Assistant XPC privilégié (LaunchDaemon pour les opérations root)
└── MacCleanMenu Moniteur de barre des menus (processus indépendant)
Pile technique
| Couche | Technologie |
|---|---|
| Langage | Swift 6 avec concurrence stricte |
| UI | Hybride SwiftUI + AppKit |
| Concurrence | Actors, TaskGroup, async/await, @Sendable |
| Base de données | GRDB.swift (SQLite) en mode WAL |
| Analyse de fichiers | Préchargement URLResourceKey sur APFS |
| Mises à jour incrémentielles | FSEvents avec relecture historique |
| Opérations privilégiées | SMAppService + NSXPCConnection |
| Statistiques système | API Mach (host_processor_info, vm_statistics64, proc_pidinfo) |
Modèle de sécurité
Mac Sai est conçu pour ne jamais causer de perte de données :
- Liste de chemins protégés :
/System,/usr,/bin,/sbinet les apps système Apple sont intouchables, les firmlinks macOS étant canonicalisés pour que la détection de redirection par lien symbolique ne déclenche pas de faux positif sur des chemins système légitimes - Filtre de nettoyabilité avant scan : les éléments que le processus actuel ne pourrait pas mettre à la corbeille (enfants appartenant à root des caches système, dossiers
~/Library/Caches/com.apple.*sous coffre de données) sont écartés au moment du scan pour ne jamais apparaître comme nettoyables - Suppression d'abord vers la corbeille : chaque suppression va à la corbeille par défaut, et un mode simulation prévisualise sans rien toucher
- Prévention TOCTOU : les liens symboliques sont réévalués immédiatement avant la suppression
- Dossiers exclus : choisissez dans les Réglages des dossiers que les scans ignorent entièrement, et
SafetyGuardrefuse en plus de supprimer quoi que ce soit en dessous - Nettoyage par lots annulable : les grandes sélections sont découpées en blocs de 5k éléments qui respectent l'annulation entre les blocs, et les scans reviennent au repos en une seconde environ lorsque vous cliquez sur Annuler
- Journal d'activité intégré : chaque erreur durant un nettoyage est journalisée avec son chemin complet, consultable et copiable depuis l'écran post-nettoyage, purgé automatiquement après 30 jours
- Barrière XPC imposée par le noyau : l'assistant privilégié utilise
NSXPCListener.setCodeSigningRequirementafin que le noyau lui-même rejette toute connexion dont la signature de code ne correspond pas à l'identifiant et à l'équipe de l'app
Tests
swift test
La suite XCTest compte 1048 tests et traite SafetyGuard et CleaningEngine (les fichiers de vie ou de mort) comme devant être parfaits : couverture adversariale des liens symboliques, de la traversée de chemins, des octets NULL, de SIP, des apps protégées, des plafonds de nombre de fichiers, du TOCTOU et de l'idempotence, plus une couverture d'intégration du nettoyage en simulation / corbeille / permanent, de la machine à états du scan, de chaque catégorie de System Junk, des calculs de treemap, du moteur de correspondance du désinstalleur, de la détection des doublons, de l'analyse d'appcast, et de cycles complets de bout en bout de la préparation au nettoyage. Les fixtures (withTempHome, withFakeApp, withFakePlist) gardent chaque test hors de votre vrai dossier personnel.
Contribuer
Les contributions sont très bienvenues. Lisez les Directives de contribution, puis :
- Forkez le dépôt et créez une branche de fonctionnalité
- Faites votre modification (une modification ciblée par PR facilite la revue)
- Exécutez
swift test - Ouvrez une Pull Request
Il y a aussi un vote de fonctionnalités ouvert : mettez un 👍 sur les outils que vous voulez voir construits ensuite.
Licence
BSD 3-Clause. Voir LICENSE. Vous pouvez utiliser, modifier et redistribuer le code, à condition de conserver le texte de copyright et de licence et de ne pas utiliser le nom « Mac Sai » ni les noms des contributeurs pour promouvoir des produits dérivés sans autorisation.
Remerciements
Inspiré par la communauté open source des utilitaires Mac :
- Pearcleaner : motifs du désinstalleur d'apps
- Mole : catégories de nettoyage
- Tencent Lemon Cleaner : architecture modulaire
- Algorithme de treemap carré de Bruls, Huizing et van Wijk (2000)
Soutien et sponsors
Mac Sai est gratuit et le restera : pas de version payante, pas de pub, pas de pistage. S'il vous a évité un abonnement à un nettoyeur, vous pouvez m'offrir un café ☕ ou devenir membre. Cela permet de continuer à publier des versions signées et notariées.
Soutiens
Les membres reçoivent les coulisses du développement, un aperçu de chaque version, des bêtas sur demande et leur nom dans l'application. Rien dans l'application n'est jamais réservé aux membres.
Aucun membre pour l'instant. Soyez le premier →
Les membres Power User et Team sont remerciés ici. Tout le monde figure dans SUPPORTERS.md (en anglais).
Emplacement sponsor
Mac Sai propose un seul emplacement sponsor, affiché ici et en haut de cette page, dans toutes les langues de ce README.
100 000+téléchargements |
2 000+étoiles GitHub |
17 000pages vues par mois |
6langues du README |
La plupart des visiteurs sont des développeurs et des utilisateurs avancés de Mac, venus surtout de la recherche Google, puis de YouTube, GitHub et Reddit.
- Un seul sponsor à la fois, pour que votre nom ne se perde pas dans un mur de logos.
- Sélectionné. Outils pour développeurs, produits de confidentialité et de sécurité, et apps Mac qui respectent leurs utilisateurs. Pas de nettoyeurs ni d'« optimiseurs », pas de crypto, pas d'affiliation VPN, rien qui piste les gens.
- Jamais dans l'application. Mac Sai n'a ni pub ni télémétrie, et aucun sponsor n'y changera rien.
Cet emplacement est libre. Devenir sponsor →
Audience et candidature : SPONSORS.md (en anglais)
Historique des étoiles
Mac Sai est un logiciel libre construit par la communauté, pour la communauté.
S'il vous a évité un abonnement, une ⭐ aide les autres à le trouver, et un café ☕ le fait vivre.
Explorer des projets similaires
trimstray/the-book-of-secret-knowledge
Une collection de listes inspirantes, de manuels, d’antisèches, de blogs, d’astuces, de commandes en une ligne, d’outils CLI et web, et plus encore.
257,570 étoilesHack-with-Github/Awesome-Hacking
Une collection de diverses listes awesome pour les hackers, les pentesters et les chercheurs en sécurité.
125,103 étoilesswisskyrepo/PayloadsAllTheThings
Une liste de payloads et de méthodes de contournement utiles pour la sécurité des applications web et le pentest/CTF.
82,583 étoilescaddyserver/caddy
Serveur web HTTP/1-2-3 rapide, extensible et multiplateforme, avec HTTPS automatique
78,959 étoiles