Jute Dash is a local-first, privacy-respecting home assistant surface designed for bring-your-own agents. It targets tablet kiosks, desktop surfaces, and browser displays, utilizing a modular widget structure and standard agent protocols.
The foundation is built on:
- Local-first Hub: A headless-capable Go daemon managing configuration, SQLite-backed persistence, event streaming, wake words, local API routes, and agent connectivity.
- Dynamic Display: A premium SvelteKit kiosk and PWA app built with shadcn-svelte conventions.
- BYO Agents (A2A): Zero-lockin integration of agentic models via standard Agent to Agent (A2A 1.0) protocol bindings.
- Local MCP Context: A built-in MCP bridge that securely feeds dashboard context and widget skills directly to conversation agents without exposing raw databases or secret credentials.
Before making product changes or contributions, read the design documents in docs/architecture/:
- System Architecture
- Configuration and Persistence
- Display UX
- Visual Customization (Themes)
- Resilience and Error UX
- Widgets
- Widget Skills
- A2A Compatibility
- MCP Bridge
- Voice & Wake Word Architecture
- Text-To-Speech (TTS)
- Security and Privacy
If you want to set up your development environment, run the tests, or spin up the full-stack examples (like the Mock or Kronk agents), please refer to:
Jute Dash publishes a single-container image that runs the Go hub and serves the built display from the same process:
docker compose -f examples/compose/docker-compose.yml upThe Compose example mounts examples/compose/config/config.yaml as bootstrap
configuration and stores runtime data in a Docker volume at /data. See
Distribution for image tags,
environment variables, and config/data mount details.
Jute Dash is open-source software licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only).