← Pitch & Roll

BoatTools

A Swift command-line tool & library – MIT-licensed – to read, decode and replay boat instrument data — NMEA 0183, NMEA 2000, Signal K and Victron VRM — with AIS target tracking and LAN auto-discovery.

Latest release Platforms

boattools — command-line tool

For sailors & tinkerers

Connect to your gateway or MFD over TCP/UDP, stream Signal K over the network (TCP, REST or WebSocket), replay recorded logs, browse the LAN for instruments, read your Victron VRM site, and download GMDSS high-seas forecasts — all from the terminal, with live colour output.

Development snapshots (tip of the lab branch — unstable, for the adventurous): all assets →

Requirements

macOS

The .pkg is signed and notarised by Apple — it installs without any Gatekeeper warning, with nothing else to install.

Linux & Windows — Swift runtime

The Linux and Windows binaries link the Swift runtime dynamically, so the target machine has to install it.

Linux (Ubuntu / Debian)

curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz
tar zxf swiftly-$(uname -m).tar.gz && ./swiftly init

Windows

winget install --id Swift.Toolchain -e

Linux — Avahi library (discover feature only)

Bonjour/mDNS discovery relies on the Avahi compatibility library. Not needed unless you use discover.

sudo apt-get install -y libavahi-compat-libdnssd1

Windows — Microsoft VC++ Redistributable

Usually already present on most PCs. If it is missing, install Microsoft.VCRedist.2015 (harmless if already there):

winget install --id Microsoft.VCRedist.2015+.x64 -e

BoatToolsKit — Swift library

For developers

The multiplatform engine behind the CLI: strict-concurrency (Swift 6.3) Sendable models, NMEA / Signal K / Victron clients, a normalising metric store, and AIS decoding with country derivation — ready to embed in your own app. Also includes a C-ABI bridge for interop with any other language.