# Install websocketd with Homebrew, apk, apt, MacPorts, Nix

WebSockets the Unix way. Version 0.4.1 via Homebrew; verified 2026-07-25. Also installable with debian: sudo apt install websocketd.

## Install

```sh
sudo av install brew:websocketd
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install websocketd
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install websocketd
```

  Evidence: MacPorts ports tree: net/websocketd/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add websocketd
```

  Evidence: Alpine Linux edge package indexes: websocketd from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install websocketd
```

  Evidence: Debian stable package indexes: websocketd from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#websocketd
```

  Evidence: nixpkgs package indexes: pkgs/by-name/we/websocketd/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:websocketd
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/websocketd>
- **Version:** 0.4.1
- **Source summary:** WebSockets the Unix way
- **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
- **Generated:** 2026-07-26T07:20:29+00:00

## Executables

- websocketd (cli)
- websocketd (alias)

## Build dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura

## Freshness

- Page generated: 2026-07-26
- Package-manager version: 0.4.1
- Package-manager updated: 2026-07-25
- Local data: ok
- Upstream repository: https://github.com/joewalnes/websocketd
- Upstream latest detected: v0.4.1 (current)
## Project history and usage

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.

### Project history

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.

### Adoption history

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.

### How it is used

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.

### Why package nerds care

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.

### Timeline

- 2013-02: GitHub repository created.
- 2014-05: v0.2.9 release published.
- 2014-07: Official wiki tutorial pages edited with quick-start examples.
- 2015-02: Public Hacker News discussion highlights the Unix-process model and scaling tradeoffs.
- 2021-01: v0.4.1 release published.

### Related projects

- websocketd belongs with inetd, CGI-style process launchers, and WebSocket CLIs such as websocat and wscat. Its closest conceptual ancestor is inetd: a small daemon accepts network connections and delegates each session to a normal executable.

### Sources

- <https://api.github.com/repos/joewalnes/websocketd>
- <https://api.github.com/repos/joewalnes/websocketd/releases?per_page=10>
- <https://github.com/joewalnes/websocketd>
- <https://github.com/joewalnes/websocketd/blob/master/release/websocketd.man>
- <https://github.com/joewalnes/websocketd/wiki/Ten-second-tutorial>
- <https://news.ycombinator.com/item?id=9050970>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **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:** stable

## Other Package-Manager Records

- Debian apt - websocketd - 0.4.1-1+b23: normalized package name match | Debian stable package indexes: websocketd from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Turn any program that uses STDIN/STDOUT into a WebSocket server | https://github.com/joewalnes/websocketd
- Nix - websocketd: normalized package name match | nixpkgs package indexes: pkgs/by-name/we/websocketd/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - websocketd - 0.4.1-1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: websocketd from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Turn any program that uses STDIN/STDOUT into a WebSocket server | https://github.com/joewalnes/websocketd
- apk - websocketd - 0.4.2-r1: normalized package name match | Alpine Linux edge package indexes: websocketd from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Like inetd, but for WebSockets. Turn any application that uses STDIO/STDOUT into a WebSocket server. | https://github.com/joewalnes/websocketd
- MacPorts - websocketd: normalized package name match | MacPorts ports tree: net/websocketd/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Web development packages](https://www.automicvault.com/pkg/web-dev-tools/) - Matched web development metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [ttyd](https://www.automicvault.com/pkg/brew/ttyd/) - Shares av.db curated category or tags: cli, networking, server, websocket.
- [vsftpd](https://www.automicvault.com/pkg/brew/vsftpd/) - Shares av.db curated category or tags: cli, networking, server, unix.
- [bind](https://www.automicvault.com/pkg/brew/bind/) - Shares av.db curated category or tags: cli, networking, server.
- [bitchx](https://www.automicvault.com/pkg/brew/bitchx/) - Shares av.db curated category or tags: cli, networking, unix.
- [center-im](https://www.automicvault.com/pkg/brew/center-im/) - Shares av.db curated category or tags: cli, networking, unix.
- [coredns](https://www.automicvault.com/pkg/brew/coredns/) - Shares av.db curated category or tags: cli, networking, server.
- [coturn](https://www.automicvault.com/pkg/brew/coturn/) - Shares av.db curated category or tags: cli, networking, server.
- [dante](https://www.automicvault.com/pkg/brew/dante/) - Shares av.db curated category or tags: cli, networking, server.
- [mongoose](https://www.automicvault.com/pkg/brew/mongoose/) - Local metadata places this package in an adjacent workflow. Shared terms: cli, networking, server, websocket.
- [websocat](https://www.automicvault.com/pkg/brew/websocat/) - Local package facts share a topical domain. Shared terms: cli, networking, websocket, websockets.

## Combined YAML source

View the package source record on GitHub. [combined/websocketd.yml](https://github.com/automic-vault/db/blob/main/combined/websocketd.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
