What it does
Reach exposes a simple REST API on port 7700. Query system stats, inspect disk and network, manage systemd services, tail logs, and run commands — all over HTTP with a single API key. Lock it down to your management IP with one config line.
Zero dependencies
Single static binary. No runtime, no agent framework, no package manager. Works on any Linux from Ubuntu to Alpine to Amazon Linux.
IP allowlist built in
Set REACH_ALLOW_CIDR=10.0.0.0/8 and connections from other IPs get a silent TCP drop — no HTTP response for Shodan to index.
Brain-ready
Every endpoint returns clean JSON. ThoughtWave Brain can call Reach as a tool — describe what you want, Brain runs it.
Free forever
No license key, no usage limits, no telemetry. Open install, open API. Fleet management UI coming in Cheetah.
API reference
All endpoints require X-API-Key: <your-key> header except /health.
| GET | /health | Liveness check — no auth required |
| GET | /api/version | reachd version and build info |
| GET | /api/system | Hostname, kernel, uptime, CPU count, load, memory |
| GET | /api/disk | All mounted filesystems — device, type, size, usage |
| GET | /api/network | Network interfaces, addresses, MTU, link state |
| GET | /api/processes | Top 50 processes by CPU |
| GET | /api/services | All systemd services — state, sub-state, description |
| GET | /api/services/{name} | Status of a specific service |
| POST | /api/services/{name}/start | Start a systemd service |
| POST | /api/services/{name}/stop | Stop a systemd service |
| POST | /api/services/{name}/restart | Restart a systemd service |
| GET | /api/logs/{unit}?lines=N | Journal entries for a unit (default 100, max 5000) |
| POST | /api/exec | Run a shell command, get stdout/stderr/exit code |
Quick start
# Install (generates key, installs systemd unit, starts on boot) curl -fsSL https://reach.thoughtwave.com/install.sh | bash # Your API key is saved to /etc/reach/config.env # Copy it, then from any allowed machine: KEY=rk_your_key_here HOST=your-server-ip # System overview curl -s -H "X-API-Key: $KEY" http://$HOST:7700/api/system | jq # Restart nginx curl -s -X POST -H "X-API-Key: $KEY" http://$HOST:7700/api/services/nginx/restart # Tail 50 lines of vdxd logs curl -s -H "X-API-Key: $KEY" "http://$HOST:7700/api/logs/vdxd?lines=50" | jq -r .lines # Lock down to your management IP (edit /etc/reach/config.env) REACH_ALLOW_CIDR=10.20.0.0/16
Direct downloads
All binaries are statically linked. No runtime dependencies.