D.A.W.N.

Digital Assistant for Workflow Neural-inference.
Your own private AI assistant — a production-grade JARVIS, written in C.

Overview

I built DAWN from scratch in C/C++ for embedded Linux. It's a full voice assistant — GPU-accelerated speech recognition, high-quality text-to-speech, and today's best large language models. It's designed for NVIDIA Jetson, but also installs on x86 Linux and cloud hosts.

Unlike cloud-dependent assistants, DAWN gives you complete control — your conversations stay on your hardware and your data stays private. With 20+ built-in tools, multi-room satellites, and a full web interface, it holds up as an everyday assistant.

DAWN also supports extended thinking, parallel tool execution, streaming responses, and memory that persists across sessions. Every tool is compiled into the binary — there's no plugin marketplace, no scripting layer, no arbitrary code execution, and no third-party cloud service storing your data or credentials. That's the main difference from the plugin-based agents DAWN gets compared to: a lot of the attack surface those systems have to worry about simply isn't there.

Intelligence

Multi-Provider LLM Integration

DAWN connects to the best AI models available — OpenAI GPT-series, Anthropic Claude, Google Gemini, or any model through the OpenRouter gateway. Prefer to stay offline? Run fully local models via Ollama or llama.cpp. Switch providers on the fly from the web interface.

  • Streaming responses with ~1.3 second perceived latency to first audio
  • Extended thinking / reasoning mode (Claude, OpenAI, Gemini, local)
  • One OpenRouter key fronts hundreds of models from every major vendor
  • Parallel tool execution for concurrent API calls
  • Conversation context management with automatic summarization
  • Vision AI for image analysis and document understanding
  • Local by default — even with a cloud LLM, only your prompt and tool results are sent; your documents, memories, and conversation history stay on your hardware
DAWN WebUI — a conversation with tool calls and debug output visible
Memory

It Actually Remembers You

Most assistants forget everything the moment a chat ends. DAWN doesn't. At the end of each conversation it consolidates what mattered — the people in your life, your preferences and routines, the projects you're working on — into a memory that carries across every future conversation. Come back a week later and it still knows what you were talking about.

It's the piece I've put the most time and money into, and it's what makes DAWN feel less like a chatbot and more like a JARVIS that actually knows you.

  • Cross-conversation recall: facts, preferences, and context persist across every session — it picks up where you left off
  • Entity graph: people, places, and things are stored as a connected web of relationships, not a flat list
  • Sleep-style consolidation: memories are extracted after a conversation ends, so a live chat never slows down
  • Hybrid recall: keyword + semantic search finds the right memory even when you phrase it differently
  • Understands time: "last month," "the other day," and "yesterday" resolve to real dates
  • Self-correcting: newer facts supersede old ones, and confidence fades over time
  • Yours alone: every memory lives in a local database on your hardware — never uploaded
What DAWN remembers about you Pepper Potts partner Cheeseburger the usual Mark III current build Rhodey best friend Malibu home You Every conversation adds to a connected memory of your world
Interface

Full Web Interface

A complete web UI served directly from DAWN — no separate web server needed. Voice and text input, real-time streaming responses, conversation history, and full system configuration. Switch LLM providers, adjust model parameters, and toggle extended thinking — all from the browser.

  • 7 built-in color themes
  • Voice input with push-to-talk and wake word
  • LLM provider/model switching and parameter control
  • Conversation history with full text search
  • Document library with drag-and-drop upload
  • Vision/image upload for AI analysis
  • Calendar, email, contacts, and memory management
  • Messaging channels — chat with DAWN from Telegram, Slack, Discord, or SMS
  • Debug mode with raw LLM output
DAWN WebUI — a conversation shown in one of the color themes

20+ Built-in Tools

Every tool is native C — no plugins, no scripting layers, no external dependencies at runtime.

Calendar
CalDAV sync with Google Calendar. Create, query, and manage events with recurrence support.
Email
IMAP/SMTP and Gmail REST API. Read, compose, search, and manage mail across multiple accounts.
Web Search
Privacy-respecting search via SearXNG. No tracking, no ads, no data harvesting.
Weather
Current conditions and multi-day forecasts. Location-aware with configurable units.
Music Player
Local music library with playlist builder, genre search, shuffle/repeat, and queue management.
Scheduler
Timers, alarms, reminders, and scheduled tool execution. Recurrence, snooze, and audible chimes.
Document Search
RAG-powered semantic search across uploaded documents. Hybrid cosine + keyword matching.
Home Assistant
Smart home control via Home Assistant API. Lights, switches, climate, and entity queries.
Memory
Persistent knowledge graph with entities and relations. Remembers across conversations.
Contacts
Contact management with search. Linked to the knowledge graph for relationship context.
Vision AI
Analyze images and screenshots via multimodal LLM. Upload from WebUI or capture from MIRAGE.
Calculator
Expression evaluation with a digit-perfect exact mode for arbitrary-precision integers, plus factorials, unit and base conversion.
Messaging Channels
Chat with DAWN from Telegram, Slack, Discord, or SMS. Each channel is a persistent conversation with full tools and memory.
Phone & SMS
Place and receive calls and texts on a real number via the ECHO modem. Caller ID from contacts, with call and SMS history.
Notes & Reference
File and recall reference text with hybrid keyword + semantic search, surgical edits, and version history with undo.
Code Analysis
Index your source repositories into a code graph and ask about them — call sites, definitions, and branch diffs.
Image Search
Search the web for images, fetched server-side and cached. SSRF-protected and displayed inline.
URL Fetcher
Fetch and read web pages, with a headless-browser fallback for JavaScript-heavy sites.
Visual Diagrams
The LLM renders inline SVG, HTML, and Chart.js visuals — flowcharts, diagrams, and data charts right in the conversation.
Multi-Step Plans
A plan executor runs multi-step workflows with conditionals and loops in a single LLM round trip.
Sound Effects
Play suit sound effects across the OASIS armor system, with concurrent multi-slot playback.
Distributed

Multi-Room Satellites

One server, one port, every room. DAWN's satellite system puts a voice assistant anywhere in your home — from a Raspberry Pi with a touchscreen to a tiny ESP32 push-to-talk module.

  • Tier 1 (Raspberry Pi): Local ASR/TTS, SDL2 touch UI, text-only to server
  • Tier 2 (ESP32): Streams raw PCM audio, server handles all processing
  • Unified WebSocket protocol — all tiers on the same port
  • Capability-based routing — server auto-detects device type
  • Pre-shared key authentication for secure registration
One server, one port — satellites in every room Living Room Tier 1 · Raspberry Pi Kitchen Tier 1 · Raspberry Pi Office Tier 2 · ESP32 Garage Tier 2 · ESP32 Web Browser WebUI client Mobile App Coming soon DAWN Server WebSocket · Port 3000 One server, one port — every satellite, browser, and app connects the same way
Privacy

Private by Design

DAWN runs entirely on your hardware. Speech recognition uses GPU-accelerated Whisper locally. TTS uses Piper — no cloud calls for voice processing. There is zero telemetry, zero tracking, zero data collection.

  • GPU-accelerated Whisper ASR on Jetson (CUDA)
  • Piper TTS with ONNX Runtime — fully offline voice
  • Optional fully local LLM via Ollama or llama.cpp
  • All data stored in local SQLite databases
  • Encrypted credential storage with libsodium
  • No telemetry. No analytics. No phone-home.
NVIDIA Jetson Orin hardware running DAWN on the bench

Recommended Hardware

DAWN runs on a range of hardware, from budget Raspberry Pi to NVIDIA Jetson.

Platform Price Role Notes
Jetson Orin Nano Super $249 Primary Best value. CUDA GPU for Whisper ASR + local LLM
Jetson Orin NX 16GB ~$1,000 Premium More GPU power for larger local models
Jetson AGX Orin 64GB ~$2,000 Enthusiast Maximum GPU + RAM for running full-size local LLMs
Raspberry Pi 5 $125 Budget / Satellite No GPU acceleration. Best as Tier 1 satellite

Get Started

It's all open under GPLv3. Clone it and follow the setup guide.