ig-scopé
Enter any public Instagram handle. Click Start. Get a CSV of every follower and who they follow. Native Mac app — no browser, no terminal.
No API keys. No paid tools. No accounts to create. Double-click and go.
What It Does
Export Lists
Pull followers and/or following for any public account. Pick your fields: username, full name, bio, private/public status, profile URL. CSV or JSON — your call.
Overlap Comparison
Run two or more accounts and see who follows both. Shared followers, unique to each — separate output files generated automatically.
Live Controls
Progress bar with ETA. Adjustable rate limiting mid-export — change delay, batch size, cooldown without restarting. Pause, resume, stop with partial saves.
What Changed in v2
v1 was a Python script. It embedded an entire HTML/CSS/JS web UI, spun up a local HTTP server on port 5151, and opened Chrome to render the interface. You had to keep Terminal open, install two pip packages, and watch Chrome eat memory running what was essentially a fancy localhost page.
v2 is a native SwiftUI app. One main.swift file, compiled with swiftc. No browser window. No terminal babysitting. No instaloader. It talks directly to Instagram's GraphQL API via URLSession — the same API Instagram's own web app depends on — which makes it more stable than wrapping a third-party library that can break when Instagram changes something.
It also supports five browsers now — Safari, Chrome, Firefox, Edge, and Opera — instead of the original three.
| v1 (Python) | v2 (Swift) | |
|---|---|---|
| UI | HTML/CSS/JS in Chrome | Native SwiftUI |
| Instagram API | instaloader (pip) | Direct GraphQL via URLSession |
| Dependencies | 2 pip packages | 1 pip package |
| Runs as | Terminal + browser tab | Standard .app |
| Browsers | Safari, Chrome, Firefox | Safari, Chrome, Firefox, Edge, Opera |
| Min macOS | 10.15 | 13.0 |
What It Doesn't Do
- It won't work on private accounts you don't follow
- It can't bypass Instagram's rate limits — it works within them
- It doesn't store credentials — it reads your existing browser cookies
- It doesn't phone home, track anything, or touch anything beyond the CSV on your Desktop
Output Format
Choose CSV, JSON, or both. Toggle fields on or off before export.
| username | full_name | bio | is_private | profile_url |
|---|---|---|---|---|
| janedoe | Jane Doe | Dog mom. Coffee addict. | False | instagram.com/janedoe |
| jsmith | John Smith | True | instagram.com/jsmith |
Platform
macOS 13.0+ only. Built on a Mac, for Mac users, because Mac users have the fewest free tools like this available. It's a native .app — double-click it like any other application on your Mac.
Setup
Install one package
Python 3 ships with macOS. This is the only dependency — it handles cookie extraction from all five browsers so you don't have to.
Log into Instagram
In Safari, Chrome, Firefox, Edge, or Opera. The app reads your existing session cookie — no credentials entered, nothing stored.
Open the app
Double-click ig-scopé. Select your browser, enter accounts, pick your options, hit Start. Timestamped CSVs land on your Desktop.
Keychain access: macOS will ask for permission to read browser cookies on first run. Click Always Allow. It won't ask again.
Why browser_cookie3? We tried going fully zero-dependency in Swift — custom Safari binary cookie parser, Chrome AES-128-CBC decryption via CommonCrypto, Keychain reads via Security framework, SQLite3 for cookie DBs. Three iterations of debugging IV mismatches, TCC permission blocks, and encoding failures later, we ripped it all out and shelled out to browser_cookie3. Sometimes the right engineering decision is knowing when to stop engineering.
Rate Limiting
The defaults are tuned to avoid Instagram's rate limits for accounts with a few thousand followers. For larger accounts, bump the delays up from the app — delay, batch size, and cooldown are all adjustable mid-export without restarting.
If Instagram blocks you, wait 10–15 minutes and try again. Your session isn't burned — they just throttle temporarily.
Use Cases
Tech Stack
Deliberately minimal.
- Swift — single
main.swiftfile, compiled withswiftc - SwiftUI — native macOS interface, dark-themed to match the original aesthetic
- URLSession — direct Instagram GraphQL API calls, no third-party wrappers
- browser_cookie3 — reads session cookies from Safari, Chrome, Firefox, Edge, Opera
One file. ~1,000 lines of Swift. One pip dependency.
Get ig-scopé
macOS 13.0+. MIT License. Native SwiftUI app.
Free to use, modify, and distribute.