Dots on Paper
Provides an ESPHome e-paper online-image configuration fragment for displaying rendered assistant replies on ESPHome-based e-paper displays, with driver, pin, and panel refresh setup left to the user.
Provides a native Home Assistant custom integration that exposes an image entity, reply/status sensors, a character picker, actions, and new-reply events for displaying assistant replies on connected e-ink displays.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Dots on PaperPublish a short reply to my dot saying the meeting is at 3pm"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

Dots on Paper
Give your assistant a tiny face and a place on your desk.
An MCP and Home Assistant bridge that turns real assistant replies into readable e-ink screens. Four switchable characters, a calm reply view, and a little personality when an answer arrives.

heidot, imagined on e-ink. The calendar is fictional; the bridge is real. Watch the MP4 · The “NOO” film · X launch package
Working locally: authenticated publishing, rendering, browser preview, and MCP forwarding. Still to connect: your actual dot account, HA installation, and physical display. Verification and limits
What you get
A local bridge with persistent replies and separate publishing/image keys.
Three MCP tools:
set_dot_status,publish_dot_reply, andget_dot_state.A Home Assistant image entity, reply/status sensors, character picker, actions, and new-reply events.
TRMNL BYOS endpoints, ESPHome/OpenEPaperLink examples, and custom PNG/BMP sizes.
Artist, Curious, Bookish, and Cool — switch the face without losing the answer.
A standalone demo and ready-to-edit campaign assets.
Your dot or HA assistant → authenticated bridge → PNG / BMP → e-ink displayThe dot deliberately publishes its answer through a tool. The bridge does not automatically watch every ChatGPT reply. Display refresh is controlled by the device; the film's smooth animation is an illustrative concept.
Related MCP server: stackchan-mcp
Run the bridge
From this repository's root, with Python 3.11+ and Node.js 22+ installed:
python tools/setup.pyThen start it:
Windows PowerShell | macOS / Linux |
|
|
Open http://127.0.0.1:9035 and select data/credentials.json in the connection panel. Setup creates a local virtual environment, installs the package, and initializes private keys without replacing or displaying them. The first state is “Waiting for your dot.”
With the bridge running, check it using .\run.ps1 -Doctor on Windows or .venv/bin/python tools/doctor.py on macOS/Linux. Setup, LAN access, Docker, and troubleshooting
Connect your real dot
Install the portable plugin or connect its MCP tools to your client. A cloud ChatGPT dot needs a reachable connection — a supported Secure MCP Tunnel or authenticated HTTPS endpoint. A localhost bridge alone is not reachable from the cloud.
After connecting, tell your dot:
Use Dots on Paper for answers in this conversation. Set it to thinking when you start. Publish a short version of your actual answer when you finish.
The local tools are implemented; private account access and device delivery need verification after installation. Real-dot connection guide · REST/API inputs
heidot is the personal dot behind this project's idea. Dots on Paper is the bridge name; configure your own dot's display name when publishing.
Displays and Home Assistant
Platform | Included path | Current validation |
TRMNL / TRMNL X BYOS | Authenticated device-pull endpoint; native screen profiles | HTTP and renderer checked; hardware untested |
Home Assistant | Native custom integration + actual conversation-agent forwarding example | Source checks; live HA runtime untested |
ESPHome e-paper | Online-image configuration fragment | Driver, pins, and panel refresh need your setup |
OpenEPaperLink | HA | Documentation-checked; tag untested |
Generic PNG/BMP clients, Inkplate, portrait viewers | Scoped image URL with named or custom dimensions | Renderer checked; device client required |
Copy custom_components/dots_on_paper into HA's /config/custom_components/, restart HA, and add Dots on Paper in Devices & services. Use a bridge address reachable from HA. HA setup · Profiles, authentication, and refresh behavior
TRMNL cloud private-plugin rendering follows a different schedule and is not connected by this release. HACS publication is also pending.
Try the animation
node demo/serve.mjsOpen http://127.0.0.1:9024/?example=calendar-chaos. Switch all four dots, try the “NOO” conversation, or write a multiline reply. The layout handles paragraphs and lists; the examples do not change its rules.
The campaign includes GIFs, MP4s, native screen stills, and four short posts. The wife-texting exchange is a cancelled scripted draft; no message is sent. The Instinct-inspired image is an independent concept with no Instinct connector. Product facts
Publish and contribute
The source is on GitHub. HACS registration and a tagged release remain separate steps. GitHub release guide
Contributing and checks · Security · MIT license · Asset provenance
This server cannot be deployed
Maintenance
Related MCP Connectors
Create AI Characters and generate their DM and comment replies from any MCP client.
Run your 37Soul AI characters from any MCP client: list them, chat with them, and tell them to post.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceEnables control and monitoring of Home Assistant smart home devices through MCP, allowing users to list entities, check device states, and call services to control lights, switches, sensors, and other connected devices.4-
- AlicenseDqualityBmaintenanceBridges MCP-compatible AI assistants with the Stack-chan robot, enabling speech, listening, vision, movement, and facial expressions through MCP tool calls.1478MIT
- AlicenseAqualityCmaintenanceA self-hosted MCP server for Home Assistant that exposes full control over entity states, service calls, history, templates, and areas via local stdio, enabling AI assistants to manage your smart home.991 npmMIT
- AlicenseAqualityAmaintenanceA comprehensive MCP server that enables AI assistants to interact with Home Assistant, control smart home devices, query states, execute services, and manage automations via natural language.7731,054 PyPI4,940MIT