HOWL

Your machines howl home.

The pack

One howl becomes a pack.

Add a machine and it simply starts howling too. No wolf talks to another wolf - every howl goes to the same moon. That is the whole topology.

The metaphor is the architecture

The moon is the server.

Howl is a tiny log-shipping fleet. Every machine runs a small agent that reads its own log files and pushes them out. Nothing ever connects to a machine - no open ports, no VPN, works from any network.

Wolfagent

A ~56 MB process tailing log files with byte-exact checkpoints. Measured at 0.2% of one core.

HowlHTTPS push

Batches ship within about a second. If the moon is unreachable, the log file itself is the buffer.

Moonreceiver

A Cloudflare Worker + D1 + R2. It lives outside your house on purpose - the monitor never shares fate with the monitored.

Packfleet

Wolves never talk to each other. Adding a machine is registering a token and letting it howl.

Under the fur

How the data flows.

Data pushes out; code pulls in. Agents checkpoint after every acknowledged batch, so crashes and restarts re-send instead of losing. The receiver classifies, stores hot, rolls cold, and watches for silence.

machine 1agent tails + checkpointsmachine 2agent tails + checkpointsmachine 3agent tails + checkpointsHTTPS push, ~1sthe receiverclassify error / warn / infohot: 7 days queryablecold: nightly gzip archivewatchdog: silence = alertserverless - no box to babysityour phoneerrors + silence, in secondsquery APIhot + cold, one viewgit mainagents self-update every 15 mincode pulls in
Built like it matters

Small agent, serious guarantees.

Never loses a line

Checkpoints advance only after the server acknowledges. Rotation, deletion, truncation, even in-place rewrites - drained and fingerprinted, proven by a zero-loss test harness.

Alerts that respect you

One push per incident, not five hundred. Errors buzz in seconds; a machine going quiet buzzes once; a source that stops shipping while its machine looks healthy gets caught too.

Updates itself

Push to main and every wolf is running it within fifteen minutes. Failed builds keep the old agent alive. Restarts are lossless by construction.

0.2%

of one CPU core, measured on a live machine. 56 MB of memory. Under 2 MB of network a day when idle.

~1s

from a line hitting a log file to it being queryable at the receiver, classified and stored.

$0

of always-on servers. The receiver is a Cloudflare Worker; a home fleet fits comfortably in free tiers.

Join the pack

A new wolf in four lines.

# on the new machine
git clone git@github.com:you/howl.git ~/howl
cd ~/howl/agent && npm ci && npm run build
node dist/agent.js init --endpoint https://your-moon.example --token howl_...
# install the service units - and it howls forever
Open source, soon. Howl runs a real fleet today. The repo goes public once the rough edges are sanded - the design writeup is already out: Working Through Log Data at Datacenter Scale.