
Connect your Instagram
Sign in by email and link your professional account once. No password sharing, no browser automation, no risk.
Free, Open-Source & Unlimited
Instagramcomments intoreal
conversationsSomeone types "link pls" under your post, OpenInstaDM sends it to them before you've even seen the notification. No monthly fee, nothing to babysit.
What’s included
Self-hosted and open source. Nothing to unlock. You run it, you own it.
Optionally require a follow before handing over the link. Re-prompts until they do.
No plan limits, no seat caps. You run it, you own it.
No passwords. One tap from your email.
Swap any link for a tracked redirect. See clicks and CTR per campaign.
Connect several professional accounts under one workspace.
AES-256-GCM encryption. Your tokens never touch plaintext.
Live webhooks plus a polling safety net. Nothing slips through.
BullMQ handles retries, rate limits, and overflow automatically.
Every send, skip, and failure is logged with a reason.
Three steps. Connect an account, build a campaign, and let it run. The webhook handles it live and the poll sweeps up whatever Instagram never pushes.

Sign in by email and link your professional account once. No password sharing, no browser automation, no risk.

Create a campaign: pick a post, choose the keyword to watch, write the DM and optional public reply.

Webhooks catch comments instantly. A polling sweep catches anything Instagram misses. Every send is queued, rate-limited, and logged.
2 connected accounts · 340 contacts
Active Campaigns
8
DMs Sent
1,284
Skipped
42
Failed
3
Clicks
356
CTR
27.7%
DMs — Last 7 Days
Recent Activity
The dashboard
Every comment event is traceable: queued, matched, sent, skipped, failed, or rate-limited. No black box.
Free and open source. Star it if it saves you a subscription.
FAQ
The things people actually ask before self-hosting their first comment-to-DM campaign. Something missing? The setup guide and the repo have the rest.
Someone comments your keyword (like “LINK”) on a post or reel, and a second later they get a DM with your link — through Meta's official private replies API. You can also post a public comment reply at the same time, and personalize the message with {username}.
There is no catch. It's MIT-licensed open source with no billing layer, no seat limits, and no plan caps. The whole stack runs on free tiers: Vercel for the web app, Neon for Postgres, Redis Cloud for the queue, an Oracle Cloud always-free VM for the worker, and Resend for login emails.
Yes. OpenInstaDM is built entirely around Meta's official Instagram API with Instagram Login. It does not scrape, it does not automate a browser, and it never asks for your Instagram password. Private replies are the sanctioned way to DM from a comment, which keeps you inside Meta's rules.
A Meta developer app, a Resend account for login emails, and somewhere to host Postgres and Redis alongside the two processes. The Instagram account you connect has to be a Business or Creator account — personal accounts don't support the API. The code deploys in minutes; the Meta app setup is the part that takes real time, and the setup guide walks you through it.
The web app serves the dashboard and receives webhooks; a separate background worker does the sending, because sends have to survive rate limits and retries — that's what BullMQ on Redis is for. Both share the same Postgres, Redis, and encryption key. If comments come in and no DM ever arrives, the worker is the first thing to check.
Webhooks are the primary path, but Meta sometimes filters comments out of webhook delivery. A polling reconciler sweeps recent comments as a safety net and catches anything the webhook missed. Your own comments are filtered too, since Meta rejects DMing yourself.
Per-account rate limiting keeps you under Meta's documented cap of 750 private replies per hour. The overflow isn't dropped — it's queued and sent as soon as the window frees up. Every send, skip, and failure is logged with a reason, so nothing disappears into a black box.
Yes. Connect several professional Instagram accounts under one workspace, each with its own rate limits. Workspace owners can grant members scoped access to automations, Instagram accounts, or team management — useful if you run this for clients.