Track Instagram users' activities, profile changes and capture content with beautiful dashboards and instant notifications
Project description
instagram_monitor
Powerful, real-time OSINT suite for tracking every activity on Instagram - from story updates and bio changes to follower shifts, providing stunning dashboards and instant alerts to keep you in the loop.
🚀 Quick Install & Run
Python from PyPI (see also the video below)
pip install instagram_monitor
instagram_monitor --setup
Docker Compose
curl -fsSLO https://raw.githubusercontent.com/misiektoja/instagram_monitor/refs/heads/main/docker-compose.yml
docker compose run --rm instagram_monitor --setup
docker compose up
Docker run
docker pull misiektoja/instagram-monitor:latest
docker run --rm -it --init -v "$PWD:/data" -v instagram_monitor_session:/home/instagram/.config/instaloader -p 8000:8000 misiektoja/instagram-monitor --setup
Features
🔍 Real-time Tracking
- Profile Activity: Monitor new posts, reels and stories in real-time.
- Private Posts: Detects collab posts leaking from private accounts via public collaborators.
- Audience Insights: Track changes in followings and followers.
- Visual Changes: Detect updates to profile pictures and visibility (public/private).
- Bio Updates: Stay informed about changes to user bio.
📥 Media Download
- Anonymous Stories: Download story images and videos without leaving traces.
- High-Quality Media: Save post images, reel videos and profile pictures.
- Batch Support: Monitor and download media for multiple users simultaneously.
📱 Interactive Dashboards
- Guided Setup: Interactive wizard writes a ready-to-run config for PyPI, script and Docker workflows.
- Terminal Dashboard: Beautiful, live-updating CLI interface with real-time stats.
- Web Dashboard: Modern, local web UI with activity feeds and remote controls.
- Image Support: View profile pictures and media directly in your terminal (via
imgcat).
🔔 Smart Notifications
- Multi-Channel: Instant alerts via Email and Webhooks (Discord etc.).
- Rich Alerts: Attached media (profile pics, stories, posts) directly in notifications.
- Error Reporting: Be notified if the monitoring process hits a snag.
🛡️ Privacy & Detection Avoidance
- Be Human Mode: Simulates random user actions to blend in.
- Jitter Mode: Adds human-like delays to HTTP requests.
- Hour-Range Checking: Limits activity to specific hours of the day.
- Account Flexibility: Works with or without a logged-in Instagram account.
- Browser Session Import: Reuse Firefox, Chrome, Brave or Chromium sessions with profile selection.
- Browser TLS Impersonation: Routes traffic through curl_cffi to mimic a real browser's TLS fingerprint and dodge fingerprint-based blocks.
- Proxy Support: Route Instagram and webhook traffic through your own proxy.
- Privacy Substitutions: Mask or rename identities across all output, logs and notifications.
- Block Awareness: Detects shadowbans and flagged sessions to avoid false alerts.
⚙️ Power Features
- CSV Logging: Log all activities and profile changes with timestamps.
- Flexible Config: Support for files, dotenv and environment variables.
- Follower Churn: Detailed tracking of exactly who followed or unfollowed.
- Batched Fetching: Throttle follower/following downloads into delayed batches.
- Remote Control: Manage tracking features via signals or the web UI.
- Docker Ready: Run via Docker Hub, Docker Compose or local image build with persisted config, dotenv and sessions.
Documentation
Full documentation is available at misiektoja.github.io/instagram_monitor:
- Installation - PyPI, Docker and manual install
- Quick Start - the setup wizard and first run
- Configuration - session login, time zone, SMTP and secrets
- View Modes - text, terminal and web dashboards
- Usage - Docker, notifications, proxy, CSV and more
- Anti-detection - avoid challenges and account suspension
- Troubleshooting - the
--doctorself-check and logging levels
Quick Start
🧭 New here? Run the setup wizard
The fastest way to get going (since v3.5) is the interactive setup wizard. It asks a few plain questions (who to monitor, no-login or logged-in, which interface, optional alerts), then writes a ready-to-run config for you. For local installs it can also start monitoring immediately.
Use the command that matches how you run the tool:
# PyPI install
instagram_monitor --setup
# Manual Python script
python3 instagram_monitor.py --setup
# Docker Compose (skip curl if you cloned the repo)
curl -fsSLO https://raw.githubusercontent.com/misiektoja/instagram_monitor/refs/heads/main/docker-compose.yml
docker compose run --rm instagram_monitor --setup
# Docker image
docker run --rm -it --init -v "$PWD:/data" -v instagram_monitor_session:/home/instagram/.config/instaloader -p 8000:8000 misiektoja/instagram-monitor --setup
Running the tool with no arguments from an interactive terminal offers the same wizard. It auto-detects whether you installed via pip, downloaded the script or run under Docker and shows commands that match your setup.
Not sure which mode you want?
| I want to... | Run this |
|---|---|
| Just try it, no login | instagram_monitor <target_insta_user> |
| Be guided through setup | Use the setup command for your install path above |
| Avoid the command line | instagram_monitor --web-dashboard then use the browser |
| See stories, reels and who followed/unfollowed | Log in first (browser session), then instagram_monitor -u <your_insta_user> <target_insta_user> |
Manual commands
If you prefer to run it in a container, jump to 🐳 Docker Usage (Recommended).
- Track the
target_insta_userin No-login mode (no session login):
instagram_monitor <target_insta_user>
Or if you installed manually:
python3 instagram_monitor.py <target_insta_user>
- Track the
target_insta_userin Logged-in mode (with session login via your web browser):
# log in to the Instagram account (your_insta_user) in your web browser (Firefox, Chrome, Brave or Chromium)
instagram_monitor --import-browser-session --browser firefox
instagram_monitor -u <your_insta_user> <target_insta_user>
- You can also launch the Web Dashboard along with tracking:
instagram_monitor <target_insta_user> --web-dashboard
To get the list of all supported command-line arguments / flags:
instagram_monitor --help
Change Log
See RELEASE_NOTES.md for details.
Maintainers
- 👤 misiektoja (@misiektoja)
- 👤 tomballgithub (@tomballgithub)
License
Licensed under GPLv3. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file instagram_monitor-3.5.tar.gz.
File metadata
- Download URL: instagram_monitor-3.5.tar.gz
- Upload date:
- Size: 214.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad3696b81b2d3340a4b4ff1ff05b7b2d2f8a30f9b4bcfafa7a9af87b1d97643c
|
|
| MD5 |
24d9257c07a4804944a79b5d47e29bc2
|
|
| BLAKE2b-256 |
ba0c01559f38ef932abc6aec79f529b559e5d0ea5871deee8a89c58d242f6046
|
Provenance
The following attestation bundles were made for instagram_monitor-3.5.tar.gz:
Publisher:
publish.yml on misiektoja/instagram_monitor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
instagram_monitor-3.5.tar.gz -
Subject digest:
ad3696b81b2d3340a4b4ff1ff05b7b2d2f8a30f9b4bcfafa7a9af87b1d97643c - Sigstore transparency entry: 2029565411
- Sigstore integration time:
-
Permalink:
misiektoja/instagram_monitor@ae11f318c0cf078ed8c74935d875c61f608630e0 -
Branch / Tag:
refs/tags/v3.5 - Owner: https://github.com/misiektoja
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ae11f318c0cf078ed8c74935d875c61f608630e0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file instagram_monitor-3.5-py3-none-any.whl.
File metadata
- Download URL: instagram_monitor-3.5-py3-none-any.whl
- Upload date:
- Size: 177.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7155b1bad9f56c48056964e3e0794bb95cb75aac4b6070b24327b7edbe0d4ec1
|
|
| MD5 |
dba0607927d36564806a7426f22e4d36
|
|
| BLAKE2b-256 |
91f5f6f480631fb995887707c644f60d6852cc07a6018f4382f3eb97e7c12311
|
Provenance
The following attestation bundles were made for instagram_monitor-3.5-py3-none-any.whl:
Publisher:
publish.yml on misiektoja/instagram_monitor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
instagram_monitor-3.5-py3-none-any.whl -
Subject digest:
7155b1bad9f56c48056964e3e0794bb95cb75aac4b6070b24327b7edbe0d4ec1 - Sigstore transparency entry: 2029565560
- Sigstore integration time:
-
Permalink:
misiektoja/instagram_monitor@ae11f318c0cf078ed8c74935d875c61f608630e0 -
Branch / Tag:
refs/tags/v3.5 - Owner: https://github.com/misiektoja
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ae11f318c0cf078ed8c74935d875c61f608630e0 -
Trigger Event:
release
-
Statement type: