CLI リファレンス
magiclock のすべてのサブコマンドとフラグを、一箇所にまとめました。
すべては 1 つのコマンドに集約されています:magiclock <subcommand> [options]。magiclock --version はインストール済みのバージョンを表示し、引数なしの magiclock はヘルプを表示します。
activate
このマシンの認証とプロビジョニングを行います。冪等であり、再実行しても安全です。
| フラグ | 意味 |
|---|---|
--server URL | ライセンスサーバーの URL(保存済みセッション、次に $MAGICLOCK_SERVER にフォールバック)。 |
--token TOKEN | Bearer トークン(保存済みセッション、次に $MAGICLOCK_TOKEN にフォールバック)。 |
--with-token | ヘッドレスモード:$MAGICLOCK_TOKEN または標準入力からポータル発行のトークンを読み取ります。 |
--no-browser | サインインが必要な場合、ブラウザを開く代わりにリンクとコードを表示します。 |
status
このマシンのアカウントと有効化状態を表示します。
| フラグ | 意味 |
|---|---|
--offline | サーバーへの通信をスキップし、ローカルの状態のみから報告します。 |
protect
.py ファイル(またはディレクトリを再帰的に)を、ゲートで保護された .pya に暗号化します。
magiclock protect PATH [-o OUT] [--remove]
[--trial | --expires-in DURATION | --expires-at DATE]
[--bind-machine [--passphrase] | --passphrase | --emit-key]| フラグ | 意味 |
|---|---|
PATH | 保護対象の .py ファイル、または再帰的に保護するディレクトリ(.venv、venv、__pycache__、.git、dist、build は自動的にスキップされます)。 |
-o, --out | 出力パス(ディレクトリの場合は出力先のルート)。 |
--remove | 暗号化後に平文の .py ファイルを削除します。 |
--trial | 固定 48 時間の自己消去 — デモ用。 |
--expires-in DURATION | 指定した期間の経過後、復号を停止します(例:30d)。 |
--expires-at DATE | 指定した日付以降、復号を停止します(例:2026-12-31)。 |
| (バインド系フラグなし) | デフォルト:鍵なしポータブル — magiclock がインストールされた任意のマシンで復号できます。ロックもシークレットもありません。 |
--bind-machine | マシンロック形式の成果物:この有効化済みマシンでのみ復号できます。--passphrase を重ねれば二要素ロック(このマシンおよびパスフレーズ)になります。 |
--passphrase | パスフレーズで解錠($MAGICLOCK_PASSPHRASE、またはプロンプト)— 単独ではポータブル、--bind-machine と併用すれば第二要素。 |
--emit-key | 生成済みキーで解錠するポータブル形式の成果物 — キーは帯域外配布用に表示されます。 |
--trial/--expires-in/--expires-at は互いに排他的です。--passphrase と --emit-key は互いに排他的で、--emit-key は --bind-machine と併用できません。
protect-model
モデルまたはその他のリソースを .enc エンベロープへ暗号化します。protect と同じ有効期限系フラグとバインド系フラグ(デフォルトは鍵なしポータブル、--passphrase/--emit-key、--bind-machine〔+ --passphrase〕)に加えて、以下を取ります。
| フラグ | デフォルト | 意味 |
|---|---|---|
PATH | — | 暗号化するファイル。 |
-o, --out | <path>.enc | 出力パス。 |
--feature NAME | ai_model | この成果物を解錠するために必要なライセンスケーパビリティ。 |
--remove | off | 暗号化後に平文ファイルを削除します。 |
build
アプリをネイティブバイナリへコンパイルし、ライセンスゲートをすべてのモジュールへ自動で組み込みます。詳しい手順はコンパイルビルドを参照してください。
| フラグ | デフォルト | 意味 |
|---|---|---|
entry | — | エントリーポイントとなる .py ファイル。 |
-o, --output-dir | dist | ビルド出力ディレクトリ。 |
--source-root | エントリーファイル | 走査・変換対象のプロジェクトルート。 |
--module | on | 単一ファイルのネイティブ拡張としてコンパイル。 |
--standalone | — | 単一モジュールの代わりに、自己完結型のアプリディレクトリとしてコンパイル。--module とは排他的。 |
--no-compile | off | 走査・注入・埋め込みのみを行い、ネイティブコンパイルはスキップ。 |
--keep-tmp | off | 変換用の中間ディレクトリを保持。 |
--model PATH | none | モデルを暗号化してバンドル(複数回指定可能)。 |
--model-lock-passphrase | off | バンドルしたモデルの二要素ロック(--model を 1 つ以上と --bind-machine の指定が必要)。 |
--model-trial / --model-expires-in / --model-expires-at | none | バンドルしたモデルの有効期限 — 互いに排他的。 |
--bind-machine | off | マシンロックビルド:ライセンスゲートをすべてのモジュールへ組み込み、このマシンのボールト下でのみ動作。指定しない場合(デフォルト)はポータブルビルド — ゲートなし、どこでも動作、モデルは鍵なし。 |
--passphrase / --emit-key | off | ポータブルビルド専用:バンドルしたモデルを、鍵なしのデフォルトの代わりにパスフレーズ導出キーまたは生成キーで暗号化。 |
run
.py または .pya を、ゲートを含めて実行します。
| フラグ | デフォルト | 意味 |
|---|---|---|
entry | — | 実行するファイル。 |
--app-version | 1.0.0 | アプリのバージョン。ライセンスが設定する max_app_version と照合されます。 |
--passphrase | off | 復号用のパスフレーズをプロンプトで入力(または $MAGICLOCK_PASSPHRASE を読み取り)— ポータブルまたは二要素の成果物向け。 |
--key KEY | — | ポータブル成果物の復号キー(base64)、または $MAGICLOCK_DECRYPT_KEY を読み取り。 |
deactivate
このマシンをあなたのアカウントから削除します。
| フラグ | 意味 |
|---|---|
--local-only | サーバー上のシート解放や失効を行わずに、ローカルのボルトのみをクリアします。 |
--server URL | 解放リクエスト用のサーバー URL。 |
--token TOKEN | 解放リクエスト用の Bearer トークン。 |
skill
このプロジェクトに Claude Code 用のスキルをインストールし、AI コーディングエージェント(Claude Code など)が MagicLock でこのプロジェクトを保護する方法を理解できるようにします。
magiclock skill [--dir DIR] [--force] [--print]| フラグ | 意味 |
|---|---|
--dir DIR | インストール先のプロジェクトルート(デフォルト: カレントディレクトリ)。 |
--force | 既存の SKILL.md を上書きします。 |
--print | ファイルに書き込む代わりに、スキルの内容を標準出力に表示します。 |
.claude/skills/magiclock-protect/SKILL.md を書き込み、どの保護レベルを選ぶべきか、protect/build をどう実行すべきかをエージェントに教えます。
completion
シェルのタブ補完スクリプトを表示します。
magiclock completion bash > /etc/bash_completion.d/magiclock
magiclock completion zsh > "${fpath[1]}/_magiclock"