WhatsApp Web client optimized for e-ink devices (Kindle). Built with Python, FastAPI, HTMX, and neonize.
- 📱 Multi-user sessions — Each user links their own WhatsApp via QR
- 📖 E-ink optimized UI — High contrast, large fonts, no animations
- ⚡ Lightweight — Pure HTML + HTMX, no heavy JS frameworks
- 💬 Real-time messaging — Send & receive text messages
- 🔒 Session isolation — Each user gets their own WhatsApp client & data
Each user visiting the web app gets a unique session cookie. On first visit, a WhatsApp client (via neonize) is created for that session with its own SQLite database. The user scans a QR code with their phone to link their WhatsApp, and from there they can view chats and send/receive messages — all through an e-ink friendly interface.
- Python 3.10+
- A device on the same network to access the web UI (e.g., a Kindle)
# Clone the repo
git clone https://github.com/damkandev/whatkind.git
cd whatkind
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run
python main.pyThe server starts on http://0.0.0.0:8000. Open it from your Kindle or any browser on the same network.
- Open
http://<your-ip>:8000on your device - Wait for the QR code to appear
- Open WhatsApp on your phone → Settings → Linked Devices → Link a Device
- Scan the QR code
- Start chatting!
whatkind/
├── main.py # Entry point — starts FastAPI server
├── requirements.txt # Python dependencies
├── internal/
│ ├── session.py # Per-user session management
│ ├── server/
│ │ └── app.py # FastAPI routes (session-aware)
│ └── whatsapp/
│ └── client.py # Neonize client factory (per-session)
├── templates/ # Jinja2 HTML templates (e-ink optimized)
│ ├── base.html
│ ├── index.html # QR login page
│ ├── chats.html # Chat list
│ ├── chat.html # Chat detail / messaging
│ └── partials/ # HTMX partial templates
└── sessions/ # Auto-created session SQLite DBs (gitignored)
| Component | Technology |
|---|---|
| Backend | FastAPI |
| neonize | |
| Frontend | HTML + HTMX |
| Templates | Jinja2 |
| QR Codes | qrcode |
- 👥 Group chats support
- 🖼️ Convert stickers to images and display in chats
- 🎙️ Transcribe audio messages and display as text
- ✏️ Edit contact names
- 🔄 Sync previous chat history
- 🚀 Deploy to production
MIT — see LICENSE for details.