Wappy: the open-source AI agent SDK for WhatsApp. Bring your own model, your own number, your own data. Local-first, no forced cloud, no vendor lock-in.
See the codeFree. Open source. No account with us, ever. Your conversations, your memory, your data stay in one file on your own machine — nothing routes through a server we run.
AI models finally got good enough to reliably use tools, remember context, and hold a real conversation, not just autocomplete a reply. At the same time, WhatsApp is already the app on over 2 billion phones, nobody has to install anything new to talk to your agent. Put those two things together and the obvious move is: skip building a new app, skip handing your data to someone else's cloud, and just run your own agent, locally, on the channel people already have open.
That's what this is. One command, your own model key, your own WhatsApp number, your own data.
npm create @wappy_ai/agent
cp .env.sample .env # fill in your model key + WhatsApp creds
npm install
npm run dev # boots the server, opens a tunnel, prints the URL for Meta's webhook config
$ npm create @wappy_ai/agent
┌ Wappy agent setup — let's set up your WhatsApp agent
│
◆ Which model provider will you use?
│ ● Anthropic
│ ○ OpenAI
│ ○ Gemini
│ ○ Local Ollama
│
◆ Where should retrieved knowledge (anything you ingest) live?
│ ● Local (SQLite/LibSQL) — free, no account, works offline
│ ○ Cognee — self-hosted or cloud knowledge graph
│
◆ Add a productivity agent (reads your Gmail/Calendar, answers in plain language)?
│ ○ No
│ ● Yes
└
◇ Interview complete — generating your project...
Done — 7 file(s) written in ./my-agent.
A few questions, then a working agent. No credit card, no signup for Wappy itself, nothing phoning home.
None of these ship pre-built, they're what you wire your own data and tools into. The agent (memory, context, tool-calling, reply formatting) is already built; your business logic is yours.
Every generated project wires in a real Knowledge/RAG layer, so anything you ingest can
actually be retrieved and grounded in a reply. The interview picks what backs it:
COGNEE_SETUP.md covers both
the self-hosted and cloud paths.Same rule as everywhere else here: bring your own instance, nothing routed through us.
Say "yes" to the productivity question and you get a working example of the tool-calling harness used for everything else here, not a toy demo. Connect your own Google account (one click, on a local page the project serves) and text the bot anything about your Gmail or Calendar:
Two generic, parameterized, read-only tools (search_gmail, search_calendar) using each API's
own real query syntax — the model builds the actual query itself, no hand-built filters, no MCP
server. It only reads, never sends or deletes anything. Not connected yet? It says so honestly
instead of making something up.
| Package | What it is |
|---|---|
@wappy_ai/core | The shared contracts everything else is built on. |
@wappy_ai/harness | The agent itself: how it thinks, remembers, and decides what to do. |
@wappy_ai/whatsapp | Talking to WhatsApp correctly: message formatting, retries, a real webhook server. |
@wappy_ai/create-agent | The installer (npm create @wappy_ai/agent). |
@wappy_ai/connector-cognee (optional) | Bring-your-own Cognee REST client + Knowledge implementation, used when you pick Cognee over the local memory backend. |
@wappy_ai/productivity (optional) | The Gmail/Calendar assistant above. |
@wappy_ai/connector-google (optional) | Bring-your-own Google OAuth + the real Gmail/Calendar API calls behind it. |
Every install pulls in core/harness/whatsapp/create-agent. connector-cognee is only
added if you pick Cognee; productivity/connector-google only if you say yes to the
productivity question. Nothing extra otherwise.
COGNEE_SETUP.md covers all three. Not a requirement of npm create @wappy_ai/agent itself.Early days, genuinely pre-1.0. Open to any kind of feedback. See ARCHITECTURE.md
and CONTRIBUTING.md.
MIT. See LICENSE.
Built for people who want a real agent on WhatsApp, not another flowchart.
Not affiliated with, endorsed by, or sponsored by WhatsApp or Meta. This project talks to the public WhatsApp Cloud API, the same one any developer can request access to.
TypeScript
96.6%
JavaScript
2.7%
Wappy: the open-source AI agent SDK for WhatsApp. Bring your own model, your own number, your own data. Local-first, no forced cloud, no vendor lock-in.
See the codeFree. Open source. No account with us, ever. Your conversations, your memory, your data stay in one file on your own machine — nothing routes through a server we run.
AI models finally got good enough to reliably use tools, remember context, and hold a real conversation, not just autocomplete a reply. At the same time, WhatsApp is already the app on over 2 billion phones, nobody has to install anything new to talk to your agent. Put those two things together and the obvious move is: skip building a new app, skip handing your data to someone else's cloud, and just run your own agent, locally, on the channel people already have open.
That's what this is. One command, your own model key, your own WhatsApp number, your own data.
npm create @wappy_ai/agent
cp .env.sample .env # fill in your model key + WhatsApp creds
npm install
npm run dev # boots the server, opens a tunnel, prints the URL for Meta's webhook config
$ npm create @wappy_ai/agent
┌ Wappy agent setup — let's set up your WhatsApp agent
│
◆ Which model provider will you use?
│ ● Anthropic
│ ○ OpenAI
│ ○ Gemini
│ ○ Local Ollama
│
◆ Where should retrieved knowledge (anything you ingest) live?
│ ● Local (SQLite/LibSQL) — free, no account, works offline
│ ○ Cognee — self-hosted or cloud knowledge graph
│
◆ Add a productivity agent (reads your Gmail/Calendar, answers in plain language)?
│ ○ No
│ ● Yes
└
◇ Interview complete — generating your project...
Done — 7 file(s) written in ./my-agent.
A few questions, then a working agent. No credit card, no signup for Wappy itself, nothing phoning home.
None of these ship pre-built, they're what you wire your own data and tools into. The agent (memory, context, tool-calling, reply formatting) is already built; your business logic is yours.
Every generated project wires in a real Knowledge/RAG layer, so anything you ingest can
actually be retrieved and grounded in a reply. The interview picks what backs it:
COGNEE_SETUP.md covers both
the self-hosted and cloud paths.Same rule as everywhere else here: bring your own instance, nothing routed through us.
Say "yes" to the productivity question and you get a working example of the tool-calling harness used for everything else here, not a toy demo. Connect your own Google account (one click, on a local page the project serves) and text the bot anything about your Gmail or Calendar:
Two generic, parameterized, read-only tools (search_gmail, search_calendar) using each API's
own real query syntax — the model builds the actual query itself, no hand-built filters, no MCP
server. It only reads, never sends or deletes anything. Not connected yet? It says so honestly
instead of making something up.
| Package | What it is |
|---|---|
@wappy_ai/core | The shared contracts everything else is built on. |
@wappy_ai/harness | The agent itself: how it thinks, remembers, and decides what to do. |
@wappy_ai/whatsapp | Talking to WhatsApp correctly: message formatting, retries, a real webhook server. |
@wappy_ai/create-agent | The installer (npm create @wappy_ai/agent). |
@wappy_ai/connector-cognee (optional) | Bring-your-own Cognee REST client + Knowledge implementation, used when you pick Cognee over the local memory backend. |
@wappy_ai/productivity (optional) | The Gmail/Calendar assistant above. |
@wappy_ai/connector-google (optional) | Bring-your-own Google OAuth + the real Gmail/Calendar API calls behind it. |
Every install pulls in core/harness/whatsapp/create-agent. connector-cognee is only
added if you pick Cognee; productivity/connector-google only if you say yes to the
productivity question. Nothing extra otherwise.
COGNEE_SETUP.md covers all three. Not a requirement of npm create @wappy_ai/agent itself.Early days, genuinely pre-1.0. Open to any kind of feedback. See ARCHITECTURE.md
and CONTRIBUTING.md.
MIT. See LICENSE.
Built for people who want a real agent on WhatsApp, not another flowchart.
Not affiliated with, endorsed by, or sponsored by WhatsApp or Meta. This project talks to the public WhatsApp Cloud API, the same one any developer can request access to.
TypeScript
96.6%
JavaScript
2.7%