Vue d'ensemble
Ce que MagicLock protège, les deux niveaux de protection, et les concepts qui reviennent partout ailleurs dans cette documentation.
MagicLock est un outil en ligne de commande et un SDK Python qui chiffre votre code source Python et vos modèles d'IA, les place derrière une licence signée, et vérifie cette licence entièrement hors ligne à chaque exécution de votre logiciel. Vous installez un paquet, vous lancez une commande, et vous livrez.
Le modèle mental
Tout dans MagicLock se résume à deux questions indépendantes : quoi protéger, et quelle force de protection est nécessaire.
| Ce qui est protégé | Sortie | Force | |
|---|---|---|---|
| Niveau pratique | Source Python (.py) | .pya — un conteneur chiffré et verrouillé que le système d'import sait charger | Bonne — empêche la copie opportuniste ; le bytecode déchiffré existe en mémoire pendant l'exécution |
| Niveau compilé | Source Python, compilée | .so / .pyd natif, ou un répertoire d'application autonome | Forte — aucun Python en clair n'est livré, et la barrière de licence est insérée automatiquement dans chaque module compilé, au lieu d'être concentrée en un seul endroit qu'un attaquant pourrait trouver et neutraliser |
| Protection des modèles/ressources | Modèles, poids, tout actif binaire | .enc — une enveloppe chiffrée | S'applique aux deux niveaux ; le contenu en clair n'existe jamais qu'en mémoire |
Vous pouvez utiliser le niveau pratique pour mettre en place une protection en quelques minutes, puis passer plus tard au niveau compilé sans changer la façon dont votre code est écrit — la barrière du niveau compilé est insérée automatiquement, sans décorateur ni appel manuel à bootstrap() à ajouter.
Concepts fondamentaux
Quelques idées reviennent tout au long de cette documentation :
- Licence — une autorisation signée délivrée à votre compte : quelles capacités vous pouvez utiliser, et jusqu'à quand. Délivrée et vérifiée sans que vous ayez jamais à manipuler un fichier de clé directement.
- Liée à l'appareil (verrouillage machine) — par défaut, une licence — et tout ce qui est chiffré avec elle — est liée à la machine précise sur laquelle elle a été activée. Copiez le fichier chiffré sur une autre machine et il ne s'y déchiffrera pas.
- Activation — l'étape unique qui provisionne une machine sous votre compte. Elle est intégrée à votre premier appel
protect/build, si bien que vous la lancerez rarement à la main — voir Compte et activation. - Capacité — une permission nommée qu'une licence peut accorder (protection du code, chiffrement de modèles, etc.). La barrière d'exécution et
open_model()vérifient chacune la capacité dont elles ont besoin. - En ligne pour empaqueter, hors ligne pour exécuter — le chiffrement contacte le serveur de licences à chaque fois, il a donc besoin d'une connexion. Le déchiffrement, lui, n'a jamais besoin du réseau, jamais.
- Expiration — un contrôle optionnel et distinct porté par l'artefact chiffré lui-même — indépendant de votre licence — qui l'empêche de se déchiffrer après une date ou une durée.
Démarrage en 60 secondes
pip install magiclock
# First run: signs you in (opens a browser) and activates this machine,
# then encrypts. Every encrypt after that is instant and non-interactive.
magiclock protect app.py # -> app.pya
# Runs fully offline: no login, no network, ever.
magiclock run app.pyaVous préférez confier le travail à un agent IA ?
Si vous travaillez dans un agent de programmation IA comme Claude Code, lancez magiclock skill une seule fois — la commande installe une compétence de projet (.claude/skills/magiclock-protect/SKILL.md) qui enseigne à l'agent tout le workflow ci-dessus, afin qu'il puisse choisir un niveau de protection et protéger votre code à votre place.
magiclock skillPour aller plus loin
- Installation — prérequis, l'extra optionnel du niveau compilé, mise à niveau.
- Chiffrer le code —
protect/run, expiration, verrou à deux facteurs, artefacts portables. - Chiffrer les modèles et ressources —
protect-model,bootstrap(),open_model(). - Build compilé —
magiclock build, la barrière automatique par module, ce que vous pouvez livrer. - Compte et activation — activation sans configuration, CI, comportement hors ligne, révocation.
- Référence CLI et Référence de l'API Python — chaque commande, option et signature de fonction.
- Modèle de sécurité — ce que la barrière d'exécution vérifie réellement, et ses limites honnêtes.