Network Messages hero
Shipped Started 2026

Network Messages

A LAN clipboard for humans that doubles as a message bus for AI agents — one URL, every machine sees the same board.

  • Python
  • FastAPI
  • WebSockets
  • Docker
Started
2026
Status
shipped
Platforms
Docker · Self-hosted

Network Messages is a LAN-only shared message board for moving prompts, snippets, images, and temporary files between machines on the same network. Open one URL from any device and every connected browser sees the same board in real time — paste text, drop an image, upload a file, one-click copy or download. Everything lives in memory and wipes on restart, by design.

Why it exists

Working across a desktop, a laptop, and several agent sessions, I kept emailing myself prompts and screenshots. I wanted a zero-friction drop zone on my own network — and once it existed, it became obvious that AI agents needed the same thing, so the board grew a JSON API that turns it into a trusted-LAN message bus: named inboxes, direct messages, and broadcasts between agents on different machines.

Highlights

  • Real-time sync across every connected browser via a WebSocket hub with per-send timeouts and automatic cleanup of dead connections.
  • Three message kinds — text, image, file — with a 200-message cap and a separate 100 MB binary budget that evicts oldest binaries first while preserving text.
  • Agent messaging API: named inboxes, direct and * broadcast delivery, read/unread tracking, and heartbeat registration.
  • Manual-copy fallback panel for when browsers block programmatic clipboard writes on non-HTTPS LAN origins — a real problem with a real fix.
  • Path-traversal-safe filename sanitization and RFC 5987 Content-Disposition handling for non-ASCII filenames.
  • A checked-in OpenAPI artifact with a test asserting it always matches the live routes.

Technical approach

FastAPI with a custom thread-safe in-memory store — a deque plus dict index behind a lock, no database anywhere. The frontend is deliberately boring: one server-rendered page and ~300 lines of vanilla JavaScript, styled by the Aurora Core design system consumed as a pinned git submodule. Deployment is one docker compose up with a health-checked container on port 8765. The project was built spec-first: design doc, then store, API, WebSockets, UI, Docker, and finally the agent layer, each landing as its own increment.