Reach your own machines by name. Discover peers through the BitTorrent DHT, connect directly with libp2p, and exchange data using any protocol. No accounts, and no intermediary in the data path — the only piece you run is a blind switchboard that introduces two machines and never sees their traffic.
Email routes through Google or Microsoft. Messaging apps depend on company backends. Even "decentralized" systems rely on specific relay networks controlled by a small group. The result: single points of failure, forced trust in operators, and vendor lock-in.
NSA.tech composes battle-tested open protocols into a coherent infrastructure layer. Nothing here is new networking science — the innovation is in the composition.
Several projects explore parts of this design space. NSA.tech differentiates through the combination of zero central infrastructure, protocol agnosticism, and composability.
| System | Discovery | Transport | Data Layer |
|---|---|---|---|
| Briar | Tor hidden services | Tor / Bluetooth / WiFi | Messaging only (Bramble) |
| Waku / Status | libp2p DHT | libp2p GossipSub + relays | Messaging (Waku topics) |
| Nostr | Relay URLs (manual) | WebSockets to relays | Social events (JSON) |
| NSA.tech | BitTorrent DHT (BEP 44) | libp2p direct + Circuit v2 | Protocol agnostic |
Because the infrastructure is protocol-agnostic, it serves as a foundation layer for any application that needs direct peer-to-peer connectivity.
NSA.tech is not building new networking primitives. It composes proven, production-grade components into a coherent infrastructure layer.
| Component | Technology | Track Record |
|---|---|---|
| Discovery | BitTorrent DHT (BEP 44) | 1M+ active nodes, 20+ years |
| Connectivity | libp2p Circuit Relay v2 + DCUtR | Powers IPFS, Ethereum, Filecoin |
| Transport | libp2p multiplexed streams | Battle-tested across major networks |
| Encryption | Noise / TLS 1.3 | Industry-standard authenticated encryption |
| NAT Traversal | AutoNAT + DCUtR hole-punching | ~70% success across 85K+ networks |
Every published release is listed here.
nsa version --check tells you when you're behind.
One static binary — no runtime, no dependencies, no accounts. Fetch it from the terminal, drop it on your PATH, and you're ready to reach your machines by name.
# macOS, Apple Silicon curl -fsSL https://releases.nsa.tech/nsa-darwin-arm64-latest -o nsa && chmod +x nsa && sudo mv nsa /usr/local/bin/ # macOS, Intel curl -fsSL https://releases.nsa.tech/nsa-darwin-amd64-latest -o nsa && chmod +x nsa && sudo mv nsa /usr/local/bin/ # Linux, x86-64 curl -fsSL https://releases.nsa.tech/nsa-linux-amd64-latest -o nsa && chmod +x nsa && sudo mv nsa /usr/local/bin/ # Linux, ARM64 curl -fsSL https://releases.nsa.tech/nsa-linux-arm64-latest -o nsa && chmod +x nsa && sudo mv nsa /usr/local/bin/ # Windows, x86-64 (PowerShell) curl.exe -fsSL https://releases.nsa.tech/nsa-windows-amd64-latest.exe -o nsa.exe
You run a switchboard on a machine both ends can reach. It introduces them to each other and never carries their data. Then every machine comes online, and they talk directly.
# 1. On a machine both ends can reach — run the switchboard. # It prints its address; you pass that to the first `nsa up` below. nsa switchboard # 2. On your laptop — create a network (prints a 12-word secret) # and come online, giving it the switchboard address. nsa new laptop nsa up /ip4/203.0.113.10/tcp/4001/p2p/12D3KooW... # 3. On your desktop — join with that secret, then come online # the same way. Later `nsa up` calls reuse what it remembers. nsa join desktop nsa up /ip4/203.0.113.10/tcp/4001/p2p/12D3KooW... # 4. From the laptop — reach the desktop by name. nsa ssh you@desktop nsa vnc desktop # Not sure this network allows peer-to-peer? Check first. nsa doctor
Both machines run nsa up — the one that dials as much as
the one being reached. Commands like ssh and
vnc talk to that running node, so without it they stop
with the node isn't running: start nsa up first.