Saturn
Local-network discovery for AI endpoints. Zero config, zero registry, RFC-grade.
Saturn is a DNS-SD/mDNS protocol — service type _saturn._tcp.local. — for OpenAI-compatible AI backends on a LAN. Run a Saturn responder once on your home, lab, or office network; every device on that network discovers it the same way it discovers a printer.
- Zero-config. No accounts, no per-app keys, no manual endpoint URLs.
- RFC-based. RFC 6762 (mDNS) + RFC 6763 (DNS-SD). The wire format is the contract.
- Multi-language. Reference implementations in Go, Python, Rust, TypeScript, and Lua interoperate with no shared SDK.
- Encrypted-aware. Cloud backends ship 10-minute ephemeral JWTs in TXT records, rotated every 5 minutes.
- Sub-second discovery on a quiet LAN.
See it work
Saturn on the wire
Three DNS record types — PTR, SRV, TXT — carry every Saturn advertisement. There is no Saturn-specific transport, no Saturn handshake, and no Saturn registry. If you can send a UDP/5353 multicast and parse a DNS message, you can implement Saturn.
client server (Saturn responder)
│ │
│ PTR query: _saturn._tcp.local. (224.0.0.251) │
│ ───────────────────────────────────────────────► │
│ PTR answer: ollama._saturn._tcp.local. │
│ ◄─────────────────────────────────────────────── │
│ SRV+TXT query: ollama._saturn._tcp.local. │
│ ───────────────────────────────────────────────► │
│ SRV answer: macbook.local. port 11434 │
│ TXT answer: version=1 api_type=openai ... │
│ ◄─────────────────────────────────────────────── │
│ HTTP GET http://macbook.local:11434/v1/models │
│ ───────────────────────────────────────────────► │
The first two messages are mDNS. The third is plain HTTP, not part of the Saturn protocol — Saturn ends once the client has a URL. Full byte-annotated TXT layout and a tcpdump capture: Spec → Saturn on the Wire.
Implementations
| Language | Package | mDNS library |
|---|---|---|
| Go | saturnd/ |
grandcat/zeroconf |
| Python | saturn-ai |
python-zeroconf |
| Rust | saturn-router |
mdns-sd |
| TypeScript | ai-sdk-provider-saturn |
multicast-dns |
| Lua | vlc_extension |
dns-sd CLI |
| CLI | saturn |
— |
Seven artifacts across five languages and four mDNS libraries, sharing no Saturn-specific code (Saturn.md:976). Interoperability comes from the wire format alone.
Three routes from here
- Use Saturn — point a tool at a discovered endpoint. → Quickstart
- Build a client — write code that browses
_saturn._tcp.local.and routes by priority. → Implementations - Implement Saturn — write a responder in a new language. → Spec v0.2
What is mDNS?
Multicast DNS is a UDP/5353 protocol that lets devices on a LAN answer DNS queries for each other without a central server. DNS-SD layers a service-discovery convention on top: a service type (_saturn._tcp.local.) maps to instance names (PTR), each instance resolves to a host/port (SRV), and metadata travels in key-value records (TXT). Bonjour and Avahi are the two dominant implementations; both are Saturn-compatible without modification. → Concepts: protocol
Project status
Saturn is the artifact of a master's thesis at UC Santa Cruz (Joey Perrello, advised by Adam Smith). Thesis: Saturn: Zero-Configuration AI Service Discovery (eScholarship, 2026). Citations in this documentation reference the source manuscript by line number where applicable.