vi/websocat

Command-line client for WebSockets, like netcat (or curl) for ws:// with advanced socat-like functions

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 20 minutes ago
Added to GitGenius on September 7th, 2026
Created on November 23rd, 2016
Open Issues & Pull Requests: 158 (+0)
GitHub issues: Enabled
Number of forks: 329
Total Stargazers: 8,688 (+0)
Total Subscribers: 65 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 36
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 783 days
Stale 30+ days: 35
Stale 90+ days: 35

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (5)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

websocat is a command-line client for WebSockets that provides netcat and curl-like functionality for ws:// connections with advanced socat-inspired features.

The tool addresses the need for interactive WebSocket communication from the command line, similar to how netcat and curl work for TCP and HTTP. It enables users to connect to WebSocket servers, serve WebSocket endpoints, and pipe data between WebSockets and external programs. The approach treats WebSockets as a first-class transport layer accessible through simple command-line invocations, supporting both text and binary modes with automatic conversion between lines or null-terminated records and WebSocket messages.

Developers should choose this tool when they need to debug WebSocket services, integrate WebSocket communication into shell scripts, or quickly test WebSocket endpoints without writing application code. It suits projects requiring WebSocket proxying, integration with existing command-line tools, or bridging between WebSocket and traditional network protocols. The tool works with Nginx integration, SOCKS5 servers, UNIX sockets, and inetd mode, making it flexible for various deployment scenarios. It runs on Linux, Windows, and macOS with pre-built executables available. The README mentions wsbroad as an alternative for scenarios focused specifically on broadcasting messages between WebSocket clients.

The project maintains active development across multiple Rust versions, with an alpha version supporting recent Rust toolchains while stable versions accommodate older compiler versions through legacy dependency management. The codebase includes comprehensive examples covering echo servers, proxying, remote debugging integration, and client broadcasting patterns. The tool provides low-level WebSocket implementation with customizable transport layers, allowing users to wrap connections with external programs for SSL, proxying, or other protocol handling.