--- title: "socat" category: "Networking and remote access" tagline: "Connect any two data streams: sockets, ports, files or pipes." source: "pacman" package: "socat" command: "socat" website: "http://www.dest-unreach.org/socat/" --- ## What it is socat is a relay: it opens two connections and passes data between them in both directions. Either end can be a TCP or UDP port, a Unix socket, a file, a serial device or a program's input and output, which makes it a general tool for forwarding ports, testing network services and debugging sockets. ``` socat TCP-LISTEN:8080,fork TCP:localhost:3000 # forward port 8080 to 3000 ``` ## Why it's here - **Glue for networking.** Forward a port, expose a Unix socket over TCP, or the reverse. - **Debugging.** Talk to a service by hand to see what it sends. ## On CoreDesktop socat is installed from pacman. CoreDesktop's AI agent sandbox uses it to connect Hermes Agent to its gateway through a local socket. Type `socat` in a terminal to use it yourself. `update` keeps it current with the pacman packages.