Instagram DM Auto-Reply 🐧
v2.js (Internal API) based. 0 browser snapshots, CDP cookie extraction → Instagram REST API direct calls.
Prerequisites
- OpenClaw browser running (port 18800)
- Instagram tab open and logged in
ws npm package (npm i -g ws or local)
Script List
| Script |
Purpose |
scripts/v2.js |
DM CLI (inbox, unread, check, read, reply) |
scripts/auto-reply.js |
Read dm-alert.json, security check, return reply metadata |
scripts/check-notify.js |
Check new DM notifications (for cron, state file based) |
scripts/dm-watcher.js |
Real-time DM detection daemon (15s polling) |
Core Workflows
1. Check DMs
node scripts/v2.js check # unread count (lightest)
node scripts/v2.js unread # unread DM list
node scripts/v2.js inbox # full DM list
2. Read Messages
node scripts/v2.js read "<username>" -l 5
3. Reply
node scripts/v2.js reply "<username>" "message content"
On API failure, returns JSON with method: "use_browser" + threadUrl → fallback to browser tool.
4. Notification Check (cron integration)
node scripts/check-notify.js
- If new DMs: outputs
📩 새 DM N건: ...
- If none: outputs
no_new
- Uses state file
dm-state.json to prevent duplicates
5. Auto-Reply Flow
node scripts/auto-reply.js
- Read
dm-alert.json (created by dm-watcher)
- Run security check on each DM
- Return results:
needs_reply / security_alert / skipped
- AI generates replies for
needs_reply DMs → send via v2.js reply
6. Real-time Detection Daemon
node scripts/dm-watcher.js # detection only
node scripts/dm-watcher.js --auto-reply # includes Discord notification
Polls v2.js check every 15s. On new DM detection, writes dm-alert.json + Discord DM notification.
Security Check (Injection Rejection)
auto-reply.js's SECURITY_PATTERNS detects:
- Prompt Injection: "ignore previous", "system prompt", "you are now", "act as", "pretend"
- Jailbreak Attempts: "override", "jailbreak", "DAN mode", "bypass"
- Sensitive Info Requests: "secret key", "private key", "seed phrase", "wallet address"
- Code Execution Attempts: "execute command", "run script", "eval(", "rm -rf", "sudo"
- Social Engineering: "simulation mode", zero-width characters
On threat detection → don't reply, return security_alert. Separate notification sent.
Cron Setup Example
# Check DMs every 5 minutes
- schedule: "*/5 * * * *"
command: "node /path/to/scripts/check-notify.js"
systemEvent: true
# Or dm-watcher daemon for continuous monitoring
- schedule: "@reboot"
command: "node /path/to/scripts/dm-watcher.js --auto-reply"
background: true
Token Efficiency
- inbox/check: exec 1 call (~500 tokens)
- reply: exec 1 call (~200 tokens)
- browser snapshots: 0
🐧 Built by 무펭이 — Mupengism ecosystem skill
1---2name: auto-reply-23description: Instagram DM auto-reply system. DM monitoring, reading, replying, security check (injection rejection). Use when checking Instagram DMs, reading unread messages, replying to DMs, setting up DM monitoring cron jobs, or handling DM auto-reply workflows. Triggers on: Instagram DM, DM check, DM reply, DM auto-reply, dm-alert.4---56# Instagram DM Auto-Reply 🐧78v2.js (Internal API) based. 0 browser snapshots, CDP cookie extraction → Instagram REST API direct calls.910## Prerequisites1112- OpenClaw browser running (port 18800)13- Instagram tab open and logged in14- `ws` npm package (`npm i -g ws` or local)1516## Script List1718| Script | Purpose |19|--------|---------|20| `scripts/v2.js` | DM CLI (inbox, unread, check, read, reply) |21| `scripts/auto-reply.js` | Read dm-alert.json, security check, return reply metadata |22| `scripts/check-notify.js` | Check new DM notifications (for cron, state file based) |23| `scripts/dm-watcher.js` | Real-time DM detection daemon (15s polling) |2425## Core Workflows2627### 1. Check DMs2829```bash30node scripts/v2.js check # unread count (lightest)31node scripts/v2.js unread # unread DM list32node scripts/v2.js inbox # full DM list33```3435### 2. Read Messages3637```bash38node scripts/v2.js read "<username>" -l 539```4041### 3. Reply4243```bash44node scripts/v2.js reply "<username>" "message content"45```4647On API failure, returns JSON with `method: "use_browser"` + `threadUrl` → fallback to browser tool.4849### 4. Notification Check (cron integration)5051```bash52node scripts/check-notify.js53```54- If new DMs: outputs `📩 새 DM N건: ...`55- If none: outputs `no_new`56- Uses state file `dm-state.json` to prevent duplicates5758### 5. Auto-Reply Flow5960```bash61node scripts/auto-reply.js62```63641. Read `dm-alert.json` (created by dm-watcher)652. Run security check on each DM663. Return results: `needs_reply` / `security_alert` / `skipped`674. AI generates replies for `needs_reply` DMs → send via `v2.js reply`6869### 6. Real-time Detection Daemon7071```bash72node scripts/dm-watcher.js # detection only73node scripts/dm-watcher.js --auto-reply # includes Discord notification74```7576Polls `v2.js check` every 15s. On new DM detection, writes `dm-alert.json` + Discord DM notification.7778## Security Check (Injection Rejection)7980`auto-reply.js`'s `SECURITY_PATTERNS` detects:8182- **Prompt Injection**: "ignore previous", "system prompt", "you are now", "act as", "pretend"83- **Jailbreak Attempts**: "override", "jailbreak", "DAN mode", "bypass"84- **Sensitive Info Requests**: "secret key", "private key", "seed phrase", "wallet address"85- **Code Execution Attempts**: "execute command", "run script", "eval(", "rm -rf", "sudo"86- **Social Engineering**: "simulation mode", zero-width characters8788On threat detection → don't reply, return `security_alert`. Separate notification sent.8990## Cron Setup Example9192```yaml93# Check DMs every 5 minutes94- schedule: "*/5 * * * *"95 command: "node /path/to/scripts/check-notify.js"96 systemEvent: true9798# Or dm-watcher daemon for continuous monitoring99- schedule: "@reboot"100 command: "node /path/to/scripts/dm-watcher.js --auto-reply"101 background: true102```103104## Token Efficiency105106- inbox/check: exec 1 call (~500 tokens)107- reply: exec 1 call (~200 tokens)108- browser snapshots: 0109110---111> 🐧 Built by **무펭이** — [Mupengism](https://github.com/mupeng) ecosystem skill