本文へスキップ
←  ホーム English

CLI & API

概要

Mimicry には mimicry CLI ツールが同梱されており、ターミナルや AI エージェントから通信ログの検索・モックルールの作成・プロキシのセットアップまで、GUI を一切操作せずに実行できます。核心にあるのは rule コマンドで、捕捉した実際のリクエストを起点に、エラーレスポンスへの差し替えやフィールド単位の書き換え、遅延の注入をワンコマンドで行えます。

前提: CLI / REST API は Mimicry GUI アプリが起動してプロキシが動作している状態でのみ使用できます。アプリが未起動の場合は open -a Mimicry で起動するか、各コマンドに --start-gui を付けて自動起動を待たせてください。

インストール

Homebrew でインストール(推奨)

Homebrew でインストールした場合、CLI は自動的に PATH に追加されます。

brew tap kusumotoa/tap
brew install --cask mimicry

DMG から手動インストールした場合

CLI バイナリはアプリに同梱されています。以下のコマンドでシンボリックリンクを作成してパスを通します。

sudo ln -sf /Applications/Mimicry.app/Contents/MacOS/mimicry /usr/local/bin/mimicry

動作確認

mimicry status

コマンド一覧

コマンド説明
mimicry statusプロキシの稼働状態とログ件数を確認
mimicry logs / mimicry log <id>通信ログの検索(--domain--status-code--url 等でフィルタ可能)と 1 件の詳細確認
mimicry domains / mimicry endpoints <domain>キャプチャ済みドメインの一覧と、ドメインごとのエンドポイント一覧
mimicry curl <id>通信を再現する curl コマンドを出力
mimicry save <path>.harログを .har ファイルに保存
mimicry rule ...モックルールの作成・生成・一覧・削除・有効化・無効化(CLI の核心機能)
mimicry project ...プロジェクトの一覧・作成・リネーム・複製・有効化・無効化と、その中のフォルダ操作(project folder)。人間が GUI で作ったルールを誤って壊さないよう、delete だけは意図的に用意していません
mimicry device listiOS シミュレータ / Android エミュレータ / Android 実機の一覧(起動していないものも含む)
mimicry firewall statusシミュレータ/エミュレータ ファイアウォールの状態確認(読み取り専用。設定を変更するコマンドは意図的に非提供)
mimicry setup ...プロキシの起動、デバイスへのプロキシ設定、CA 証明書のインストール/削除
mimicry docs ...バイナリに埋め込まれた実用ドキュメントを一覧・表示
mimicry recording ...Time-Travel 録画の開始・停止・一覧・再生・改変(mutate)・範囲の切り詰め(trim)・動画の書き出し(export-video
mimicry serve --rules <file>GUI 不要のスタンドアロンプロキシサーバーを起動
mimicry compare --rules <file> <url>モックルールと実サーバーの差分を比較(--fail-on-diff で CI ゲート)
mimicry init --client claudeClaude Code 向けの Agent Skill を書き出す
mimicry completions <shell>シェル補完スクリプトを生成(bash / zsh / fish / elvish / powershell)

すべてのコマンドは --json(1 行の JSON envelope で結果を返す。exit code 0〜7 と対応)と --start-gui(GUI アプリが未起動なら自動起動して待つ)を共通で持っています。

rule: エラー注入で動作確認する

典型的な流れは、対象リクエストを logs で捕捉し、その ID を起点にルールを作り、アプリを再操作して検証し、終わったら元に戻す、という 4 ステップです。コマンドが返った時点でルールは反映済みなので、sleep は不要です。

# 1. 対象リクエストの ID を確認する
mimicry logs --domain api.example.com --limit 5

# 2. そのログを起点に 500 エラーへ差し替える(実行時点で反映済み、sleep 不要)
mimicry rule set --from-log req-abc123 --status 500
# → Rule saved: rule-xyz789  GET  /api/orders/*  [full mock]

# 3. アプリを再操作してエラーハンドリングを検証する

# 4. 検証できたら元に戻す
mimicry rule delete rule-xyz789

フルモックへの差し替えだけでなく、実レスポンスを通しつつ 1 フィールドだけ書き換えることもできます。遅延の注入(--delay)はフルモックでもパススルー系(--patch / --merge / --against-real)でも使えます。遅延はリクエストが実サーバーへ到達する前に入るため、クライアントから見た待ち時間はどちらでも同じです。

# 実レスポンスは通しつつ、1 フィールドだけ書き換える
mimicry rule set --from-log req-abc123 --patch '/user/isPremium=true'

# フルモックに遅延を注入する
mimicry rule set --url '/api/heavy' --status 200 --body '{}' --delay 3000

# パススルーしつつ遅延だけ足す(--patch との併用も可能)
mimicry rule set --url '/api/heavy' --patch '/flag=true' --delay 3000

project: 人間のルールを壊さない安全機能

rule set --id / rule delete / rule enable / rule disable は、対象ルールが --project で指定したプロジェクト(省略時は自動生成される「CLI Rules」のみ)の外にあると拒否されます。AI エージェントが GUI で人間が作った既存のモックルールを誤って書き換えたり削除したりしないための安全機能です。どんなプロジェクトが存在するかは project list で一覧できます。プロジェクトの作成・リネーム・複製・有効化/無効化と、その中のフォルダ操作(project folder ...)も CLI から行えますが、削除(delete)だけは取り消せない操作なので意図的に用意しておらず、GUI からのみ行えます。

# 存在するプロジェクトを確認する
mimicry project list

# "CLI Rules" の外にあるルールを操作するときは --project で明示する
mimicry rule delete rule-xyz789 --project "QA"

さらに、プロジェクト単位のロック機能もあります。新規作成したプロジェクトはデフォルトでロックされており、GUI サイドバーの鍵アイコン(または右クリックメニュー)から解除するまで CLI から読み取りも書き込みもできません。CLI 側にロック解除コマンドは意図的に用意していません — CLI 自身がロックを外せると安全機能の意味がなくなるためです。ロック中のプロジェクトへの操作は projectLocked エラー(exit 4)で拒否され、project list ではプロジェクトの存在と名前だけは見えますが、フォルダ・ルール件数の中身は伏せられます。

# ロック中のプロジェクトは存在は見えるが中身は伏せられる
mimicry project list --json
# → {"id": "...", "name": "QA", "locked": true, "ruleCount": 0, "folders": []}

# ロック中のプロジェクトを操作すると拒否される
mimicry rule list --project "QA"
# → Error: this project is locked to CLI access — unlock it from the lock icon
#    next to the project in the Mimicry sidebar (or its right-click menu)

setup: プロキシとデバイスの準備

プロキシの起動、デバイス(シミュレータ/エミュレータ)へのプロキシ設定、CA 証明書のインストール/削除(setup cert install / setup cert delete)をまとめて扱います。setup status で何が揃っていて何が足りないかを確認するのが定石です。なお、プロキシを停止するコマンドは意図的に用意していません — AI エージェントが自分の通信の監視を止められないようにするためで、停止は GUI から行います。

# 何が揃っていて何が足りないかを確認する
mimicry setup status

# シミュレータ/エミュレータにプロキシと CA 証明書を設定する
mimicry setup device sim:0B4F1234-5678-90AB-CDEF-1234567890AB

# 作業が終わったら元に戻す
mimicry setup teardown

docs: 埋め込みドキュメントを読む

バイナリに埋め込まれた実用ドキュメント(cli/getting-started / cli/rule-loop / cli/setup / cli/devices / cli/recipes / cli/output-contract)を、アプリやプロキシを起動していない状態でも読めます。

mimicry docs list
mimicry docs show cli/rule-loop

その他の機能

このほかに、通信と画面録画を記録して後から再生する mimicry recordingrecording trim で録画の前後を切り詰められます。指定範囲にエントリが 1 件も残らない場合は拒否され、意図した操作なら --allow-empty を付けて再実行します。上書き前の内容は <id>.mimicry.bak として録画の隣に保存されます)、GUI なしでモックルールを配信する mimicry serve、モックルールと実サーバーの差分を検出する mimicry compare(既定では差分があっても exit 0 で、CI でゲートしたい場合は --fail-on-diff を付けると exit 1 になります)があります。

REST API

CLI と同じ機能を、ポート 19852 の REST API でも提供しています。AI エージェントや自動化スクリプトからは基本的に CLI を使うことを想定しているため、ここでは詳細は割愛します。

AI ツール連携

mimicry init --client claude を実行すると、Claude Code 向けの Agent Skill が ~/.claude/skills/mimicry/SKILL.md に書き出されます。

mimicry init --client claude
# → wrote ~/.claude/skills/mimicry/SKILL.md

この skill 自体はコマンド例を一切持たず、実行時に mimicry docs show へ誘導するだけの設計です。CLI のバージョンと skill の内容が乖離して陳腐化するのを防ぐためで、常に手元のバイナリと一致したドキュメントを参照できます。