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 的 Tab 鍵自動完成指令碼。

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