Repo-lab
開発ツール

mimic とは?モバイルアプリのAPIをPythonライブラリとして使えるトラフィック解析ツール

⭐ 1,441 stars GitHub →

任意のモバイルアプリのネットワークトラフィックをキャプチャし、AIがPythonクライアントを自動生成するOSSです。自分のアカウントのデータをPythonで操作・自動化する用途向けに設計されています。1441スターを獲得し急上昇中。

GitHubで急上昇中の littledivy/mimic をご紹介します。 スター数 1441★ を獲得し、DevTool分野で注目されているツールです。


mimic とは?

mimicはmitmproxyを使って自分のiPhoneアプリのトラフィックを傍受し、AIがエンドポイントを解析して名前付きメソッドを持つPythonクライアントを自動生成するOSSです。1,441スターを獲得し急上昇。手書きの逆引きエンジニアリングが不要で、自分のアカウントのAPIを手軽にPythonから呼び出せます。DPoP等の制限もドキュメントで明示。MIT Licenseで提供されています。

こんな人におすすめ:

  • エンジニア向け: PythonエンジニアがモバイルアプリのプライベートAPIをスクリプト化・テスト自動化するために使用します。自分のアカウントのデータ取得・通知自動化・定期タスク実行などに活用できます
  • 非エンジニア向け: プログラミング知識が必要なため、エンジニア専用ツールです(mitmproxy + Python環境が必須)

主な機能・特徴

mitmproxyによるiPhoneアプリAPIキャプチャと自動Pythonクライアント生成

mimicの最大の特徴は**「アプリを使うだけで」Pythonクライアントが生成される**点です。

  • mitmproxyでiPhoneアプリのHTTPS通信をキャプチャし認証情報を自動抽出する
  • ClaudeAIがキャプチャしたエンドポイントを分析して名前付きPythonクライアントを生成する
  • cURL貼り付け・HARファイルなどプロキシ不要のキャプチャ手段も複数サポートする
  • Certificate pinningのFridaベースバイパス(mimic unpinコマンド)を内蔵する
  • 401エラー時にセッショントークンを自動更新してリトライする堅牢なセッション管理を実装する

生成されるクライアントはこのように使えます:

from hinge_client import Hinge

acc = Hinge()                         # キャプチャしたセッションを再利用
recs = acc.get_recommendations()      # 名前付きメソッドでAPIコール
acc.like(subject_id, comment="hi")

mimic の使い方・始め方

インストール

sh install.sh          # uvが自動インストールされます
mimic doctor           # Proxy + Claude動作確認

iPhone側のセットアップとトラフィックキャプチャ

mimic record           # プロキシ起動 + iPhone設定手順を表示

画面の指示に従ってiPhoneを設定します:

  1. iPhone → Wi-Fi → プロキシ設定 → 手動 → <MacのIPアドレス>:8080
  2. Safari で http://mitm.it → Apple プロファイルをインストール
  3. 設定 → 一般 → 情報 → 証明書信頼設定 → mitmproxyを完全信頼

Pythonクライアントの生成

アプリを普通に使った後:

mimic hosts                    # キャプチャされたAPIホストを一覧表示
mimic learn api.example.com    # エンドポイントを確認
mimic gen   api.example.com    # Pythonクライアントを自動生成

プロキシ不要の代替手段

from mimic import Session

# cURLをコピー&ペーストして使う(WebアプリのDevTools対応)
Session.from_curl(open("copied.txt").read())

# HARファイルを使う
mimic gen api.example.com --har traffic.har

活用事例

mitmproxy単体との違い:なぜ今このツールか

mitmproxy単体でも通信内容の確認はできますが、そこからPythonコードに落とし込む作業は手動で行う必要がありました。mimicはその「最後の一マイル」をAIが自動化します。Frida(モバイルインスツルメンテーション)と比べると、Certificate pinning解除以外の通常用途ではFridaより圧倒的に簡単に導入できます。Burp Suiteはセキュリティ専門家向けの高機能ツールですが、Pythonクライアント自動生成機能はなく、普段使いのエンジニアには複雑すぎます。

PythonエンジニアによるSNS自動化スクリプト構築

PythonエンジニアがSNSアカウントのデータを定期バックアップするスクリプトを自動生成する用途が代表例です。自分のアカウントのデータを取得してNotionやスプレッドシートに保存したり、特定条件での通知を自動化したりする用途に向いています。

QAエンジニアによるモバイルAPIテスト自動化

QAエンジニアがモバイルアプリのAPIをpytest経由でテストするためのPythonクライアントをCI/CDパイプラインに組み込む活用法も実用的です。実際のアプリトラフィックをベースにした信頼性の高いテストコードが自動生成されます。


こんな人に向いている

Pythonエンジニアが最も恩恵を受けます。自分のSNSアカウントのデータ自動化・バックアップ・定期タスクを実現したい方に特に適しています。

QAエンジニア・テストエンジニアにとっては、実トラフィックから生成された信頼性の高いAPIクライアントをテストに使える点が大きなメリットです。


使う前に知っておきたいこと

  • macOS必須: mitmproxyを使ったiPhoneキャプチャはMacが必要(Linuxは手動設定可)
  • Claude API必須: クライアント生成にClaudeのAPIキーが必要(mimic doctorで確認)
  • Certificate pinning: Instagram・銀行系アプリ等はプロキシ証明書を拒否するため通常手法では不可。mimic unpinコマンドでFridaベースのバイパスが可能
  • DPoP/sender-constrained tokens: 一部の高セキュリティAPIはデバイス固有の署名付きトークンを要求するため根本的に再生不可
  • ライセンスと倫理: MIT License(商用利用可)。自分のアカウントとデータのみに使用すること。各アプリの利用規約を遵守してください

関連ツール・おすすめサービス

  • DigitalOcean — 生成したPythonスクリプトをcronジョブやDropletで定期実行する開発者向けクラウド
  • Vercel — APIクライアントをWebフックやサーバーレス関数として公開する際に便利

まとめ

mimicは自分のアカウントのモバイルアプリAPIを手間なくPythonで操作できる実用的なOSSです。PythonエンジニアやQAエンジニアのAPI自動化ワークフローを大幅に効率化します。Certificate pinningやDPoP対応も明示されており、制限事項も把握しやすい設計です。自分のデータの自動化・バックアップ・テストを行いたいエンジニアに特におすすめです。

GitHub でチェックする →


この技術を学ぶ

DevToolに興味を持った方には、UdemyのオンラインコースでPythonプログラミングやAPI設計を体系的に学ぶこともおすすめです。

毎日更新のGitHubツール情報

LINEで受け取って最新情報をキャッチアップしよう

友達追加する(無料)

関連記事

この記事が役に立ったらシェアしてください