Free, open-source tool to see who doesn't follow you back and who unfollowed you on Instagram and TikTok. No password, runs entirely in your browser.
SocialTypeScript · HTMLGitHub @marqueziniiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Free, private tool to see who doesn't follow you back and who unfollowed you on Instagram and TikTok. No password, no app — runs in your browser.
Taken from the repository README
Loading the full README.
Read the full README ↗FollowAudit runs entirely inside your browser. On Instagram it scans both sides of your connections and offers an explicit, rate-aware review flow for account actions. On TikTok it reads the follower and following JSON files from your official data export, compares them locally, and keeps all account changes manual.
No account data is sent to a project server. Session credentials are read only when a request needs them and are never stored.
[!CAUTION] Instagram support relies on private web endpoints. They can change without notice, and high-volume account actions may trigger platform limits. TikTok support is read-only and uses only files you explicitly select. This project is not affiliated with or endorsed by Instagram, Meta, TikTok, or ByteDance.
| Capability | Behavior |
|---|---|
| One two-sided audit | A single audit loads Following and Followers once each, page by page, deduplicates, and matches every relationship locally. |
| Report-first side panel | Docks to the right of Instagram or TikTok and opens as an account report: both counts on one axis, mutuals, and ranked segments that open their lists. |
| Who unfollowed you | Each followers audit is compared with the previous snapshot stored in this browser, listing new followers and accounts that left. |
| Focused segments | Don’t follow you back, you don’t follow back, unfollowed you, protected, everyone you follow, everyone who follows you — with instant search (press /, Esc to go back). |
| Protected accounts | Stored locally and permanently excluded from action queues. Export and import the list as a JSON backup. |
| Safe action queue | Instagram unfollows and follower removals run one at a time after confirmation, with configurable pauses, a time-left estimate, and an automatic stop on rate limits, refusals, or repeated failures. |
| TikTok, read-only | Imports the official Follower.json / Following.json export and offers a guided, one-profile-at-a-time manual review. |
| Minimize | Collapse the panel into a small pill and keep browsing while an audit or queue runs. |
| Portable results | Exports the current view as spreadsheet-safe CSV. |
| Five languages | English, Português, Español, Français, Deutsch, plus light and dark themes. |
Copy the script from the website, open instagram.com on a computer while logged in, paste it into the browser console and press Enter. One audit loads who you follow and who follows you, then lists every account that doesn't follow you back. Nothing changes on your account until you confirm.
Instagram doesn't show this itself. FollowAudit saves your follower list in your browser after each audit and compares the next audit against it, so the first audit has nothing to compare with and every later one lists who left and who is new.
No. It runs in the Instagram tab you already have open and uses that session. There is no app, extension, login, server or analytics.
Yes, read-only: import Follower.json and Following.json from your official TikTok data export, compare them locally and review each profile manually.
No tool can promise that, and Instagram's terms restrict automated access, so use it at your own risk. FollowAudit is built to be gentle: lists are read page by page, unfollows run one at a time with pauses, are never retried and stop as soon as Instagram pushes back.
The destructive path is intentionally slower than the review path:
allow pasting the first time.Follower.json and Following.json files from Settings and privacy → Account → Download your data (request JSON format).Running the script again restores a minimized panel instead of opening a second one. The bundle refuses to start outside instagram.com or tiktok.com, except on localhost where it enters preview mode; add ?platform=tiktok to inspect the TikTok state.
flowchart LR
A{Platform} -->|Instagram| B[Authenticated paginated scan]
A -->|TikTok| C[Official JSON export]
B --> D[Runtime payload validation]
C --> D
D --> E[Local review workspace]
D --> S[(Follower snapshot)] --> E
E --> F{User decision}
F -->|Protect| G[Local protected IDs]
F -->|Export| H[CSV file]
F -->|Instagram confirmation| I[Sequential, self-halting queue]
F -->|TikTok| J[Guided manual profile review]
The interface is a Shadow DOM side panel, isolated from the platform's styles and keyboard shortcuts, that leaves the page beside it usable. The production bundle is a single ~130 KB file with no framework and zero runtime dependencies; the brand font is subset to Latin and embedded as WOFF2.
Requirements: Node.js 22 or newer and npm.
git clone https://github.com/marquezinii/follow-audit.git
cd follow-audit
npm ci
npm run dev
The local server prints two URLs: the live preview (/) with deterministic sample data — it never contacts either platform and cannot perform real actions — and the website (/index.html). Set PORT to use another port.
npm run check
Runs ESLint, the Node test suite, TypeScript type checking, website validation (translations, CSP hash, per-language pages, hreflang, structured data, asset references), and the production build. CI runs the same gate plus npm audit and verifies that the committed public/dist.js matches the sources.
src/
├── core.ts # validation, pagination, queue (halting + ETA), snapshots, CSV
├── instagram.ts # authenticated Instagram request boundary and refusal detection
├── tiktok.ts # official export parser and relationship comparison
├── storage.ts # validated localStorage access, snapshots, protected-list backups
├── preview.ts # deterministic sample data for local development
├── i18n.ts # interface strings for five locales
├── main.ts # panel controller and browser state
├── ui/ # layout template, styles, icons
└── assets/ # brand mark and subset font embedded in the bundle
tests/ # deterministic checks for the critical logic
public/ # GitHub Pages website (English source page, five translated pages generated at build) and the distributable dist.js
assets/brand/ # source logo and mark files
scripts/ # site checks, language pages and sitemap generation, build copy, local static server
| Data | Handling |
|---|---|
| Session cookies | Sent by the browser with same-origin requests. FollowAudit reads only your numeric user ID (ds_user_id) to build list URLs and key your snapshot; cookies are never persisted. |
| CSRF token | Read immediately before an action request; never exported or logged. |
| Following and follower lists | Held in memory for the current run. Selected TikTok files are never uploaded. |
| Follower snapshot | Follower IDs, usernames, and names from the last followers audit, stored in this browser's localStorage per account for change tracking. Clear it any time in Settings → Clear audit history. |
| Protected IDs | Stored only in this browser's localStorage; exportable as a JSON file you control. |
| Analytics / backend | None. |
Read CONTRIBUTING.md before opening a pull request. Changes to request handling or destructive actions must include focused tests and preserve the safety properties above. Security-sensitive reports belong in a private GitHub Security Advisory; see SECURITY.md.
Released under the MIT License. Copyright © 2026 marquezinii. The bundled Manrope font is licensed under the SIL Open Font License.