CLI 速查

magiclock 的每一个子命令和参数,都在这一页。

一切都是同一个命令:magiclock <子命令> [选项]magiclock --version 打印已安装版本;直接执行 magiclock 打印帮助。

activate

认证并把这台机器纳入账号——幂等,可以放心重复执行。

参数含义
--server URL授权服务器地址(依次回退到已保存的会话、$MAGICLOCK_SERVER)。
--token TOKENBearer 令牌(依次回退到已保存的会话、$MAGICLOCK_TOKEN)。
--with-token无人值守模式:从 $MAGICLOCK_TOKEN 或标准输入读取一个门户铸造的令牌。
--no-browser需要登录时打印链接 + 验证码,而不是打开浏览器。

status

查看这台机器的账号与激活状态。

参数含义
--offline跳过与服务器的实时往返,只根据本地状态汇报。

protect

把一个 .py 文件(或一整个目录,递归处理)加密成带闸门的 .pya

shell
magiclock protect PATH [-o OUT] [--remove]
                  [--trial | --expires-in DURATION | --expires-at DATE]
                  [--lock-passphrase | --no-bind-machine [--passphrase | --emit-key]]
参数含义
PATH要保护的 .py 文件,或要递归保护的目录(.venvvenv__pycache__.gitdistbuild 会被自动跳过)。
-o, --out输出路径(目录模式下是输出根目录)。
--remove加密后删除明文 .py 文件。
--trial固定 48 小时自毁——用于演示。
--expires-in DURATION一段时长后停止解密(如 30d)。
--expires-at DATE到指定日期后停止解密(如 2026-12-31)。
--lock-passphrase二因子锁:这台机器加上一个口令。
--no-bind-machine便携产物——不绑定机器。
--passphrase配合 --no-bind-machine:用口令解锁(读取 $MAGICLOCK_PASSPHRASE,否则交互式提示)。
--emit-key配合 --no-bind-machine:打印一个生成好的密钥用于带外分发,而不是用口令。

--trial/--expires-in/--expires-at 彼此互斥;--lock-passphrase--no-bind-machine 一组参数互斥。

protect-model

把一个模型或任意资源加密成 .enc 信封。有效期、--lock-passphrase、便携相关参数与 protect 相同,另外还有:

参数默认值含义
PATH要加密的文件。
-o, --out<path>.enc输出路径。
--feature NAMEai_model解锁这个产物所需的授权能力。
--remove关闭加密后删除明文文件。

build

把应用编译成原生二进制,授权闸门自动插入每一个模块。完整流程见编译强档

参数默认值含义
entry入口 .py 文件。
-o, --output-dirdist构建输出目录。
--source-root入口文件所在目录要扫描/转换的项目根目录。
--module开启编译成单文件原生扩展。
--standalone改为编译成自包含的应用目录,与 --module 互斥。
--no-compile关闭只做扫描 + 注入 + 内嵌,跳过原生编译。
--keep-tmp关闭保留中间转换目录。
--model PATH加密并打包一个模型(可重复)。
--model-lock-passphrase关闭给打包的模型加二因子锁(需要至少一个 --model)。
--model-trial / --model-expires-in / --model-expires-at打包模型的有效期——彼此互斥。

run

运行一个 .py.pya,闸门检查随之进行。

参数默认值含义
entry要运行的文件。
--app-version1.0.0应用版本,会与你授权设置的 max_app_version 做比对。
--passphrase关闭提示输入解密口令(或读取 $MAGICLOCK_PASSPHRASE)——用于便携或二因子产物。
--key KEY便携产物的解密密钥(base64),或读取 $MAGICLOCK_DECRYPT_KEY

deactivate

把这台机器从你的账号中移除。

参数含义
--local-only只清空本地凭据,不释放席位、不通知服务器吊销。
--server URL用于释放请求的服务器地址。
--token TOKEN用于释放请求的 Bearer 令牌。

completion

打印 shell 自动补全脚本。

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