You walk in
The camera sees a person. Nothing has been recorded.
An always-on AI terminal for one room in your house. It sees you, greets you by name, listens when you speak, and answers out loud. Runs on your own hardware, on a home server with a GPU.
Personal, non-commercial project. "ComStar" and the starburst are BattleTech IP, used affectionately.
The product is a sequence. These timestamps are the latency budget COMSTAR is built to defend.
The camera sees a person. Nothing has been recorded.
Your face opens your session, with your memory and your tools.
"Hey COMSTAR, what's on my calendar this afternoon?"
Out loud, while the emblem pulses with the words.
Most of that is the agent thinking on the GPU host, not the Pi. Rough target split: face match on the server in about a second, speech and tool calls take most of the rest, then TTS comes back for playback on the terminal. Simple questions land in six seconds; anything that has to call out to your calendar or your house takes longer.
Target times. Labelled until they have been measured with a real walk-up.
Real things you can ask. Replies are what the agent does, not marketing copy.
Reads your next three events.
Checks your inbox and summarises.
Home Assistant, instantly.
Actually looks, and tells you.
Only COMSTAR does thisAdjusts its own speaker volume.
Goes dormant until you say the wake word.
Recalls it from your session memory.
Only COMSTAR does thisAn Echo Show has a camera. A Nest Hub has a camera. Neither one changes who it is when you walk up.
COMSTAR does. The face it recognises becomes the identity of the conversation, so your history, your calendar, your mail and your smart home are yours. Your partner walks up and gets theirs.
A guest walks up and gets a guest's version: it will talk to them, and it will not touch your calendar, your mail, or your lights.
Nobody has to log in. Nobody has to say a name. It just knows.
Face recognition runs the moment someone enters frame. No wake word needed to be noticed.
Ask a follow-up for ten seconds after any answer without repeating the wake word.
Pair Google once from the screen with a QR code. Guests can’t.
Home Assistant, and anything else you expose as a tool.
Vision is a tool it can decide to use mid-answer, not a fixed prompt.
The emblem tells you at a glance: idle, watching, listening, thinking, speaking.
Say so and it goes dormant until the wake word. Not a setting buried in an app.
Five emblems ship. It's an SVG file. Change it.
If ethernet and Wi-Fi client are both down, it opens a temporary setup hotspot so you can join and open the ops console from a phone.
Pair once with a one-time token. Client certificates stay on the terminal; speech sidecars stay on the LAN.
The wake word runs on the terminal itself. Audio sits in memory and is never written to disk. Nothing is transmitted until you have actually addressed it. Pairing material for the orchestration engine stays on the device under a local data directory.
There is a hardware mute. Software mute is not a promise you can make to a guest standing in your kitchen.
You can unplug your router and it still answers.
That promise is about the device on your LAN. This documentation site uses Google Analytics so we can see whether anyone reads it.
The voice is a config line. COMSTAR is a face for agentic-orchestration, so anything you can teach that engine, this thing can say out loud. Swap the wake word. Swap the model. Add a tool. Point it at a different orchestrator entirely. It’s Apache-2.0. Nothing is gated.
Terminal total $200
Plus: a home server with an NVIDIA GPU.
These are the bring-up parts. Substitutes are welcome. See Hardware for detail.
If you build one this month, you are building a preview. That is the honest position, and it’s why every decision is written down: the architecture records, the interface contracts, the test plan, and a tracker that says what percentage of each milestone is done.
Not building this weekend? Star the repo to follow along, or watch the tracker.
Last commit: 2026-08-13 · Roughly three quarters through the first phase · tracker
Proto Hologram proved that an embodied presence in a room is categorically different from a screen. It costs between $10,000 and $250,000, runs a closed operating system, and will not let you put your own agent behind it. COMSTAR is not a volumetric display. It is a cheap HDMI panel and a live SVG emblem that still gets the presence right at a fraction of the cost. This is the open version.
Vision runs through CodeProject.AI because one GPU service already does person detection and face recognition on the LAN. Speech and wake use the smaller single-purpose stacks alongside it.
No. It does not do music streaming, shopping, phone timers, or third-party skills ecosystems. What it does that they cannot: recognise who walked in, open a per-person agent session with their memory and tools, look around the room mid-answer, and stay entirely on your LAN.
Yes, effectively. The Pi is a thin terminal. Vision, preferred speech, and orchestration run on a machine with a GPU. Without one you can still develop on a Mac with local fallbacks, but the production path assumes an NVIDIA GPU host on your LAN.
The budget is under 15 seconds end-to-end, ideally under 6. Orchestration (tool calls) dominates. STT is about 1 to 5 s depending on GPU host versus the Pi's local fallback. Numbers on the walk-up strip are targets until they have been measured with a real walk-up.
No. The wake word runs locally on the terminal. Capture audio lives in a ring buffer in memory and is not written to disk. Nothing is sent for transcription until you have actually addressed it.
An unrecognised face opens a restricted guest session automatically. No login, no enrollment. It will talk. It will not touch your calendar, mail, or smart-home tools. That is the default on a face miss, not a separate mode you configure.
Identity resolves by repeated face votes and then holds for a short TTL. One active session at a time. If both of you are in frame, the stronger match wins; when that person leaves and the TTL expires, the other can take over. Guests never inherit someone else's tools.
Bring-up is English. Speech in and out ride Whisper and Piper (or the GPU speech sidecars), so other languages those models support are possible by configuration. They are not the tested path yet.
Yes. The orchestrator is model-agnostic. Point agentic-orchestration at whatever backend you already run.
This documentation site uses Google Analytics. The COMSTAR device on your LAN does not phone home and has no product telemetry. Different machines, different promises.
BattleTech. This is a personal, non-commercial project. “ComStar” and the ComStar starburst are BattleTech IP (Topps / Catalyst Game Labs), used affectionately.
It brings up a temporary open Wi-Fi hotspot named after the device, hands out addresses around 10.87.65.1, and shows a QR on the screen for the ops console. Join the hotspot, then scan. The admin token still gates the UI. Turn the hotspot off with an environment flag when you do not want it.
On the production LAN path, orchestration uses HTTPS with a client certificate enrolled once from the ops console (or a one-time CLI enroll). Certificates live on the device and are never committed to git. Speech services on the same host remain ordinary LAN HTTP.
No. It is a build. The parts list and getting-started guide are free and ungated.
You should, if what you want is a reliable local voice assistant for the house. Voice Preview Edition is a real product with real support, and today it is the better voice controller. COMSTAR is a different thing: an addressable presence with identity and an agent behind it. Buy Voice PE for lights and timers. Build COMSTAR if you want something that knows who just walked in.
| Terminal | Raspberry Pi 4 Model B, 4 GB |
|---|---|
| Form | Lab bring-up: HDMI panel with the Pi nearby. No finished enclosure or wall mount yet. |
| Power (terminal) | Roughly 8 to 12 W for Pi, panel, and speakers. The GPU host is separate and much higher. |
| Camera | UVC webcam (bring-up: Logitech C525): vision only |
| Microphone | Dedicated array preferred (ReSpeaker Lite / XMOS); webcam mic for bring-up only |
| Display | HDMI panel, roughly 800×480 to 1280×720 |
| Audio out | HDMI or powered speakers, played by the kiosk browser |
| AI server | NVIDIA GPU host: CodeProject.AI, agentic-orchestration, preferred speech sidecars |
| Ports (Pi) | Bridge HTTP :8776 · kiosk WS :8777 · audio WS :8778 |
| Ports (AI server) | Orchestration HTTPS :8765 (mutual TLS) · CodeProject.AI :32168 · STT :8090 · TTS :8091 |
| Languages | Dart (bridge) · Python (audio, speech) · Chromium kiosk |
| Licence | Apache-2.0 |
About the builder
COMSTAR is built by Zlatko Lakisic. Two decades of enterprise architecture taught the same lessons this terminal runs on: clear boundaries, local control, and systems you can explain when they misbehave.
Applying those principles at home keeps the craft honest. A room will not forgive a clever design that fails when someone walks in.
If you want the professional trail, it is on LinkedIn. The source of truth for this project lives on GitHub.