Référence CLI

Chaque sous-commande et option de magiclock, au même endroit.

Tout tient en une seule commande : magiclock <subcommand> [options]. magiclock --version affiche la version installée ; magiclock seul affiche l'aide.

activate

Authentifie et provisionne cette machine. Idempotent — relançable sans risque.

OptionSignification
--server URLURL du serveur de licences (se rabat sur une session enregistrée, puis $MAGICLOCK_SERVER).
--token TOKENJeton Bearer (se rabat sur une session enregistrée, puis $MAGICLOCK_TOKEN).
--with-tokenMode sans interface : lit un jeton émis depuis le portail via $MAGICLOCK_TOKEN ou stdin.
--no-browserSi une connexion est nécessaire, affiche un lien + un code au lieu d'ouvrir un navigateur.

status

Affiche l'état du compte et de l'activation de cette machine.

OptionSignification
--offlineSaute l'aller-retour serveur en direct ; rapporte uniquement depuis l'état local.

protect

Chiffre un fichier .py (ou un répertoire, récursivement) en un .pya verrouillé.

shell
magiclock protect PATH [-o OUT] [--remove]
                  [--trial | --expires-in DURATION | --expires-at DATE]
                  [--lock-passphrase | --no-bind-machine [--passphrase | --emit-key]]
OptionSignification
PATHUn fichier .py ou un répertoire à protéger récursivement (.venv, venv, __pycache__, .git, dist, build sont ignorés automatiquement).
-o, --outChemin de sortie (ou racine de sortie, pour les répertoires).
--removeSupprime le(s) fichier(s) .py en clair après chiffrement.
--trialAutodestruction fixe à 48 heures — pour les démonstrations.
--expires-in DURATIONCesse de se déchiffrer après une durée (par exemple 30d).
--expires-at DATECesse de se déchiffrer à une date (par exemple 2026-12-31).
--lock-passphraseVerrou à deux facteurs : cette machine et une phrase secrète.
--no-bind-machineArtefact portable — aucun verrouillage machine.
--passphraseAvec --no-bind-machine : déverrouillage par phrase secrète ($MAGICLOCK_PASSPHRASE ou une invite).
--emit-keyAvec --no-bind-machine : affiche une clé générée pour une distribution hors bande, au lieu d'une phrase secrète.

--trial/--expires-in/--expires-at sont mutuellement exclusifs entre eux ; --lock-passphrase est mutuellement exclusif avec le groupe --no-bind-machine.

protect-model

Chiffre un modèle ou toute autre ressource dans une enveloppe .enc. Accepte les mêmes options d'expiration, --lock-passphrase et portables que protect, plus :

OptionDéfautSignification
PATHLe fichier à chiffrer.
-o, --out<path>.encChemin de sortie.
--feature NAMEai_modelLa capacité de licence requise pour déverrouiller cet artefact.
--removedésactivéSupprime le fichier en clair après chiffrement.

build

Compile une application en binaire natif, en insérant automatiquement la barrière de licence dans chaque module. Voir Build compilé pour le parcours complet.

OptionDéfautSignification
entryFichier .py de point d'entrée.
-o, --output-dirdistRépertoire de sortie du build.
--source-rootle fichier d'entréeRacine du projet à analyser/transformer.
--moduleactivéCompiler en extension native monofichier.
--standaloneCompiler en répertoire d'application autonome à la place. Mutuellement exclusif avec --module.
--no-compiledésactivéAnalyser + injecter + intégrer seulement, sauter la compilation native.
--keep-tmpdésactivéConserver le répertoire de transformation intermédiaire.
--model PATHaucunChiffrer et embarquer un modèle (répétable).
--model-lock-passphrasedésactivéVerrou à deux facteurs pour les modèles embarqués (nécessite ≥ 1 --model).
--model-trial / --model-expires-in / --model-expires-ataucunExpiration des modèles embarqués — mutuellement exclusifs entre eux.
--no-bind-machine (+ --passphrase / --emit-key)désactivéBuild portable — aucune barrière de licence compilée ; les modèles embarqués utilisent une clé/phrase secrète partagée au lieu de cette machine.

run

Exécute un .py ou un .pya, barrière comprise.

OptionDéfautSignification
entryLe fichier à exécuter.
--app-version1.0.0Version de l'application, vérifiée contre tout max_app_version fixé par votre licence.
--passphrasedésactivéDemande une phrase secrète de déchiffrement (ou lit $MAGICLOCK_PASSPHRASE) — pour les artefacts portables ou à deux facteurs.
--key KEYClé de déchiffrement d'un artefact portable (base64), ou lecture de $MAGICLOCK_DECRYPT_KEY.

deactivate

Retire cette machine de votre compte.

OptionSignification
--local-onlyEfface le coffre local sans libérer le siège ni révoquer côté serveur.
--server URLURL du serveur pour l'appel de libération.
--token TOKENJeton Bearer pour l'appel de libération.

skill

Installe une compétence Claude Code dans ce projet pour qu'un agent de programmation IA (comme Claude Code) sache le protéger avec MagicLock.

shell
magiclock skill [--dir DIR] [--force] [--print]
OptionSignification
--dir DIRRacine du projet où installer (défaut : le répertoire courant).
--forceÉcrase un SKILL.md existant.
--printAffiche le contenu de la compétence sur stdout au lieu d'écrire un fichier.

Écrit .claude/skills/magiclock-protect/SKILL.md, qui apprend à l'agent à choisir un niveau de protection et à piloter correctement protect/build pour votre projet.

completion

Affiche un script de complétion shell.

shell
magiclock completion bash > /etc/bash_completion.d/magiclock
magiclock completion zsh  > "${fpath[1]}/_magiclock"