A silent, high-performance watcher for WhatsApp โ remembers deleted/edited messages, peeks at view-once media, lurks on status updates, schedules posts, downloads videos, music, and image carousels, and manages groups effortlessly.
Built on Baileys v7 with full LID-aware JID resolution and integrated @postfetch/core + yt-dlp media extractors.
| Module | What it does |
|---|---|
| ๐ป Ghost | Anti-delete, anti-edit, & secret edit tracking. Logs deleted/edited messages with media back to owner. |
| ๐๏ธ Peek | Reveals view-once images, videos, audio, with auto-peek and quoted message detection. |
| ๐ Lurk | Auto-view statuses, auto-react with custom/random emojis, silent download to owner DM. |
| ๐ Schedule | Send any message or schedule group opening/closing for a future time. |
| โฌ๏ธ Media Downloader | Integrated @postfetch/core + yt-dlp + ytdlp-nodejs engine (.dl, .play, .ytv, .video, .ytdl, .mp3, .pdl, .pdlzip) for YouTube video/audio (up to 400MB cap, SD 360p/480p WhatsApp playable format), audio extraction, and image carousels (Instagram /p/, TikTok /photo/, Pinterest, Twitter, Facebook). |
| ๐ฆ File & Social Downloader | GitHub repo downloader (.gitdl), MediaFire downloader (.mfdl), social profile search & media downloading (.ig, .tiktok, .fb), song downloader (.song, .play). |
| ๐ Media & Entertainment | Verified book search & download (Gutenberg/Archive.org), stock image search (.img), Gemini AI text assistant (.gemini), AI photo generator (.photo), 54 Ephoto360 textmaker effects (.textmaker), song info, lyrics, movie search, PowerPoint presentation generator (.ppt), couple profile pictures (.couplepp). |
| ๐ฅ Admin & Group | Group management (.open, .close, .kick, .add, .promote, .demote, .approveall, .declineall, .kickall, .kickcc, .tagall, .hidetag, .setgpp, .setgdesc, .mute, .unmute, .welcome, .goodbye), chat disappearing messages (.disappearing), plus protection (.antilink, .antispam, .antisticker, .rejectcalls). |
| ๐ค Owner & Profile | Multi-owner management (.addowner, .delowner, .owner list), block/unblock management, .setstatus, .getstatus, .getpair pairing code generator, .setsession session importer, .setpp, .setabout, .chatstats, .stalk online tracking, .mode public/private, .prefix control. |
| ๐ User Manual | Pure PDF manual generator (.usermanual) delivering complete feature documentation as a WhatsApp PDF document. |
| ๐ ๏ธ Utility Tools | Weather forecast (.weather), Currency converter (.currency), Dictionary (.define), Password pwned check (.pwned), QR generator/decoder (.qr), URL uploader (.url), URL shortener (.shorten), News headlines (.news), Hacker News (.hackernews), Wikipedia (.wiki), Jokes (.joke), Advice (.advice), Facts (.fact). |
| ๐ผ๏ธ Getpp | Fetch profile pictures of any user, group, or chat. |
| ๐ Getjid | PN + LID resolver, channel list, group member roster with admin roles. |
| โ๏ธ Presence | Always online, auto-typing, auto-recording, read receipts configuration. |
| ๐ Activity & Ping | Chat activity dashboard (messages, media counts) and RTT/memory latency probe. |
- Node.js 20+
- A WhatsApp account you're willing to link as a device
- (Optional) PM2 for 24/7 background operation
git clone https://github.com/themalik-g/wraith.git
cd wraith
npm install
npm startFirst run prompts for your WhatsApp phone number, then generates a pairing code:
WhatsApp โ Settings โ Linked Devices โ Link a Device โ Link with phone number instead
npm run pm2:start
npm run pm2:logs
npm run pm2:restart| File | Topic |
|---|---|
| docs/COMMANDS.md | Complete index of all commands with examples |
| docs/CONFIGURATION.md | Config settings, state files, and variables |
| docs/JID-SYSTEM.md | Deep dive into PN, LID, and JID resolution |
| docs/DEPLOYMENT.md | VPS, Docker, PM2, and server setups |
| docs/TROUBLESHOOTING.md | Solutions for common errors |
| docs/ARCHITECTURE.md | System layout, module design, and router flow |
Every WhatsApp user has two JIDs:
- PN JID โ
923001234567@s.whatsapp.net(phone number) - LID โ
278713363128439@lid(Linked Identity, permanent anonymous ID)
WRAITH is LID-aware โ resolves both, sends messages to LIDs directly, and utilizes 5 fallback strategies to resolve PNs when hidden.
โ Full details: docs/JID-SYSTEM.md
// config.js
export const CONFIG = {
owner: "923257853673",
codename: "WRAITH",
memoryTTL: 60 * 60 * 1000,
reconnectDelay: 3000,
keepAliveInterval: 30_000
};wraith/
โโโ start.js
โโโ router.js
โโโ config.js
โโโ ecosystem.config.cjs
โโโ core/
โ โโโ identity.js
โ โโโ settings.js
โ โโโ jid-resolver.js
โโโ lib/
โ โโโ apis.js
โ โโโ music-sources.js
โ โโโ net.js
โ โโโ uploadImage.js
โโโ modules/
โ โโโ activity.js
โ โโโ admin.js
โ โโโ debug.js
โ โโโ download.js
โ โโโ downloader.js
โ โโโ ghost.js
โ โโโ group.js
โ โโโ help.js
โ โโโ jid.js
โ โโโ lurk.js
โ โโโ media.js
โ โโโ owner.js
โ โโโ peek.js
โ โโโ ping.js
โ โโโ ppt.js
โ โโโ prefix.js
โ โโโ presence-track.js
โ โโโ presence.js
โ โโโ profile.js
โ โโโ schedule.js
โ โโโ social.js
โ โโโ song.js
โ โโโ update.js
โ โโโ url.js
โ โโโ usermanual.js
โ โโโ utility.js
โโโ session/
- Never commit
session/,.env,keys.env, or local credentials/state.
| Problem | Fix |
|---|---|
| Bot won't pair | Delete session/, restart, re-enter number |
internal-server-error on admin |
Bot must be admin; target PN may be uncached |
| Image post download failed | Use .pdl <url> or .pdlzip <url> for direct postfetch download |
| LID not resolving to PN | Reply to their message in a group first |
Full guide: docs/TROUBLESHOOTING.md
MIT
- Baileys โ WhatsApp Web API
- Built by @themalik-g