Overview

Scorpiox code ships a complete networking stack compiled into standalone static binaries. Every component uses raw POSIX sockets (or Winsock on Windows) — no libcurl, no OpenSSL, no libuv. TLS is handled by the embedded mbedTLS library where needed. 18 components span DNS, reverse proxy tunneling, file transfer, HTTP serving, email, WebSocket bridging, MCP protocol, traffic capture, and more.

18

Components

Zero

Dependencies

3

Platforms

DNS Server

scorpiox-dns

Port 53server
DNS UDP TCP
scorpiox/scorpiox-dns.c

Full-featured DNS server with split-horizon resolution, upstream forwarding with response caching, active cache with background refresh, and pre-cache domain warmup for offline resilience. Supports A, CNAME, SOA, MX, NS, AAAA, and TXT record types.

  • UDP + TCP DNS on port 53
  • A/CNAME/SOA/MX/NS/AAAA/TXT record types
  • Split-horizon (LAN vs WAN)
  • Upstream forwarding with response caching
  • Active cache with background refresh
  • Pre-cache domain warmup for offline resilience
  • CLI zone management (add/remove/list/query)
  • Audit logging & daemonize support

Configuration

DNS_LISTEN DNS_UPSTREAM DNS_ZONE_FILE DNS_DEFAULT_TTL DNS_DOMAIN DNS_ACTIVE_CACHE DNS_ACTIVE_CACHE_FILE DNS_PRECACHE
scorpiox-env.txt # Listen on all interfaces DNS_LISTEN=0.0.0.0:53 # Forward unresolved queries upstream DNS_UPSTREAM=8.8.8.8 # Zone file path DNS_ZONE_FILE=/etc/scorpiox/zones.conf # Default TTL (seconds) DNS_DEFAULT_TTL=300 # Primary domain DNS_DOMAIN=scorpiox.net # Enable active cache with background refresh DNS_ACTIVE_CACHE=true # Pre-cache domains for offline resilience DNS_PRECACHE=scorpiox.net,code.scorpiox.net,git.scorpiox.net
CLI Usage # Start DNS server in daemon mode scorpiox-dns --daemon # Add an A record scorpiox-dns add app.scorpiox.net A 192.168.1.10 # List all zones scorpiox-dns list # Query a record scorpiox-dns query code.scorpiox.net # Remove a record scorpiox-dns remove old.scorpiox.net

FRP Tunneling

scorpiox-frp

Port 7000tunnel
FRP TCP HTTP HTTPS STCP yamux
scorpiox/scorpiox-frp.c · scorpiox/libsxnet/sx_frp.c

FRP-compatible reverse proxy client rewritten in pure C. Connects to standard frps servers (v0.52+) using JSON over yamux streams. Control stream is encrypted with AES-128-CFB via mbedTLS with PBKDF2 key derivation from token.

  • Wire protocol: JSON over yamux streams
  • AES-128-CFB crypto on control stream (mbedTLS)
  • PBKDF2 key derivation from token
  • Proxy types: tcp, http, https, stcp
  • Auto-reconnect on disconnect
  • TLS transport option for frps-secure
  • Heartbeat with configurable interval/timeout
  • Custom domain and subdomain support
CLI Usage # Expose local port 8080 via HTTP tunnel scorpiox-frp --server frps.example.com:7000 --token my-secret-token --type http --local-port 8080 --subdomain myapp # TCP tunnel with TLS transport scorpiox-frp --server frps.example.com:7000 --token my-secret-token --type tcp --local-port 22 --remote-port 6022 --tls

Why rewrite FRP in C?

The Go-based frpc binary is 15+ MB. scorpiox-frp is under 200 KB statically linked, starts in microseconds, and uses a fraction of the memory. Same wire protocol — drop-in replacement for frpc with any frps server.

File Beam

scorpiox-beam

Port 9876transfer
TCP
scorpiox/scorpiox-beam.c

Zero-copy file transfer between machines. Uses sendfile() on Linux/macOS and TransmitFile() on Windows for kernel-level data transfer. Files are verified with xxHash64 checksums and confirmed with ACK/NAK.

  • Zero-copy where possible (sendfile/TransmitFile)
  • Custom binary protocol with header
  • xxHash64 checksum verification
  • ACK/NAK confirmation
  • Cross-platform (Linux, macOS, Windows)
  • Single binary, no dependencies
CLI Usage # Receive mode — listen for incoming files scorpiox-beam receive # Send a file to another machine scorpiox-beam send 192.168.1.50 ./project.tar.gz # Send to a custom port scorpiox-beam send 192.168.1.50:9999 ./backup.sql

Traffic Proxy

scorpiox-traffic

Port 8899proxy
HTTP HTTPS
scorpiox/scorpiox-traffic.c

HTTP/HTTPS traffic capture CLI. Runs an embedded MITM proxy and sets HTTP_PROXY/HTTPS_PROXY environment variables for child processes. Captures output in multiple formats: raw, summary.json, conversation.jsonl, and HAR.

  • Embedded Python MITM proxy
  • Sets HTTP_PROXY/HTTPS_PROXY env vars for child
  • Output formats: raw, summary.json, conversation.jsonl, HAR
  • Session-based capture organization
  • Works with any CLI tool
TRAFFIC_PORT
CLI Usage # Capture traffic for a curl command scorpiox-traffic -- curl https://api.example.com/data # Capture with HAR output scorpiox-traffic --format har -- python3 script.py

HTTP Server

scorpiox-server

Port 8080server
HTTP
scorpiox/scorpiox-server.c

Lightweight HTTP server for Python script and executable routing. Powers this website via CGI. Features JWT HMAC-SHA256 authentication, IP whitelisting with CIDR support, git poll for auto-reload, and configurable request/response limits.

  • Python script and executable routing
  • JWT HMAC-SHA256 authentication
  • Cookie-based JWT extraction
  • Route prefix configuration
  • IP whitelist with CIDR support
  • TOTP generation endpoint
  • Favicon support (base64 or file path)
  • Git poll for auto-reload
  • Fallback route handler

Configuration

SERVER_PORT SERVER_ROUTE_PREFIX SERVER_JWT_SECRET SERVER_JWT_ISSUER SERVER_JWT_AUDIENCE SERVER_JWT_COOKIE SERVER_JWT_CLAIMS SERVER_JWT_PROTECT SERVER_JWT_LOGIN_URL SERVER_SCRIPT_DIR SERVER_MAX_REQUEST_MB SERVER_MAX_RESPONSE_MB SERVER_IP_WHITELIST SERVER_FAVICON
scorpiox-env.txt # HTTP server port SERVER_PORT=8080 # Script directory for CGI routing SERVER_SCRIPT_DIR=/var/www/scripts # JWT authentication SERVER_JWT_SECRET=your-hmac-secret SERVER_JWT_PROTECT=/admin/*,/api/* SERVER_JWT_LOGIN_URL=/login # IP whitelist (CIDR supported) SERVER_IP_WHITELIST=192.168.0.0/16,10.0.0.0/8 # Request/response limits SERVER_MAX_REQUEST_MB=10 SERVER_MAX_RESPONSE_MB=50

This page is served by scorpiox-server

code.scorpiox.net runs entirely on scorpiox-server. Each page is a .py file executed as CGI. The server handles routing, JWT auth, and response delivery — all in a single C binary under 200 KB.

Email Stack

scorpiox-server-email

Port 25/587/993server
SMTP IMAP TLS
scorpiox/scorpiox-server-email.c

Full email server with SMTP receive (port 25), submission (port 587), and IMAP (port 993). Supports STARTTLS, TLS certificates, Maildir storage, and account file management.

  • SMTP receive on port 25
  • Submission with STARTTLS on port 587
  • IMAP with TLS on port 993
  • Maildir storage format
  • TLS certificate configuration
  • Account file management

scorpiox-email

Port 587client
SMTP STARTTLS SSL
scorpiox/scorpiox-email.c

SMTP client for sending email from the command line or scripts. Supports STARTTLS and direct SSL connections.

EMAIL_SMTP_PORT EMAIL_SUBMISSION_PORT EMAIL_IMAP_PORT EMAIL_DOMAIN EMAIL_MAILDIR EMAIL_TLS_CERT EMAIL_TLS_KEY EMAIL_ACCOUNTS_FILE SMTP_HOST SMTP_PORT SMTP_USER SMTP_PASS SMTP_FROM SMTP_TLS
scorpiox-env.txt — Server # Email server configuration EMAIL_DOMAIN=scorpiox.net EMAIL_MAILDIR=/var/mail EMAIL_TLS_CERT=/etc/ssl/certs/mail.pem EMAIL_TLS_KEY=/etc/ssl/private/mail.key EMAIL_ACCOUNTS_FILE=/etc/scorpiox/accounts.conf
scorpiox-env.txt — Client # SMTP client settings SMTP_HOST=smtp.scorpiox.net SMTP_PORT=587 SMTP_USER=dev@scorpiox.net SMTP_TLS=starttls

More Components

scorpiox-ws2tcp

Port 6080

WebSocket to TCP bridge. Wraps raw TCP services with a WebSocket frontend for browser-based access.

scorpiox-mcp

stdio

Model Context Protocol client. JSON-RPC 2.0 over stdio with configurable tool allow/deny lists.

scorpiox-host

Port 7432

Session gateway server with REST API. Event system for thinking, tool-start, tool-done, complete, error, and idle states.

scorpiox-sshpass

Port 22

Zero-friction SSH password wrapper. PTY-based password injection with SCP shorthand support.

scorpiox-fetch

HTTP/HTTPS/CDP

HTTP client with headless browser support via Chrome DevTools Protocol. WebSocket and CDP capable.

scorpiox-websearch

HTTP/HTTPS

Multi-engine web search client. Queries multiple search engines concurrently and aggregates results.

scorpiox-server-fetchtoken

Port 9800

Token fetch relay server. SXV1 protocol with API key auth, IP whitelist, and upstream proxying.

scorpiox-server-http2tcp

Port 9801

HTTP-to-TCP relay server. SXH1/SXR1 protocols for bridging HTTP requests to raw TCP backends.

scorpiox-mcp-httpclient

HTTP

MCP client over HTTP transport. JSON-RPC 2.0 for remote tool execution via HTTP endpoints.

scorpiox-googlemaps

HTTPS

Google Maps API client. Geocoding, directions, places, and distance via maps.scorpiox.net proxy.

scorpiox-pwshovertcp

Port 9876

PowerShell over TCP server. HTTP-based remote PowerShell execution for Windows automation.

Port & Protocol Reference

Component Type Port Protocols
scorpiox-dnsserver53DNS
scorpiox-frptunnel7000FRP, TCP, HTTP, HTTPS, STCP, yamux
scorpiox-beamtransfer9876TCP
scorpiox-trafficproxy8899HTTP, HTTPS
scorpiox-sshpassclient22SSH, SCP
scorpiox-hostserver7432HTTP
scorpiox-serverserver8080HTTP
scorpiox-ws2tcpproxy6080WebSocket, TCP, HTTP
scorpiox-server-fetchtokenserver9800TCP, SXV1
scorpiox-server-http2tcpserver9801TCP, HTTP, HTTPS, SXH1, SXR1
scorpiox-server-emailserver25/587/993SMTP, IMAP, TLS
scorpiox-emailclient587SMTP, STARTTLS, SSL
scorpiox-fetchclientHTTP, HTTPS, WebSocket, CDP
scorpiox-websearchclientHTTP, HTTPS
scorpiox-mcpclientJSON-RPC 2.0, stdio
scorpiox-mcp-httpclientclientHTTP, JSON-RPC 2.0
scorpiox-googlemapsclientHTTP, HTTPS
scorpiox-pwshovertcpserver9876HTTP