Tools for interacting with Xteink E-ink devices, including a CLI for the cloud API, firmware patching utilities, and a custom sync server implementation.
Warning
Reverse Engineered: This project is based on reverse-engineering the official Xteink mobile app. Definitions and implementations may be incorrect, incomplete, or subject to change without notice. Use at your own risk.
Caution
Security Note: By default, all communication with Xteink services (and this custom server) is performed over unencrypted HTTP. This means authentication tokens, passwords, and file data are transmitted in plain text. Do not use sensitive passwords that you use elsewhere.
- CLI Client: Full-featured tool for Xteink Cloud & Custom servers.
- Sync Server: Local file sync for patched devices (Authentication & Full Firmware server are currently mock/planned).
- Web Interface: Browser-based ESP32 flasher and firmware patcher.
Standard:
pip install -e .Development:
pip install -e ".[dev]"Note: It is recommended to use a virtual environment (venv).
# Authentication & Devices
xteink login
xteink status
xteink devices
xteink bind
# Sending Files
xteink send <file_path> <device_id> [save_path]
# Custom Server Usage
xteink --server http://<your_ip>:8000 send <file> <device_id>- Start Server:
python server/server.py - Setup Device: Use the Web Interface to patch your firmware. Replace the default API IP (
8.130.157.48) with your computer's local IP. - Flash: Flash the patched firmware to your device.
The device will now sync directly with your local server instead of the cloud.
- Web Flasher: https://wferr.com/xteink-sync/web/
- API Reference: https://wferr.com/xteink-sync/web/api.html
To run locally:
- Start server:
cd web && python serve.py - Open
http://localhost:8080(Avoidfile://due to CORS).
pytest tests/ -vStatic API documentation is available at web/api.html and can be regenerated using src/xteink/generate_api_docs.py.