Describe a server.
Get a server.

NetGet puts an LLM behind 150+ network protocols.
What follows is not a video: it is NetGet, compiled to WebAssembly, running in this tab.

How it works

💻 you netget CLI · TUI 🤖 LLM agent Claude · MCP STDIO 🌐 the network curl · browser · dig netget static response canned · zero latency :8080 HTTP LISTENING 📜 script runtime JS / Python · deterministic LLM Ollama · any OpenAI API “http server on 8080” start_server(...) request static script prompt

Real sockets, real wire formats. NetGet handles the bytes, the handler writes the content. Below, the same three run in this tab: the network is a client machine, netget is the dashboard, LLM is a model you pick — or you.

Loading NetGet…
netget · the process, in your tabmodel: you
quick start
listening nothing yet
keys a new server or client · Tab switch column · walk rows · Enter act · F1 everything · the box at the bottom right talks to the model in plain English
request
prompt
the network · a client on the virtual network
LLM model: you
Each request NetGet makes appears below with its full prompt; you type the answer.
Downloads the model once (WebGPU required) and caches it in the browser.
Needs OLLAMA_ORIGINS=https://netget.net ollama serve.
No requests yet. Start a server on the NetGet machine and connect a client to it: the first packet that needs an answer lands here, prompt and all.
Nothing leaves this tab. The servers listen on a loopback that exists only inside the WebAssembly instance; the clients connect to it through the same call a real socket would make. No network requests are made unless you load a model or point it at your own Ollama.
Same code as the CLI. The dashboard, the protocol servers and the LLM prompting are the native NetGet crate compiled for wasm32. The only substitutions are underneath: the executor, the clock, the sockets, and where the model's answer comes from.
You can be the model. With no model loaded, every request shows the exact prompt NetGet would send, and your reply is what the server puts on the wire. It is the clearest way to see what NetGet asks of a model.

What you can build

🧪

HTTP mock API

"HTTP on 3000. GET /users returns fake JSON, POST /login always succeeds."

Test frontends without a backend.

🗄️

Dummy database

"MySQL server. Answer any SELECT with realistic data."

No schema, no seed scripts.

🍯

Honeypot

"SSH on 2222. Act like Ubuntu, accept any password, log everything."

Watch attackers talk to an LLM.

Instant infra

"DNS on 5353. Resolve *.local to 127.0.0.1."

DNS, NTP, DHCP. One sentence each.

Protocols

167 protocol features. Each is a Cargo feature; build with exactly what you need: --features tcp,http,dns. The highlighted ones are compiled into the demo above.

transporttcp udp tftp quic tls socket_file named_pipe pty stdio
link & rawdatalink arp icmp igmp ndp rawip tuntap can lldp cdp stp eapol vrrp hsrp wol
webhttp http2 http3 websocket proxy http_proxy socks5 openapi rss coap
naming & timedns dot doh mdns llmnr netbios-ns ssdp dhcp dhcpv6 bootp ntp whois
remote accessssh ssh-agent telnet vnc rdp reverse-shell
mail, news & chatsmtp imap pop3 nntp irc xmpp
media & voicesip rtp rtsp hls webrtc stun turn
queuesmqtt amqp kafka nats stomp sqs zookeeper
databasesmysql postgresql mssql db2 snowflake redis memcached mongodb mongodb-server couchdb cassandra elasticsearch dynamo dynamodb etcd
files & storageftp s3 nfs smb smb-client webdav ipp oci-registry
authoauth2 openid openidconnect saml saml-idp saml-sp ldap radius
rpc & agentsgrpc jsonrpc xmlrpc mcp modbus
clusterskubernetes kubernetes-server spark yarn dc
vpn & tunnelswireguard openvpn ipsec tor
routing & telecombgp ospf isis rip m3ua gtp
vcs & packagesgit mercurial svn npm pypi maven
p2pbitcoin torrent-tracker torrent-dht torrent-peer
classic internetfinger gopher ident
observabilitysnmp syslog
usbusb usb-keyboard usb-mouse usb-serial usb-msc usb-fido2 usb-smartcard
bluetooth & nfcbluetooth-ble bluetooth-ble-client bluetooth-ble-beacon bluetooth-ble-battery bluetooth-ble-heart-rate bluetooth-ble-thermometer bluetooth-ble-environmental bluetooth-ble-weight-scale bluetooth-ble-cycling bluetooth-ble-running bluetooth-ble-proximity bluetooth-ble-keyboard bluetooth-ble-mouse bluetooth-ble-gamepad bluetooth-ble-presenter bluetooth-ble-remote bluetooth-ble-data-stream bluetooth-ble-file-transfer nfc nfc-client
llm backendsollama openai

Most protocols run as server and client. Maturity varies — see the README for status. This list is generated from Cargo.toml and a test keeps it current.

Install

MCP server for LLM agents (STDIO)

Add to claude_desktop_config.json or any MCP client config:

{
  "mcpServers": {
    "netget": {
      "command": "npx",
      "args": ["-y", "@smotana/netget", "--mcp"]
    }
  }
}

Claude Code: claude mcp add netget -- npx -y @smotana/netget --mcp

CLI

# install
npm install -g @smotana/netget            # or grab a binary from GitHub Releases

# run with local Ollama
ollama pull qwen3-coder:30b
netget

# or run against any OpenAI-compatible API
netget --openai-url https://api.openai.com --model gpt-4o --api-key $OPENAI_API_KEY

From source

git clone https://github.com/smotanacom/netget.git
cd netget

# build only the protocols you need
cargo build --release --no-default-features --features tcp,http,ssh,dns,mcp-stdio

./target/release/netget          # interactive TUI
./target/release/netget --mcp    # MCP STDIO server