Reach

A single-binary REST management agent for any Linux host.
Install in 30 seconds. Manage from anywhere.

curl -fsSL https://reach.thoughtwave.com/install.sh | bash

Runs as root  ·  Generates an API key  ·  Starts on boot  ·  No cloud account required

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/healthLiveness check — no auth required
GET/api/versionreachd version and build info
GET/api/systemHostname, kernel, uptime, CPU count, load, memory
GET/api/diskAll mounted filesystems — device, type, size, usage
GET/api/networkNetwork interfaces, addresses, MTU, link state
GET/api/processesTop 50 processes by CPU
GET/api/servicesAll systemd services — state, sub-state, description
GET/api/services/{name}Status of a specific service
POST/api/services/{name}/startStart a systemd service
POST/api/services/{name}/stopStop a systemd service
POST/api/services/{name}/restartRestart a systemd service
GET/api/logs/{unit}?lines=NJournal entries for a unit (default 100, max 5000)
POST/api/execRun 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.