Everything else on the main guide happens inside a live session with Claude or Codex. This is the exception — text a dedicated WhatsApp number and it still files what you send, and can still answer questions, with nobody at the keyboard.
A link, a photo of a receipt, or a quick note
Filed the same way a pasted link or dropped file would be in a normal chat — a YouTube link becomes a transcript, a photo becomes a filed capture, a note lands in your inbox if nothing tells it which project it belongs to. No AI decides where things go; that part is the same deterministic routing every other capture type uses.
"What's the NDA status with Northwind?"
Answered by looking things up in your vault — read-only, the same three lookup scripts your agent already uses for recall, nothing more. A follow-up like "and when does it renew?" works too — it remembers the last few messages in that conversation. A bare link with no question attached skips this step entirely and just gets filed, instantly, no AI call spent on it.
One extra step during setup, or any time after.
listen-whatsapp.mjs
--pair-only any time after) shows a QR code right there in your terminal —
scan it from that number's WhatsApp app under Linked Devices → Link a
Device. Done once, ever, unless you log it out yourself.Each of these is an actual constraint in the code, not a promise in this paragraph.
Isolated from your real one on purpose — nothing about this ever touches the number people actually reach you on.
Group chats are rejected outright before anything else runs — not discouraged, blocked in code.
No AI decides what happens to something you send — the same deterministic routing every other capture type uses, every time.
The AI that answers questions can only look things up — three specific lookup scripts, nothing else. It cannot write, edit, delete, or run anything beyond that.
The session file that keeps you paired is owner-only on disk — unreadable by any other account on the machine.
A bare link or attachment never triggers an AI call — only an actual question does, so nothing idle costs anything.
The honest limits — the same standard as the rest of this guide: if it's not here, it doesn't do it.