thunderbolt
Applicationthunderbird/thunderbolt
Open-source AI client for cross-platform use with privacy and local model control.
Overview
Thunderbolt is an open-source, cross-platform AI client that lets users choose their models, own their data, and eliminate vendor lock-in. Supports desktop and mobile platforms, and can be self-hosted on-premises.
README Preview
# Thunderbolt [](https://github.com/thunderbird/thunderbolt/actions/workflows/ci.yml)\n\n**AI You Control: Choose your models. Own your data. Eliminate vendor lock-in.**\n\n\n\n> [!IMPORTANT]\n> ⚠️ **We are excited about the amount of interest Thunderbolt has been getting and want to clarify that it is still early and under active development**. Currently, we are targeting enterprise customers that want to deploy it on-prem. We encourage you to self-host it and try it out, but there are a few caveats we are still working on:\n>\n> - While we eventually plan to make Thunderbolt fully offline-first, it currently depends on authentication and search functionality (though you can disable search on the integrations screen in the app). You can [deploy your own backend with Docker](./deploy/README.md) and sign up in order to test it locally.\n> - You’ll need to add your own model providers - we don’t yet have a public inference endpoint. We recommend using Thunderbolt with [Ollama](https://ollama.com) or [llama.cpp](https://github.com/ggml-org/llama.cpp) if you want free local inference, or you can add API keys for any OpenAI-compatible model provider in the settings.\n\nThunderbolt is an open-source, cross-platform AI client that can be deployed on-prem anywhere.\n\n- 🌐 Available on all major desktop and mobile platforms: web, iOS, Android, Mac, Linux, and Windows.\n- 🧠 Compatible with frontier, local, and on-prem models.\n- 🙋 Enterprise features, support, and FDEs available.\n\n**Thunderbolt is under active development, currently undergoing a security audit, and preparing for enterprise production readiness.**\n\n## Get Started Locally\n\n```sh\nmake doctor # verify your tools — prints exact install commands for anything missing\nmake setup # install frontend + backend dependencies, wire up agent symlinks\nmake up # start Postgres + PowerSync in Docker\nmake run # start the backend (:8000) and frontend (:1420)\n```\n\nFor self-hosting with Docker C
FAQ (5)
informationalDoes Thunderbolt collect telemetry by default on self-hosted instances?
No, for self-hosted/OIDC deployments, telemetry is disabled by default. Consumer/cloud deployments still have telemetry enabled by default. This change is implemented in PR #714.
TroubleshootingHow to fix 'javascriptcoregtk-4.1 not found' error when building Tauri app on Ubuntu?
Install Tauri's Linux system dependencies:
sudo apt install libwebkit2gtk-4.1-dev libjavascriptcoregtk-4.1-dev \\
build-essential curl wget file libxdo-dev libssl-dev \\
libayatana-appindicator3-dev librsvg2-dev libsoup-3.0-devFor other distros, see [Tauri's prerequisites](https://v2.tauri.app/start/prerequisites/#linux). Also ensure
sccache is installed (cargo install sccache).TroubleshootingWhy do I get 401 errors after OIDC login in my self-hosted Docker deployment, despite successful callback?
This was a known issue with OIDC auth mode failing to persist the Bearer token after callback. Fixed in PR #782 by switching to session cookie authentication. Upgrade your deployment and change environment variable VITE_AUTH_MODE from 'oidc' to 'sso'. Also update your Identity Provider (e.g., Keycloak) to reflect the new callback URL. All authenticated requests will then work immediately after login.
TroubleshootingHow to fix 'these Docker images are configured to store database data in a format which is compatible with pg_ctlcluster' error for Postgres container?
Update your docker-compose.yml: change the volume mount from /var/lib/postgresql/data to /var/lib/postgresql. For example, replace '- postgres_data:/var/lib/postgresql/data' with '- postgres_data:/var/lib/postgresql'. Alternatively, pin the Postgres image to postgres:17-alpine to keep the old data layout.
TroubleshootingWhy does the backend pod fail to start in Kubernetes after deploying Thunderbolt v0.1.91?
The backend deployment in v0.1.91 is missing the BETTER_AUTH_SECRET environment variable, causing the pod to crash on startup. This issue has been fixed in PR #548 and will be included in a future release. As a workaround, manually add the BETTER_AUTH_SECRET variable to your backend deployment YAML.