Repository navigation
v0.19.0
waggle v0.19.0
Local OpenTelemetry viewer — OTLP/HTTP (4318) and OTLP/gRPC (4317) ingest into SQLite + Honeycomb-style UI.
Run waggle as a background service
Two new subcommands install/uninstall waggle as a per-user system service:
waggle service-install # systemd (Linux) / launchd (macOS)
waggle service-install -- --addr 0.0.0.0:4318 --retention 72h
waggle service-install --no-start # write the unit/plist without starting
waggle service-uninstall # idempotent- Linux: writes
~/.config/systemd/user/waggle.serviceand runssystemctl --user enable --now waggle.service. To keep the service running across reboots without an active login:sudo loginctl enable-linger $USER. - macOS: writes
~/Library/LaunchAgents/com.github.danielloader.waggle.plistand runslaunchctl bootstrap gui/$UID …. Logs go to~/Library/Logs/waggle/waggle.log.
The running binary's path is baked into the unit, --no-open-browser is added automatically, and anything after -- is passed verbatim to waggle. Refuses to overwrite an existing install. Per-user only in v1 — system-wide root-owned units are intentionally out of scope (install the binary via dpkg/rpm/brew and write your own unit if you need that). Windows is unsupported.
Changelog
Install
Homebrew (macOS)
brew install --cask danielloader/tap/waggle
Binary — download from the assets below, extract, and run:
./waggle
Linux packages — .deb, .rpm, .apk, and Arch .pkg.tar.zst (amd64 + arm64) are in the assets below; they install to /usr/bin/waggle (unsigned):
sudo dpkg -i waggle_0.19.0_amd64.deb # Debian/Ubuntu
sudo rpm -i waggle-0.19.0-1.x86_64.rpm # Fedora/RHEL/openSUSE
sudo apk add --allow-untrusted waggle_0.19.0_x86_64.apk # Alpine
sudo pacman -U waggle-0.19.0-1-x86_64.pkg.tar.zst # Arch
Docker
docker run --rm -p 4318:4318 -p 4317:4317 -v $(pwd)/data:/data ghcr.io/danielloader/waggle:0.19.0
Then point any OTLP exporter at http://localhost:4318 (HTTP) or localhost:4317 (gRPC), and open the UI in your browser.