This page explains how to install Thundercomm AI Agent on a Thundercomm board, what you need before you start, and how to verify that everything works. The whole install is a single copy-paste command: no .NET runtime, no extra setup, no manual dependency handling.
| Requirement | Details |
|---|---|
| Board | Thundercomm TurboX C7790 / TurboX IRB9 (ARM edge AI) or Rubik Pi 3 (12 TOPS, Qualcomm QCS6490) |
| OS | A 64-bit ARM Linux: Debian/Ubuntu-based or Armbian. Other 64-bit ARM distros with systemd and apt work too |
| Storage | At least 1.5 GB free (the release archive is ~700 MB, the installed app ~810 MB) |
| Memory | 4 GB or more recommended |
| Network | Internet access to download the release (GitHub). The assistant itself can later run fully offline with a local model |
| Access | A terminal (SSH or local console) with sudo rights |
Copy and paste this into the terminal of the Thundercomm:
curl -fsSL https://raw.githubusercontent.com/Graphene-Lab/Thundercomm-AI-Agent/main/install.sh | bashWhat the installer does automatically:
- Detects the platform (must be 64-bit ARM Linux) and installs
curl,tarandlibicuif they are missing. - Downloads the latest AgentBridge
linux-arm64release from GitHub (pin a version withTHUNDERCOMM_AGENT_VERSION=v1.26.08.30). - Unpacks it directly into
/opt/agentbridgeand fixes the file ownership. - Creates and starts a systemd service (
agentbridge) that keeps the assistant always on and starts it at boot. - Prints the final status.
# Install a specific version instead of latest
curl -fsSL https://raw.githubusercontent.com/Graphene-Lab/Thundercomm-AI-Agent/main/install.sh | \
THUNDERCOMM_AGENT_VERSION=v1.26.08.30 bash
# Install into a custom folder (no systemd service)
curl -fsSL https://raw.githubusercontent.com/Graphene-Lab/Thundercomm-AI-Agent/main/install.sh | \
THUNDERCOMM_AGENT_HOME=/home/pi/agent THUNDERCOMM_AGENT_NO_SERVICE=1 bashAfter the install the service is already running. Verify it:
curl -s http://localhost:5290/health
# -> {"status":"healthy",...}
curl -s http://localhost:5290/v1/models
# -> lists the agents and the configured AI providersTerminal chat (TUI): the service owns port 5290, so for the interactive chat run:
sudo systemctl stop agentbridge
/opt/agentbridge/agentWhen you are done, put the assistant back always-on:
sudo systemctl start agentbridgeAPI access: the assistant answers any OpenAI-compatible call on http://<thundercomm-ip>:5290 (e.g. /v1/chat/completions, /v1/audio/speech) — scripts, bots and the web client all use the same server.
Type /modelsetup in the chat and pick a provider:
- Local model (fully offline): Ollama or ExLlamaV2 on the board itself.
- Cloud provider: DeepSeek, Gemini, Anthropic — with the built-in GDPR-ready anonymisation that strips names and identifiers before any request leaves the device.
You can also edit providers.json next to the executable directly (it is the single source of truth for API keys) — see the AgentBridge documentation.
-
Text-to-speech (TTS) — yes, verified on ARM: the Kokoro neural voice, its voices and the ONNX model are shipped in the archive. Test it:
curl -s -X POST http://localhost:5290/v1/audio/speech \ -H 'Content-Type: application/json' \ -d '{"model":"kokoro","input":"Hello from the Thundercomm.","voice":"af_heart"}' \ -o /tmp/hello.wav && file /tmp/hello.wav # -> RIFF ... WAVE audio, 16 bit, mono 24000 Hz
-
Speech-to-text (dictation / voice calls) — the STT engine (
voiceagent-stt) is built for Windows and is not yet shipped for Linux ARM. The/v1/voice/listenendpoint reports itself unavailable on Linux until an ARM build of the STT component is published. Text chat, documents, email, research, Telegram, scheduling and podcasts all work on the Thundercomm.
The assistant updates itself automatically in the background (see the Updates guide). To force a fresh install of a newer release:
sudo systemctl stop agentbridge
curl -fsSL https://raw.githubusercontent.com/Graphene-Lab/Thundercomm-AI-Agent/main/install.sh | bashYour documents, keys and settings are never touched.
sudo systemctl stop agentbridge
sudo systemctl disable agentbridge
sudo rm -f /etc/systemd/system/agentbridge.service
sudo systemctl daemon-reload
sudo rm -rf /opt/agentbridge| Problem | Fix |
|---|---|
unsupported architecture |
The installer only runs on 64-bit ARM (aarch64) Linux — check with uname -m |
| Service does not start | systemctl status agentbridge and journalctl -u agentbridge -n 30 for the error; common causes: missing libicu, or an edited config file with a syntax error |
| Port 5290 already in use | Stop the other instance (sudo systemctl stop agentbridge), or change "Urls" in /opt/agentbridge/appsettings.json and restart |
| Chat answers fail with "API key is not set" | No provider is configured yet — run /modelsetup in the chat, or add the provider in providers.json |
| Chat answers fail with an error about a local bridge | Providers on the same LAN are supported since AgentBridge v1.26.08.30 (they need no API key); point providers.json at the machine that runs the bridge (e.g. http://192.168.x.x:8787/) |