Spud Hub
The main Tater install. It owns the configured local or remote model stack, Hydra, Verbas, People records, history, TTS/STT settings, and linked-node management.
Docs
Spud Hub lets one full Tater install become the main model and tool server for paired Spudlets and Little Spud clients. Pairing uses a QR code or manual sync code, then each linked device receives a saved node token for native Tater API calls.
Spud Link has explicit roles so the Hub knows whether the paired device needs raw model calls or full Hydra chat with tools, media, voice, and progress events.
The main Tater install. It owns the configured local or remote model stack, Hydra, Verbas, People records, history, TTS/STT settings, and linked-node management.
A full Tater node that pairs to the Hub. In Spudlet mode its Base model becomes Spudlet via Spud Hub, so LLM calls route through the Hub instead of local model settings.
A lightweight chat client that sends user name and device name to the Hub, then receives native Tater chat events, tool notices, artifacts, TTS/STT behavior, and follow-up mic decisions.
The Hub creates a temporary pairing code and encodes the connection details into a Tater Spud Link QR payload. Clients can scan it or paste the manual code with the Hub URL.
Authorization: Bearer and X-Spudlink-Token.Spud Hub keeps a live list of linked nodes so operators can see what is connected and remove access when needed.
little_spud:user:device and mapped later in People.Spud Link uses Tater-native endpoints because Tater needs more than plain chat completions: tool progress, generated media, active-run status, TTS, STT, follow-up mic decisions, identity, and linked-device telemetry.
| Endpoint | Used by | What it does |
|---|---|---|
POST /api/spudlink/pairing-code | Hub WebUI | Creates a temporary pairing code plus QR payload for Spudlets and Little Spuds. |
POST /api/spudlink/pair | Clients | Exchanges the pairing code for a linked node record and node token. |
POST /api/spudlink/heartbeat | Clients | Updates device presence, role, metadata, and current activity on the Hub. |
POST /api/spudlink/v1/tater/llm | Spudlets | Runs native raw model calls on the Hub for a paired full Tater node. |
POST /api/spudlink/v1/tater/chat | Little Spud | Streams Hydra chat events, tool notices, final text, artifacts, and follow-up decisions. |
GET /api/spudlink/v1/history | Little Spud | Fetches scoped chat history and active-run state for reconnects. |
POST /api/spudlink/v1/tts/speech | Little Spud | Uses the Hub's configured TTS voice to synthesize reply audio. |
WS /api/spudlink/v1/stt/stream | Little Spud | Streams microphone audio to server-side STT with VAD-style turn ending. |
GET /api/spudlink/v1/files/{file_id} | Little Spud | Serves generated images, videos, audio, and other returned artifacts to the paired client. |
When a Tater install is switched to Spudlet mode and paired with a Hub, the Base model dropdown shows Spudlet via Spud Hub.
/api/spudlink/v1/tater/llm endpoint.Little Spud is designed as a lightweight client for phones, tablets, laptops, and future apps. It does not need to run Tater locally.
For LAN testing, the QR payload can use the Hub's local HTTP URL such as http://tater.local:8501 or an IP address. Browser private-network rules can still require the Hub to allow CORS for Spud Link routes.
If Little Spud is opened over HTTPS, the Hub URL should also be HTTPS. Put the Hub behind the same public HTTPS route or configure Public / LAN URL so QR payloads point at the reachable address.