A lightweight, self-contained Linux system monitor that serves a real-time web dashboard over your local network. No installation required — just download and run a single binary.
- Single binary — no Node.js, no Go, no dependencies. One file, run it anywhere.
- Real-time metrics — CPU, RAM, disk, and network I/O streamed over WebSocket at 500ms intervals.
- Process manager — sortable, searchable, virtualised process table with safe kill support.
- LAN accessible — binds to
0.0.0.0so you can open the dashboard on your phone or tablet over Wi-Fi. - Per-core CPU — individual core utilisation breakdown.
- 60s timeline — rolling history chart for CPU and RAM.
- Dark & light theme — clean terminal-inspired UI, toggleable at runtime.
- Permission-safe kills — only processes owned by the running user can be terminated. Root processes are always protected.
curl -fsSL https://raw.githubusercontent.com/knnedy/procstream/main/install.sh | shThen run:
procstreamThat's it. Open your browser at http://localhost:8080 or the network URL printed in your terminal.
Usage of procstream:
-host string
network interface to bind (default "0.0.0.0")
-port int
TCP port for the web server and WebSocket endpoint (default 8080)
-interval duration
metrics scrape and broadcast interval (default 500ms)
-version
print version and exit
# run with defaults
procstream
# run on a custom port
procstream -port 9090
# restrict to localhost only
procstream -host 127.0.0.1
# increase scrape interval to reduce CPU overhead
procstream -interval 1s
# check version
procstream -version| Tab | Contents |
|---|---|
| Overview | CPU, RAM, disk and network gauges · swap usage · 60s timeline chart · top 5 CPU and RAM processes |
| Processes | Sortable, searchable virtualised process table · tree/flat view · CSV export · kill with confirmation |
| System | Hostname, OS, kernel, CPU model and frequency · per-core breakdown · storage and swap · network I/O |
ProcStream enforces native Linux user-space permission boundaries without requiring sudo.
- Every process in the table has a
canKillflag determined server-side by comparing the process owner UID against the UID of the user running the binary. - The Kill button is only enabled for processes you own.
- Root and system processes (
UID 0) are always protected regardless of who runs the binary. - Kill requests are verified server-side on every request — the frontend flag is UX only.
If you prefer to install manually:
# amd64
curl -L https://github.com/knnedy/procstream/releases/latest/download/procstream_linux_amd64.tar.gz | tar -xz
sudo mv procstream /usr/local/bin/
# arm64 (Raspberry Pi, ARM servers)
curl -L https://github.com/knnedy/procstream/releases/latest/download/procstream_linux_arm64.tar.gz | tar -xz
sudo mv procstream /usr/local/bin/Requirements
- Go 1.22+
- Node.js 18+
- pnpm
git clone https://github.com/knnedy/procstream.git
cd procstream
make build
./bin/procstreamcurl -L https://github.com/knnedy/procstream/releases/download/v0.1.0/checksums.txt -o checksums.txt
sha256sum -c checksums.txtsudo rm /usr/local/bin/procstream| Layer | Technology |
|---|---|
| Backend | Go, net/http, coder/websocket, gopsutil/v4, lipgloss |
| Frontend | Next.js 16, TypeScript, Tailwind CSS, shadcn/ui, Recharts |
| Distribution | Single binary via go:embed |
