macOS
brew install websocketdlocal Homebrew formula metadata
sudo port install websocketdMacPorts ports tree · net/websocketd/Portfile · source: api.github.com
brew
WebSockets the Unix way. Version 0.4.1 via Homebrew; verified 2026-07-25. Also installable with debian: sudo apt install websocketd.
install
brew install websocketdlocal Homebrew formula metadata
sudo port install websocketdMacPorts ports tree · net/websocketd/Portfile · source: api.github.com
sudo apk add websocketdAlpine Linux edge package indexes · websocketd · source: dl-cdn.alpinelinux.org
sudo apt install websocketdDebian stable package indexes · websocketd · source: deb.debian.org
nix profile install nixpkgs#websocketdnixpkgs package indexes · pkgs/by-name/we/websocketd/package.nix · source: api.github.com
overview
WebSockets the Unix way
history
websocketd is Joe Walnes's "WebSockets the Unix way" daemon. Instead of asking every language ecosystem to grow a WebSocket server stack, it launches ordinary programs, wires WebSocket messages to their standard input and output, and lets the operating system process model do the rest.
The repository was created in February 2013, when WebSockets were becoming practical for browser/server applications but many command-line and scripting languages still lacked simple server tooling. websocketd framed the problem as a Unix composition issue: if a program can read stdin and write stdout, it can become a WebSocket endpoint.
The README and man page describe the same core design that made the project notable: websocketd listens on a port, forks a configured process for each connection, sends incoming WebSocket messages to the process with newline framing, and turns lines printed to stdout into outgoing WebSocket messages. The project wiki expanded this idea into language-specific examples for Bash, Python, Ruby, Perl, PHP, C, Rust, Node.js, and other runtimes.
websocketd spread through developer communities as a prototyping and integration tool. Its 2015 Hacker News discussion focused on the exact tradeoff that defined its adoption: process-per-connection overhead is not ideal for every high-scale service, but the model is attractive when rapid composition, debuggability with `ps` and `top`, and reuse of existing scripts matter more than squeezing every byte of memory.
By July 2026, the GitHub repository had accumulated more than seventeen thousand stars and was packaged for multiple Unix-like systems. That longevity reflects a durable niche: websocketd is not a general application framework, but it remains a convenient bridge between browser WebSockets and existing command-line programs.
The canonical example is a short shell script that prints a count once per second, launched with `websocketd --port=8080 ./count.sh`, and consumed from browser JavaScript with `new WebSocket('ws://localhost:8080/')`. The same pattern applies to scripts that stream logs, expose system metrics, wrap REPL-like tools, or create lightweight dashboards.
Because websocketd delegates application logic to child processes, users choose it when they want language neutrality and operational transparency. They avoid it when the application needs shared in-memory state, very high connection density, or a long-running event-loop architecture.
websocketd is significant because it made WebSockets feel like inetd or CGI for the browser era. For package-manager users, it is the archetypal small binary that lets shell scripts and one-off programs cross a protocol boundary without becoming web servers.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
websocketd | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/joewalnes/websocketd
install metadata
| Package key | brew:websocketd |
|---|---|
| Version | 0.4.1 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/websocketd |
| Homepage | http://websocketd.com |
| Repository | https://github.com/joewalnes/websocketd |
| Upstream docs | http://websocketd.com/ |
| License | BSD-2-Clause |
| Source archive | https://github.com/joewalnes/websocketd/archive/refs/tags/v0.4.1.tar.gz |
| Last updated | 2026-07-25T22:40:19+02:00 |
| Pulse | updated |
| Build dependencies | go |
| Bottle | available (on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | websocketd |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
websocketd 0.4.1-1+b23
Turn any program that uses STDIN/STDOUT into a WebSocket server
https://github.com/joewalnes/websocketd
sudo apt install websocketdwebsocketd
nix profile install nixpkgs#websocketdwebsocketd 0.4.1-1build1
Turn any program that uses STDIN/STDOUT into a WebSocket server
https://github.com/joewalnes/websocketd
sudo apt install websocketdwebsocketd 0.4.2-r1
Like inetd, but for WebSockets. Turn any application that uses STDIO/STDOUT into a WebSocket server.
https://github.com/joewalnes/websocketd
sudo apk add websocketdwebsocketd
sudo port install websocketdsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.