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.
| Option | Signification |
|---|---|
--server URL | URL du serveur de licences (se rabat sur une session enregistrée, puis $MAGICLOCK_SERVER). |
--token TOKEN | Jeton Bearer (se rabat sur une session enregistrée, puis $MAGICLOCK_TOKEN). |
--with-token | Mode sans interface : lit un jeton émis depuis le portail via $MAGICLOCK_TOKEN ou stdin. |
--no-browser | Si 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.
| Option | Signification |
|---|---|
--offline | Saute 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é.
magiclock protect PATH [-o OUT] [--remove]
[--trial | --expires-in DURATION | --expires-at DATE]
[--lock-passphrase | --no-bind-machine [--passphrase | --emit-key]]| Option | Signification |
|---|---|
PATH | Un fichier .py ou un répertoire à protéger récursivement (.venv, venv, __pycache__, .git, dist, build sont ignorés automatiquement). |
-o, --out | Chemin de sortie (ou racine de sortie, pour les répertoires). |
--remove | Supprime le(s) fichier(s) .py en clair après chiffrement. |
--trial | Autodestruction fixe à 48 heures — pour les démonstrations. |
--expires-in DURATION | Cesse de se déchiffrer après une durée (par exemple 30d). |
--expires-at DATE | Cesse de se déchiffrer à une date (par exemple 2026-12-31). |
--lock-passphrase | Verrou à deux facteurs : cette machine et une phrase secrète. |
--no-bind-machine | Artefact portable — aucun verrouillage machine. |
--passphrase | Avec --no-bind-machine : déverrouillage par phrase secrète ($MAGICLOCK_PASSPHRASE ou une invite). |
--emit-key | Avec --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 :
| Option | Défaut | Signification |
|---|---|---|
PATH | — | Le fichier à chiffrer. |
-o, --out | <path>.enc | Chemin de sortie. |
--feature NAME | ai_model | La capacité de licence requise pour déverrouiller cet artefact. |
--remove | dé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.
| Option | Défaut | Signification |
|---|---|---|
entry | — | Fichier .py de point d'entrée. |
-o, --output-dir | dist | Répertoire de sortie du build. |
--source-root | le fichier d'entrée | Racine du projet à analyser/transformer. |
--module | activé | Compiler en extension native monofichier. |
--standalone | — | Compiler en répertoire d'application autonome à la place. Mutuellement exclusif avec --module. |
--no-compile | désactivé | Analyser + injecter + intégrer seulement, sauter la compilation native. |
--keep-tmp | désactivé | Conserver le répertoire de transformation intermédiaire. |
--model PATH | aucun | Chiffrer et embarquer un modèle (répétable). |
--model-lock-passphrase | désactivé | Verrou à deux facteurs pour les modèles embarqués (nécessite ≥ 1 --model). |
--model-trial / --model-expires-in / --model-expires-at | aucun | Expiration 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.
| Option | Défaut | Signification |
|---|---|---|
entry | — | Le fichier à exécuter. |
--app-version | 1.0.0 | Version de l'application, vérifiée contre tout max_app_version fixé par votre licence. |
--passphrase | désactivé | Demande une phrase secrète de déchiffrement (ou lit $MAGICLOCK_PASSPHRASE) — pour les artefacts portables ou à deux facteurs. |
--key KEY | — | Clé de déchiffrement d'un artefact portable (base64), ou lecture de $MAGICLOCK_DECRYPT_KEY. |
deactivate
Retire cette machine de votre compte.
| Option | Signification |
|---|---|
--local-only | Efface le coffre local sans libérer le siège ni révoquer côté serveur. |
--server URL | URL du serveur pour l'appel de libération. |
--token TOKEN | Jeton 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.
magiclock skill [--dir DIR] [--force] [--print]| Option | Signification |
|---|---|
--dir DIR | Racine du projet où installer (défaut : le répertoire courant). |
--force | Écrase un SKILL.md existant. |
--print | Affiche 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.
magiclock completion bash > /etc/bash_completion.d/magiclock
magiclock completion zsh > "${fpath[1]}/_magiclock"