mimic README

The project's README from github.com/littledivy/mimic. As one markdown file: README.md.

mimic

Intercept any app, then call it from Python like a library.

from hinge_client import Hinge

acc = Hinge()                 # reuses your captured session
recs = acc.get_recommendations()
acc.like(subject_id, comment="hi lol")

You don't write hinge_client.py. mimic captures your own app traffic and an AI generates the client from it.

How it works

Most apps authenticate every request with the same bundle of values: a bearer token, some device ids, a session id, cookies. They're stable across calls. Capture them once from a real request you made, and you can replay them on new requests to the same API.

capture traffic   ->   extract auth   ->   generate client
  (mitmproxy)         (mimic.Session)      (claude reads the
                                            captured endpoints)

The generated client is plain Python on top of mimic.App, and you edit it like any other file. It gives you named methods, body templates, and the multi-step call chaining mobile APIs tend to need (fetch a token in one call, spend it in the next).

Install

sh install.sh

Installs uv if you don't have it, then mimic in an isolated tool env. mitmproxy isn't a separate install; mimic launches it via uvx on first record. (Manual: uv tool install mimic-client.)

mimic doctor                    # confirm proxy + claude are ready

Use it (iPhone)

mimic record                    # starts the proxy, prints the iPhone steps

record fills in your Mac's LAN IP and walks you through it:

  1. iPhone -> Wi-Fi -> Configure Proxy -> Manual -> <your-mac-ip>:8080
  2. Safari -> http://mitm.it -> install the Apple profile
  3. Settings -> General -> About -> Certificate Trust Settings -> turn on full trust for mitmproxy. This step is easy to miss and nothing works without it.
  4. open the app, use it normally

Then:

mimic hosts                     # list captured hosts; pick your API host
mimic learn  prod-api.hingeaws.net    # see the endpoints mimic saw
mimic gen    prod-api.hingeaws.net    # generate hinge_client.py

Then from hinge_client import Hinge; Hinge().get_recommendations().

The library

Three ways to build a session by hand, if you don't want codegen:

from mimic import Session

Session.from_mitm("prod-api.hingeaws.net")        # pull auth from mitmweb
Session.from_curl(open("copied.txt").read())      # paste "Copy as cURL" from devtools
Session(base_url="https://x.com", headers={...})  # explicit

.get(path), .post(path, json=...), and the other common HTTP verb helpers return parsed JSON and raise requests.HTTPError for failed responses. If your token rotates, a 401 on an idempotent request triggers one re-pull from mitmweb and a retry. Non-idempotent requests are not retried unless you explicitly pass refresh=True.

Capture backends

Limitations

Two auth schemes get in the way, for different reasons:

If mimic hosts shows the app's API host, you're good.

Ethics

Use it on your own accounts and data. It replays your session; it is not a tool for accessing anyone else's. Respect each app's terms of service.

License

MIT, see LICENSE. Provided as-is, no warranty. Use on your own accounts and data; you are responsible for complying with each app's terms.

mimic (littledivy/mimic)

Searching Database…

2.8K ·GitHub
Что это такое?mimic перехватывает трафик любого приложения (мобильного или веб) и превращает его в обычный Python-клиент, который можно вызывать как библиотеку — вы захватываете один реальный запрос, а ИИ генерирует именованные методы за вас, вместо того чтобы писать их вручную.
Это CLI-инструмент, Python-библиотека или и то и другое?И то и другое: mimic CLI записывает трафик и генерирует файл клиента, а этот сгенерированный файл — обычный Python, построенный на mimic.App, который вы импортируете и правите как любой обычный модуль.
Как установить mimic и начать захватывать трафик?Установщик настраивает uv, если его нет, и ставит mimic в изолированное tool-окружение (или запустите `uv tool install mimic-client` вручную); mitmproxy запускается автоматически через uvx при первой записи, так что отдельного шага установки mitmproxy не требуется.
Нужно ли самому устанавливать mitmproxy перед записью?Нет — mimic запускает mitmproxy за вас через uvx при первой записи; нужно лишь направить прокси-настройки iPhone на ваш Mac и доверять сертификату mitmproxy.
Работает ли mimic с приложениями, использующими certificate pinning или ротацию DPoP-токенов?Certificate pinning (банковские приложения, Instagram) блокирует захват, потому что приложение отвергает сертификат mitmproxy, но для этого в mimic есть обход на основе Frida — 'unpin'. DPoP / sender-constrained токены — тупик: каждый запрос несёт свежее подтверждение, подписанное ключом, который никогда не покидает устройство, поэтому захваченные запросы просто не получится переиграть.
Можно ли захватывать трафик и веб-приложений, или только iOS?Приложения iOS по умолчанию идут через mitmproxy, но для веб-приложений можно полностью обойтись без прокси: скопируйте запрос как cURL из devtools в Session.fromcurl() или экспортируйте HAR-файл из вкладки Network браузера и прогоните mimic по нему.
Нормально ли направлять mimic на трафик любого приложения?mimic предназначен для воспроизведения вашей собственной сессии на вашем же аккаунте, а не для доступа к чужим данным, и предполагается, что вы соблюдаете условия использования каждого приложения.
Что будет, если мой токен авторизации сменится посреди сессии?Ответ 401 на идемпотентный запрос вызывает одно автоматическое повторное получение из mitmweb и повторную попытку. Неидемпотентные запросы (вроде POST) повторяются, только если вы явно передадите refresh=True.
Можно ли собрать клиент вручную, не используя ИИ-кодогенерацию?Да — mimic.App предоставляет .get(), .post() и другие хелперы HTTP-методов, которые возвращают разобранный JSON и бросают requests.HTTPError при ошибке, так что можно собрать сессию вручную без всякой генерации кода.
Что делает `mimic unpin`?Он настраивает обход на основе Frida для приложений с certificate pinning, чтобы сертификату mitmproxy можно было доверять и трафик стал видимым для захвата.
Зачем использовать mimic вместо самостоятельного реверс-инжиниринга API?Большинство мобильных API переиспользуют один и тот же стабильный набор (bearer-токен, ID устройств, ID сессии) между вызовами; mimic захватывает его один раз из реального запроса, а ИИ генерирует именованные методы и многошаговые цепочки вызовов, избавляя от ручной реверс-инженерии.
What are similar projects?captcha-api, httpx, frida, bettercap, httpx, badnotes, evilginx2, ipatool
Creator
littledivy
Size
0.1 MB
Stars
2.8K
Updated
CommitJul 26
Age
3mo
Commits · 90 Days