# whatsapp-chatgpt: A Puppeteer-Based WhatsApp Bot for OpenAI GPT and DALL-E 2

> whatsapp-chatgpt is an unmaintained MIT-licensed TypeScript bot that connects a personal WhatsApp account to OpenAI's GPT and DALL-E 2 APIs using Puppeteer. The README states clearly that it is unmaintained and warns that WhatsApp may block accounts that use it.

**askrella/whatsapp-chatgpt** — ChatGPT + DALL-E + WhatsApp = AI Assistant :rocket: :robot:

- Repository: https://github.com/askrella/whatsapp-chatgpt
- Stars: 3,784 · Forks: 901
- Language: TypeScript
- License: not declared
- Published: 2026-09-14 · Updated: 2026-09-14 · Language: en
- Canonical page: https://hysenlabs.com/projects/askrella-whatsapp-chatgpt

## What the Bot Does and the Risk It Carries

whatsapp-chatgpt runs a WhatsApp bot on a personal WhatsApp account. When a user sends a text message to the bot's number, the bot passes the message to OpenAI's GPT model and returns the response. When a user sends a voice message, the bot transcribes it and responds in text. When a user requests an image, the bot generates one using DALL-E 2.

The mechanism for the WhatsApp connection is Puppeteer: the bot runs a real instance of WhatsApp Web inside a headless Chromium browser. The README explains this approach was chosen to avoid the platform's blocking mechanisms.

However, the README includes a clear disclaimer: 'WhatsApp does not allow bots or unofficial clients on its platform, so this should not be considered completely safe.' Using Puppeteer on a personal WhatsApp account to drive automation violates WhatsApp's terms of service, and the README states that account blocking is possible. This is a project for experimentation and personal use rather than a stable production integration.

The README also states explicitly that the project is unmaintained and is looking for maintainers. The last push was on 2026-07-12, but the project's own self-description frames it as no longer under active development.

## Installing with Docker or Node.js

The README documents requirements as Node.js 18 or newer, a recent version of npm, an OpenAI API key, and a WhatsApp account. The full installation and configuration documentation is at askrella.github.io/whatsapp-chatgpt rather than in the README itself.

A Docker Compose file is included:

```yml
version: "3"
services:
    whatsapp-chatgpt:
        container_name: whatsapp-chatgpt
        read_only: true
        image: ghcr.io/askrella/whatsapp-chatgpt:master
        environment:
            OPENAI_API_KEY: ""
            OPENAI_GPT_MODEL: ""
            PREFIX_ENABLED: ""
            SERPAPI_API_KEY: ""
        restart: unless-stopped
        volumes:
            - session-data:/app/session
volumes:
    session-data:
```

The docker-compose.yml uses the image ghcr.io/askrella/whatsapp-chatgpt:master. The OPENAI_API_KEY environment variable is required; OPENAI_GPT_MODEL, PREFIX_ENABLED, and SERPAPI_API_KEY are optional. A named volume session-data persists the WhatsApp session across container restarts so the bot does not require re-authentication each time.

For Node.js, the package.json start script is npx vite-node src/index.ts. The project is written in TypeScript and uses vite-node to execute the TypeScript source directly without a separate compile step.

## How the Puppeteer Connection Works

WhatsApp does not provide an official API for personal accounts. The bot bridges this gap by running a Chromium browser instance through Puppeteer, automating WhatsApp Web as a human user would. The library whatsapp-web.js, listed in the package.json dependencies as version ^1.25.0, handles the WhatsApp Web automation layer. This library manages the QR code scan for authentication, session persistence, message sending and receiving, and voice message extraction.

The Dockerfile shows what this requires at the OS level:

```dockerfile
FROM node:bullseye-slim
RUN apt update
RUN apt install -y gconf-service libgbm-dev libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
RUN apt install -y chromium
```

The Chromium installation and the 20+ Chromium dependencies are part of the Docker image. Running the bot outside Docker on a server requires installing those same packages. The Dockerfile also installs ffmpeg for voice message processing. An optional section (commented out by default) would install OpenAI Whisper locally for transcription, described as around 6 to 7 GB.

## GPT, DALL-E 2, and Voice Transcription as the Three AI Functions

The bot connects three AI capabilities from OpenAI's API. Text responses use GPT, with the specific model configurable via the OPENAI_GPT_MODEL environment variable. Image generation uses DALL-E 2. Voice message transcription is supported, allowing users to send audio messages that the bot transcribes and then responds to.

The dependencies in package.json include chatgpt version ^5.2.5, openai version ^4.52.1, and langchain version ^0.0.156. AWS SDK version ^2.1649.0 is also listed, though the README does not document what AWS service is used.

SERPAPI_API_KEY appears in the docker-compose.yml environment variables. SerpAPI provides search engine results; when configured, this likely allows the bot to answer questions by searching the web. The README does not document this feature, but its presence in the configuration template indicates it is implemented.

The README notes that all operations are billed by OpenAI at their standard API rates. The disclaimer reads: 'The operations performed by this bot are not free. You will be charged by OpenAI for each request you make.'

## Unmaintained Status and Operational Risks

The README's second line states: 'This project is unmaintained, looking for maintainers!' This is a significant constraint for adoption. WhatsApp updates its web client regularly, and whatsapp-web.js must update to match each change. If whatsapp-web.js or Puppeteer breaks compatibility with a new version of WhatsApp Web, the bot will stop working without a maintainer to update the code.

The repository has no GitHub releases. There is no versioned contract, and the master branch is the only reference point.

The license from package.json is MIT, which permits use and modification. The repository-level license field is listed as unknown in the project metadata, but the package.json and README badge both indicate MIT.

Running the bot requires a real WhatsApp account. If WhatsApp detects the automated usage and blocks the account, that WhatsApp number is affected. The README acknowledges this risk but does not quantify the likelihood of blocking. Users who link a personal number to this bot accept that risk.

## WhatsApp Business API as the Official Alternative

Meta provides the WhatsApp Business API for legitimate bot and automation use cases. It allows developers to send and receive WhatsApp messages programmatically without automating a personal account through a browser. The key difference from whatsapp-chatgpt is compliance: the Business API is Meta's official, supported channel for developers, while whatsapp-chatgpt automates a personal account in a way WhatsApp explicitly prohibits.

The Business API requires a Meta Business Manager account, verification, and approval for a WhatsApp Business number. It is not free for outbound messages beyond a certain volume. The setup process is more involved than running a Docker container with an OpenAI key.

For a developer building a proof-of-concept or testing locally, whatsapp-chatgpt is faster to start because it requires only a personal WhatsApp account and an OpenAI key. For production deployments or any service where account blocking would be disruptive, the WhatsApp Business API is the appropriate path because it operates within Meta's terms of service. The two approaches target different situations: experimentation versus production.

## Conclusion

Developers who want to experiment locally with a WhatsApp-connected LLM bot, and who accept the account-blocking risk and per-request OpenAI cost, can run whatsapp-chatgpt via Docker or Node.js. The README explicitly states the project is unmaintained and is looking for maintainers. For any production use or customer-facing automation, the WhatsApp Business API through Meta is the appropriate path, since it operates within WhatsApp's terms of service. Before running the bot, verify that your OpenAI account has DALL-E 2 access enabled, as image generation is a separate capability.

## FAQ

### What is whatsapp-chatgpt?

whatsapp-chatgpt is a TypeScript bot that connects a personal WhatsApp account to OpenAI's GPT and DALL-E 2 APIs. It uses Puppeteer and whatsapp-web.js to automate WhatsApp Web. The README states the project is unmaintained.

### How do you install whatsapp-chatgpt?

Run the Docker image ghcr.io/askrella/whatsapp-chatgpt:master with a docker-compose.yml that sets OPENAI_API_KEY, or clone the repository and run npm start on Node.js 18 or newer. Full instructions are in the documentation at askrella.github.io/whatsapp-chatgpt.

### Is whatsapp-chatgpt safe to use?

The README warns that WhatsApp does not allow bots or unofficial clients and that account blocking is possible. It states: 'this should not be considered completely safe.' Using a personal WhatsApp number with this bot carries the risk of that number being blocked.

### Is whatsapp-chatgpt free?

The bot itself is MIT-licensed open source. However, the README states that each request to the bot calls OpenAI's API, and OpenAI charges per request at their standard rates.

## Sources

- [askrella/whatsapp-chatgpt on GitHub](https://github.com/askrella/whatsapp-chatgpt)
- [Issues](https://github.com/askrella/whatsapp-chatgpt/issues)
- [README](https://github.com/askrella/whatsapp-chatgpt/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/askrella-whatsapp-chatgpt
