CLI & API

概要

Mimicry には mimicry CLI ツールが同梱されており、 ターミナルから通信ログの検索・分析・モック生成を実行できます。 さらに、ポート 19852 で REST API を提供しており、AI ツールや自動化スクリプトから全機能にプログラマティックにアクセスすることも可能です。

前提: CLI / REST API は Mimicry GUI アプリが起動してプロキシが動作している状態でのみ使用できます。 アプリが未起動の場合は open -a Mimicry で起動してください。

セットアップ

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

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

brew tap kusumotoa/tap
brew install --cask mimicry

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

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

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

動作確認

mimicry status

コマンドリファレンス

コマンド説明
mimicry statusプロキシの稼働状態とログ件数を確認
mimicry domainsキャプチャ済みドメイン一覧とリクエスト数
mimicry endpoints <domain>特定ドメインのエンドポイント一覧
mimicry logs最近のログを一覧(--domain--method--status-code--url--limit でフィルター可能)
mimicry logs clearログを全件消去
mimicry log <id>リクエスト詳細を表示(--body でレスポンスボディを表示)
mimicry save <path>ログを .har ファイルに保存(--domain--url でフィルタ可能)
mimicry mock通信ログからモックルールを自動生成(--domain でドメイン絞り込み可能)
mimicry curl <id>通信を再現する curl コマンドを出力
mimicry logs --watch新着ログを継続表示(tail -f モード)
mimicry logs --reverse古い順でログを表示
mimicry logs --count-only件数のみ出力
mimicry logs --fields <fields>出力フィールドを選択(例: method,status,url)
mimicry completions <shell>シェル補完スクリプトを生成(bash / zsh / fish)
mimicry serveGUI 不要のスタンドアロンプロキシサーバーを起動(--rules--port--recording で設定)

活用例: API レスポンスのデバッグ

ログ ID を取得してレスポンスの詳細を確認する二段階アプローチです。

# 対象ドメインのログを絞り込んで ID を確認
mimicry logs --domain api.example.com --limit 10

# ヘッダーや詳細を確認
mimicry log abc-123-...

# レスポンスボディを表示
mimicry log abc-123-... --body

活用例: モックルールの自動作成

実際のトラフィックからモックルールを自動生成して、Mimicry GUI でインポートできます。

# ドメインを確認
mimicry domains

# モックルールを生成(デスクトップに JSON ファイルを出力)
mimicry mock --domain api.example.com

# → 出力されたファイルパスを Mimicry GUI でインポートして有効化

活用例: エンドポイントの調査

アプリがどのエンドポイントを使用しているか確認できます。

$ mimicry endpoints api.example.com

ENDPOINT                    METHODS   REQUESTS
/user/profile               GET       15
/user/settings              POST      3
/items/list                 GET       42

録画コマンド

タイムトラベル録画の開始・停止・再生・改変を CLI から操作できます。

# 録画開始
mimicry recording start --name "ログインフロー"

# 特定ドメインに絞って録画
mimicry recording start --domain api.example.com

# 画面録画付き録画
mimicry recording start --video-device <device-id>

# 録画対象デバイス一覧
mimicry recording list-devices

# 録画停止
mimicry recording stop

# 録画状態確認
mimicry recording status

# 録画一覧
mimicry recording list

# 録画詳細表示
mimicry recording show <id>

# 録画を再生
mimicry recording play <id>

# 再生状態確認
mimicry recording playback-status

# 再生停止
mimicry recording stop-playback

# 録画削除
mimicry recording delete <id>

# 派生録画を生成
mimicry recording mutate <id> --rules rules.json --name "500エラー版"

スタンドアロンサーバー

GUI なしでプロキシサーバーを起動。モックルールや録画ファイルからの再生をコマンドラインで実行できます。

# モックルールでサーバー起動
mimicry serve --rules ./rules.json --port 8080

# 録画ファイルから再生サーバー
mimicry serve --rules ./rules.json --recording ./recording.mimicry

# iOS Simulator を自動設定して起動
mimicry serve --rules ./rules/ --configure-simulator --verbose

REST API

Mimicry はポート 19852 で REST API を提供しており、AI ツールや自動化スクリプトから全機能にアクセスできます。

エンドポイント説明
GET /api/statusプロキシ状態
GET /api/logs通信ログ検索
GET /api/logs/{id}リクエスト詳細
GET /api/logs/{id}/bodyレスポンスボディ
POST /api/logs/clearログ消去
GET /api/domainsドメイン一覧
GET /api/domains/{domain}/endpointsエンドポイント一覧
POST /api/saveログ保存
POST /api/mockモックルール生成
GET /api/recordings録画一覧
POST /api/recordings録画開始
GET /api/recordings/status録画状態
POST /api/recordings/current/stop録画停止
GET /api/recordings/playback再生状態
POST /api/recordings/playback/stop再生停止
GET /api/recordings/devices録画対象デバイス一覧
GET /api/recordings/{id}録画詳細
DELETE /api/recordings/{id}録画削除
POST /api/recordings/{id}/play録画再生
POST /api/recordings/{id}/mutate派生録画生成
GET /api/recordings/{id}/video録画動画取得

--json フラグを付けると CLI 出力も JSON 形式になり、パイプラインでの処理に適しています。

AI ツール連携

以下のスキルファイルを ~/.claude/skills/mimicry/SKILL.md に配置すると、Claude Code が HTTP トラフィックに関する質問に対して自動的に mimicry CLI を呼び出してトラフィック分析を行います。

「どの API を叩いているか調べて」「404 が出ているリクエストを探して」「このドメインのモックを作って」 のような依頼が自動的にスキルのトリガーになります。 他の AI コーディングツールからも REST API / CLI 経由で同様に操作可能です。

---
name: mimicry
description: >
  Mimicry HTTP/HTTPS プロキシツールを CLI 経由で操作する。
  iOS/Android アプリ開発中のトラフィック確認・分析、モックルール生成、ログ保存を自動化する。
  「Mimicry でトラフィックを確認して」「どの API を叩いているか調べて」「ログからモックを作って」
  「レスポンスボディを見せて」「このドメインのエンドポイントは?」「404 が出ているリクエストを調べて」など、
  HTTP トラフィックやプロキシログに関する依頼には積極的にこのスキルを使う。
  ユーザーが "Mimicry" と明示しなくても、アプリの通信内容・API レスポンス・ネットワークログに関する調査依頼にも適用する。
user-invocable: false
---

# Mimicry CLI 操作ガイド

Mimicry はアプリ起動中の HTTP/HTTPS トラフィックをキャプチャするプロキシツール。
CLI (`mimicry`) を使うことで、GUI を操作せずにトラフィック確認・ログ検索・モック生成を自動化できる。

**前提**: Mimicry GUI アプリが起動済みであること。
未起動の場合は `open -a Mimicry` で起動を促してから作業を進める。

## コマンドリファレンス

```bash
# 状態・概要
mimicry status                              # プロキシ稼働状態とログ件数を確認
mimicry domains                             # キャプチャ済みドメイン一覧
mimicry endpoints <ドメイン>                # 特定ドメインのエンドポイント一覧

# ログ検索
mimicry logs                                # 最近 50 件を一覧
mimicry logs --domain <ドメイン>            # ドメインでフィルター
mimicry logs --method POST --limit 20       # HTTP メソッドでフィルター
mimicry logs --status-code 404              # ステータスコードでフィルター
mimicry logs --url "*/users/*"              # URL パターン(glob)でフィルター
mimicry logs clear                          # ログを全消去

# 詳細確認(logs で取得した ID を使う)
mimicry log <id>                            # リクエスト/レスポンスのヘッダーや詳細
mimicry log <id> --body                     # レスポンスボディを表示

# 保存・モック生成
mimicry save <出力パス>.har                 # ログを .har ファイルに保存
mimicry save <出力パス>.har --domain <ドメイン>
mimicry mock                                # 全ログからモックルール生成
mimicry mock --domain <ドメイン>            # ドメイン限定でモックルール生成

# curl コマンド生成
mimicry curl <id>                           # 通信を再現する curl コマンドを出力

# ログ追加オプション
mimicry logs --watch                        # 新着ログを tail -f モードで表示
mimicry logs --reverse                      # 古い順で表示
mimicry logs --count-only                   # 件数のみ出力
mimicry logs --fields method,status,url     # 出力フィールドを選択

# 録画追加コマンド
mimicry recording list-devices              # 録画対象デバイス一覧
mimicry recording start --video-device <id> # 画面録画付き録画
mimicry recording status                    # 録画状態確認
mimicry recording show <id>                 # 録画詳細
mimicry recording delete <id>               # 録画削除
mimicry recording playback-status           # 再生状態確認

# シェル補完
mimicry completions <shell>                 # シェル補完スクリプト生成 (bash/zsh/fish)

# スタンドアロンサーバー
mimicry serve --rules <file> [options]      # GUI 不要のプロキシサーバー起動
```

## 目的別ワークフロー

### 通信全体を把握したい

```bash
mimicry status
mimicry domains
mimicry endpoints <ドメイン>
```

### API レスポンスを調べたい

```bash
mimicry logs --domain <ドメイン> --limit 10
mimicry log <id>
mimicry log <id> --body
```

### エラーを追いたい

```bash
mimicry logs --status-code 500
mimicry logs --url "*/auth/*" --status-code 401
```

### テスト用モックを作りたい

```bash
mimicry mock --domain <対象ドメイン>
# → 出力されたファイルを Mimicry GUI でインポート
```

## トラブルシューティング

| 症状 | 対処 |
|------|------|
| Cannot connect to Mimicry app. | `open -a Mimicry` で起動 |
| ログが 0 件 | アプリを操作してからリトライ |
| 指定した ID が見つからない | `mimicry logs` で最新 ID を確認 |