Skip to main content

instagram_monitor

GitHub Release PyPI Version GitHub Stars Python Versions Docker Pulls License Last Commit Maintenance

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.

instagram_monitor_web_dashboard_screenshot

🚀 Quick Install & Run

Python from PyPI

pip install instagram_monitor
instagram_monitor --setup

Docker Compose

On native Linux export your host identity first. Docker Desktop users on macOS or Windows can skip the two export commands.

curl -fsSLO https://raw.githubusercontent.com/misiektoja/instagram_monitor/refs/heads/main/docker-compose.yml
export INSTAGRAM_MONITOR_UID="$(id -u)"
export INSTAGRAM_MONITOR_GID="$(id -g)"
docker compose run --rm instagram_monitor --setup
docker compose up

Docker run

On macOS or Windows with Docker Desktop:

docker pull misiektoja/instagram-monitor:latest
docker run --rm -it --init -v "${PWD}:/data:z" -v instagram_monitor_session:/home/instagram/.config/instaloader misiektoja/instagram-monitor:latest --setup
docker run --rm -it --init -v "${PWD}:/data:z" -v instagram_monitor_session:/home/instagram/.config/instaloader misiektoja/instagram-monitor:latest --config-file /data/instagram_monitor.conf --env-file /data/.env

The Docker Desktop command uses macOS shell or Windows PowerShell syntax. In Windows Command Prompt replace ${PWD} with %cd%.

On Linux, pass your host user and group so the container can write to the current directory:

docker pull misiektoja/instagram-monitor:latest
docker run --rm -it --init --user "$(id -u):$(id -g)" -v "$PWD:/data:z" -v instagram_monitor_session:/home/instagram/.config/instaloader misiektoja/instagram-monitor:latest --setup
docker run --rm -it --init --user "$(id -u):$(id -g)" -v "$PWD:/data:z" -v instagram_monitor_session:/home/instagram/.config/instaloader misiektoja/instagram-monitor:latest --config-file /data/instagram_monitor.conf --env-file /data/.env

For the manual single-file method, optional browser support and upgrade commands for every method, see Installation.

instagram_monitor demo: install, setup wizard and run

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, Discord webhooks and native ntfy notifications.
  • Rich Alerts: Attached media (profile pics, stories, posts) in Discord 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.

instagram_monitor_terminal_dashboard

instagram_monitor_log_screenshot

Documentation

Full documentation is available at misiektoja.github.io/instagram_monitor:

  • Installation - PyPI, manual script, Docker installation and upgrades
  • Quick Start - setup wizard, login choices and first run
  • Configuration - settings precedence, saved targets, session login, SMTP and secrets
  • View Modes - text, terminal and web dashboards
  • Usage - command formats, monitoring, container operation, notifications, proxy and output
  • Anti-detection - avoid challenges and account suspension
  • Troubleshooting - the --doctor self-check and logging levels

Quick Start

New here? Run the setup wizard

The fastest way to get started is --setup. It asks who to monitor, whether to log in, which interface to use and which alerts you want then saves a ready-to-run configuration. Private values stay in .env.

On Linux, set INSTAGRAM_MONITOR_UID="$(id -u)" and INSTAGRAM_MONITOR_GID="$(id -g)" before using Docker Compose.

Use the command that matches how you run the tool:

# PyPI install
instagram_monitor --setup

# Manual Python script on macOS or Linux
python3 instagram_monitor.py --setup

# Manual Python script on Windows
python instagram_monitor.py --setup

# Docker Compose (skip curl if you cloned the repository)
curl -fsSLO https://raw.githubusercontent.com/misiektoja/instagram_monitor/refs/heads/main/docker-compose.yml
docker compose run --rm instagram_monitor --setup

# Docker image on macOS or Windows PowerShell
docker run --rm -it --init -v "${PWD}:/data:z" -v instagram_monitor_session:/home/instagram/.config/instaloader misiektoja/instagram-monitor:latest --setup

# Docker image on Linux
docker run --rm -it --init --user "$(id -u):$(id -g)" -v "$PWD:/data:z" -v instagram_monitor_session:/home/instagram/.config/instaloader misiektoja/instagram-monitor:latest --setup

Running the tool with no arguments offers the wizard when no target or Web Dashboard has been saved. With saved targets, it starts monitoring directly. The wizard detects PyPI, script, Docker or Docker Compose installs and shows matching commands.

See the full Quick Start guide for browser choices, saved targets, configuration backups and setup recovery.

Not sure which command you need?

I want to... Run this
Set up Instagram Monitor for the first time Use the setup command for your installation above
Try public monitoring without a login instagram_monitor <target_insta_user>
Start targets saved in TARGET_USERNAMES instagram_monitor --config-file instagram_monitor.conf or docker compose up
Start a browser control panel without targets instagram_monitor --web-dashboard
Monitor several accounts instagram_monitor target_1 target_2 or instagram_monitor --targets target_1,target_2
Check the selected login, connectivity and targets instagram_monitor --doctor
See stories, reels and follower details Import a browser session then run instagram_monitor -u <your_insta_user> <target_insta_user>

Manual commands

The examples below use a PyPI install. For a manual script install, replace instagram_monitor with python3 instagram_monitor.py on macOS or Linux and python instagram_monitor.py on Windows. Docker users can copy the complete command prefixes from the Usage guide.

Track a public account without logging in:

instagram_monitor <target_insta_user>

For stories, reels and follower changes, sign in through a supported browser then import the session:

instagram_monitor --import-browser-session --browser firefox
instagram_monitor -u <your_insta_user> <target_insta_user>

Launch the Web Dashboard with monitoring:

instagram_monitor <target_insta_user> --web-dashboard

View every command:

instagram_monitor --help

For container operation, browser profiles, email alerts, Discord, ntfy and advanced settings, see Configuration and Usage. Keep private webhook URLs in .env or enter them through the setup wizard. See Webhook Notifications for complete setup and testing instructions.

Change Log

See RELEASE_NOTES.md for details.

Maintainers

License

Licensed under GPLv3. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

instagram_monitor-3.6.tar.gz (234.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

instagram_monitor-3.6-py3-none-any.whl (186.2 kB view details)

Uploaded Python 3

File details

Details for the file instagram_monitor-3.6.tar.gz.

File metadata

  • Download URL: instagram_monitor-3.6.tar.gz
  • Upload date:
  • Size: 234.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for instagram_monitor-3.6.tar.gz
Algorithm Hash digest
SHA256 90cee085d5333e77ebb0dce918ba045a291c6c33096c1029b6ce15ad3538928b
MD5 9707eecdc77eced731dde2a98e8a6abd
BLAKE2b-256 9589b472a111a64d1b93cda419b9fd8a523d111b2106404171357873b642b77a

See more details on using hashes here.

Provenance

The following attestation bundles were made for instagram_monitor-3.6.tar.gz:

Publisher: publish.yml on misiektoja/instagram_monitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file instagram_monitor-3.6-py3-none-any.whl.

File metadata

  • Download URL: instagram_monitor-3.6-py3-none-any.whl
  • Upload date:
  • Size: 186.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for instagram_monitor-3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 eeebfbb1cf0dacc26be51eadf9b2dbf774ff24e38fea52b7a365903c3745e656
MD5 acbb0d67de92951faedea355ca6929cb
BLAKE2b-256 1190a930f45a73777911cf27c892e431571c91e362ad79db4ae47df88d8382e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for instagram_monitor-3.6-py3-none-any.whl:

Publisher: publish.yml on misiektoja/instagram_monitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.9

2 files

3.8.1

2 files

3.8

2 files

3.7.1

2 files

3.7

2 files

3.6.1

2 files

This release

3.6 This release

2 files

3.5

2 files

3.4

2 files

3.3

2 files

3.2

2 files

3.1

2 files

3.0

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0

2 files

1.9.1

2 files

1.9

2 files

1.8.1

2 files

1.8

2 files

1.7

2 files

1.6.2

2 files

1.6.1

2 files

1.6

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page