Intercept any app, then call it from Python like a library.
from hinge_client import Hinge
acc = Hinge() # reuses your captured session — no keys to wire up
recs = acc.get_recommendations()
acc.like(subject_id, comment="hi lol")You never wrote hinge_client.py. mimic watched your own app traffic and an AI
wrote the client for you.
Every app authenticates each request with a stable bundle — a bearer token, device ids, a session id, cookies. Capture that once from a real request you made, and you can craft new calls the server can't tell apart from the real app.
capture your traffic ─▶ extract your reusable auth ─▶ AI writes the client
(mitmproxy) (mimic.Session) (claude reads the
captured endpoints)
The generated client is plain, editable Python on top of mimic.App. It gets
the ergonomic parts right — named methods, body templates, and the multi-step
chaining mobile APIs need (fetch a token here, spend it there).
sh install.shInstalls uv if you don't have it, then mimic in an
isolated tool env. No separate mitmproxy install — mimic launches it for you via
uvx on first record. (Manual: uv tool install mimic-client.)
mimic doctor # confirm proxy + claude are readymimic record # starts the proxy, prints the exact iPhone stepsrecord walks you through it and auto-fills your Mac's LAN IP:
- iPhone → Wi-Fi → Configure Proxy → Manual →
<your-mac-ip>:8080 - Safari →
http://mitm.it→ install the Apple profile - Settings → General → About → Certificate Trust Settings → turn on full trust for mitmproxy — the step everyone forgets
- 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 # AI writes hinge_client.pyThen from hinge_client import Hinge; Hinge().get_recommendations().
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=...) return parsed JSON and auto-refresh your
token from mitmweb if it rotates (a 401/403 triggers one re-pull + retry).
- mitmproxy — iOS apps (the default). mimic reads its JSON flow API and runs
it for you via
uvx, so there's nothing extra to install. - cURL / paste — anything with a web version.
Copy as cURLin devtools →Session.from_curl(text). No proxy, no cert.
Certificate pinning (banking, Instagram) defeats a plain proxy, so pinned
apps aren't supported. Plenty of apps aren't pinned and just work — if
mimic hosts shows the app's API host, you're set.
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.
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.
