OpenInstaDM logoOpenInstaDM
0Get started
@anish_biswas_7_Just now
SendLink🚀!

Reply

Triggered
67
background

Free, Open-Source & Unlimited

TurnInstagramInstagramcomments intorealChat Bubblesconversations

Someone types "link pls" under your post, OpenInstaDM sends it to them before you've even seen the notification. No monthly fee, nothing to babysit.

Get Started See how it works
Official Meta APIRuns 24/7No Bans

What’s included

Everything,
no tiers

Self-hosted and open source. Nothing to unlock. You run it, you own it.

Follow gate

Optionally require a follow before handing over the link. Re-prompts until they do.

Fully self-hosted

No plan limits, no seat caps. You run it, you own it.

Email magic-link sign-in

No passwords. One tap from your email.

Tracked links with click stats

Swap any link for a tracked redirect. See clicks and CTR per campaign.

Multiple Instagram accounts

Connect several professional accounts under one workspace.

Encrypted tokens at rest

AES-256-GCM encryption. Your tokens never touch plaintext.

Webhook + polling reconciliation

Live webhooks plus a polling safety net. Nothing slips through.

Queue-backed delivery

BullMQ handles retries, rate limits, and overflow automatically.

DM logs with full status

Every send, skip, and failure is logged with a reason.

How it works

A comment in,
a DM out

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.

Connect your Instagram
01

Connect your Instagram

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

Set keywords and replies
02

Set keywords and replies

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

It runs itself
03

It runs itself

Webhooks catch comments instantly. A polling sweep catches anything Instagram misses. Every send is queued, rate-limited, and logged.

app / dashboard

Hello, Maya!

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

42
Mon
68
Tue
51
Wed
94
Thu
120
Fri
86
Sat
73
Sun

Recent Activity

@maya.coProduct guide replySent
@founder.rayPrice requestSent
@shop.avaLead magnetQueued

The dashboard

See exactly what
happened

Every comment event is traceable: queued, matched, sent, skipped, failed, or rate-limited. No black box.

✓Real-time activity feed
✓Per-campaign click tracking
✓Full DM logs with reasons

Turn your next reel’s
comments into DMs

Free and open source. Star it if it saves you a subscription.

Get Started View on GitHub

FAQ

Questions,
answered

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.

Read the docsAsk on GitHub

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.

OpenInstaDM logoOpenInstaDM

Open-source Instagram comment-to-DM automation. Turn engagement into conversations.

GitHub

Product

  • Features
  • How it works
  • Dashboard

Resources

  • Documentation
  • Setup guide
  • Meta review
  • Diagnostics

Legal

  • Privacy policy
  • Terms of service
  • Data deletion

Compare

  • Manychat alternative
  • LinkDM alternative
  • Chatfuel alternative
  • DM automation agencies
  • Comment-to-DM templates
  • Comment link automation
  • Instagram Auto DM
  • Keyword automation
  • Auto-reply comments
  • Lead magnet automation

© 2026 OpenInstaDM. Open source under the MIT License.

Built with for the open-source community

OpenInstaDM