littledivy/mimic

▲ 364 stars today★ 2,607⑂ 292

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

About littledivy/mimic

littledivy/mimic is an open-source project on GitHub, mainly written in Python. Intercept any app, then call it from Python like a library It currently holds 2,607 stars and 292 forks with 5 open issues, and was last pushed on 2026-07-26 (repository created 2026-07-13).

Project Overview

Git Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository littledivy/mimic · default branch main · size 55 KB · watchers 17 · source: GitHub REST API and repository README

README

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 -> :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

runs it via uvx, so there's nothing extra to install. then Session.from_curl(text). No proxy, no cert. or Firefox devtools, open the Network tab, right-click a request, and choose "Save all as HAR". Then mimic hosts --har traffic.har and mimic gen api.example.com --har traffic.har, or build a session directly with Session.from_har("traffic.har", "api.example.com"). No proxy, no cert.

Limitations

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

cert, so the proxy sees no traffic and nothing shows up in mimic hosts. This blocks capture, not replay — get past the pin and the rest works normally. mimic unpin sets up a Frida-based bypass; see docs/pinning.md. signed by a private key that never leaves the device, so captured requests don't replay. This defeats the core model, not just capture; there's no clean workaround. See docs/dpop.md.

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.

GitHub Stars & Activity

2,607Stars
292Forks
5Open issues
PythonLanguage

GitHub Popularity

GitHub stars2,607
Forks292
Open issues5
Primary languagePython
LicenseMIT
Stars gained today364
Created2026-07-13
Last pushed2026-07-26

Trending History

Weekly boardrank #79 · ▲ 364 stars

Related GitHub Projects

1

huggingface / transformers

Python★ 167,523⑂ 34,841▲ 501 stars
→
2

Shubhamsaboo / awesome-llm-apps

Python★ 141,295⑂ 20,782▲ 173 stars
→
3

pytorch / pytorch

Python★ 104,519⑂ 32,133▲ 315 stars
→
4

datawhalechina / hello-agents

Python★ 82,570⑂ 10,239▲ 128 stars
→
5

ComposioHQ / awesome-claude-skills

Python★ 76,882⑂ 9,044▲ 68 stars
→
6

hugohe3 / ppt-master

Python★ 60,398⑂ 4,767▲ 1,104 stars
→
7

debpalash / VoiceStudio

Python★ 58,821⑂ 6,604▲ 1,225 stars
→
8

Alishahryar1 / free-claude-code

Python★ 58,092⑂ 9,235▲ 506 stars
→

More Trending Repositories