🛰️ ping · clockdiff · tracepath · arping, reimagined  ·  🍺 macOS & Linux

Bright iputils — Bright Spacetime Networking Tools

Linux & macOS networking tools for the Bright Spacetime era. bping, bclockdiff, btracepath, and barping — all output and accept BrightDate and are engineered for universal spacetime coordinates.
One sortable, timezone-free, and location-aware scalar — everywhere.

Now with colorized output for easy scanning

bping google.com
          bping google.com:
            rtt min/avg/max/mdev    = 16.640/20.881/23.615/3.040 ms
            rtt min/avg/max/mdev    = 0.00019259/0.00024168/0.00027332/0.00003519 md
            light-floor (RTT/2)      = 10.441 mBM  (~3130 km)
            src [brightlink:ecef]  -0.00769, -0.01221, 0.01560 BM
            tgt [~geoIP]           -0.00896, -0.01430, 0.01291 BM  (Mountain View, United States)
            geo distance                    = 3.644 mBM  (~1092 km)
            light-spd limit              = 3.644 ms   (0.00004217 md)
            efficiency                        = 34.90%
          


bping --hops yahoo.com
            bping yahoo.com:
              rtt min/avg/max/mdev    = 96.558/98.010/99.818/1.354 ms
              rtt min/avg/max/mdev    = 0.00111757/0.00113437/0.00115530/0.00001567 md
              light-floor (RTT/2)      = 49.005 mBM  (~14691 km)
              src [~geoIP]           -0.00769, -0.01219, 0.01562 BM  (Auburn, United States)
              tgt [~geoIP]           0.00304, -0.01520, 0.01454 BM  (Lockport, United States)
              geo distance                    = 11.332 mBM  (~3397 km)
              light-spd limit              = 11.332 ms   (0.00013116 md)
              efficiency                        = 23.12%
            
            Per-hop trace:
              hop   host                                      location              rtt (ms)    rtt (md)      floor (mBM/km)  
              ----  ----------------------------------------  --------------------  ----------  ------------  ----------------
              1     172.16.0.1 (172.16.0.1)                                              6.825    0.00007900       3.413/~1023
              2     172.24.114.171 (172.24.114.171)                                     20.112    0.00023278      10.056/~3015
              172   (172.24.114.170)                                                    15.563    0.00018013       7.782/~2333
              3     po-54-rur202.federalway.wa.seattle.comcast.net (96.217.132.9)  Federal Way, United States      16.207    0.00018758       8.104/~2429
              4     po-2-rur202.federalway.wa.seattle.comcast.net (69.139.164.2)  Federal Way, United States      15.153    0.00017538       7.577/~2271
              5     be-307-arsc1.seattle.wa.seattle.comcast.net (96.216.66.189)  Seattle, United States      18.103    0.00020953       9.052/~2714
              6     ae13.edge6.sea1.sp.lumen.tech (4.68.37.129)  Seattle, United States      31.270    0.00036192      15.635/~4687
              7     ae13.edge6.sea1.sp.lumen.tech (4.68.37.129)  Seattle, United States      40.091    0.00046402      20.046/~6009
              8     yahoo-inc.ear2.newyork1.level3.net (4.14.4.250)  New York, United States     102.822    0.00119007     51.411/~15413
              9     yahoo-inc.ear2.newyork1.level3.net (4.14.4.250)  New York, United States     108.392    0.00125454     54.196/~16248
              10    ae-31.msr1.bf2.yahoo.com (74.6.227.145)   New York, United States      90.191    0.00104388     45.096/~13519
              11    et-8-0-0.clr1-a-gdc.bf2.yahoo.com (74.6.123.193)  Lockport, United States      88.739    0.00102707     44.370/~13302
              12    et-1-0-0.clr1-a-gdc.bf2.yahoo.com (74.6.123.191)  Lockport, United States     100.418    0.00116225     50.209/~15052
              13    usw1-1-lbb.bf2.yahoo.com (74.6.98.138)    Lockport, United States      96.499    0.00111688     48.249/~14465
              14    media-router-fp74.prod.media.vip.bf1.yahoo.com (74.6.143.26)  Lockport, United States      95.177    0.00110159     47.589/~14267
            

Why BrightDate? Why new iputils?

Standard ping gives you RTT in milliseconds — but milliseconds alone say nothing about where the remote host is. A 20 ms reply could be across a city or across a continent. Without physical grounding, latency is just a number.

BSH (BrightShell) introduced BrightDate: a single Float64 — decimal days since the astronomical epoch J2000.0, on a TAI substrate. No timezone. No leap-second jumps. The same scalar for time and space.

This fork carries that fix into the networking layer. bping takes RTT in milliseconds, converts to millidays, derives the light-floor (the minimum distance the signal could have traveled at c), and compares it against the actual great-circle distance — giving you a real efficiency score for every path. If your shell prints BrightDate and your ping tool speaks BrightDate, there is no translation step.

Format characters: bright-iputils uses explicit unit suffixes (md, ud, nd) in fixed output — not -printf specifiers. For the shared %W* / %d* rules used by bfind and btime, see FORMAT-SPEC.md.

In one sentence: BrightDate is a timezone-free SI-day count since J2000.0 (2000-01-01T11:58:55.816 UTC). BD 0.0 = the standard astronomical epoch. BD 9628 ≈ May 2026. b − a = elapsed days, no date library required.

� Old ping output

Problem What's missing
20 ms RTT No spatial grounding — could be 100 km or 10,000 km
ms only Incompatible with BrightDate time arithmetic
No efficiency Can't tell if routing is tight or wildly inefficient
No location Latency anomalies are invisible without coordinates

✨ bping fix

Feature What it does
light-floor RTT/2 in mBM — absolute minimum distance at c
geo distance Great-circle distance via geoIP or explicit coords
efficiency % geo / light-floor × 100 — >100% flags geoIP issues
rtt (md) RTT in millidays — same unit as BrightDate timestamps
ECEF coords Full 3-D position in BrightMeters for audit-grade queries

BrightDate across the whole network stack.

Every time- and distance-sensitive surface in iputils now speaks the same float. The five binaries are renamed with a b prefix so they coexist with system ping/traceroute without shadowing them.

📡

bping

ICMP probe with light-floor, ECEF/lat-lon coordinates, geo distance, and a spacetime efficiency score. RTT shown in both ms and millidays.

🕐

bclockdiff

Measures clock offset between your host and a remote and reports it in BrightDate units (microdays or nanodays) alongside the standard output. Best against Linux hosts that answer ICMP Timestamp; on macOS see platform notes below.

🗺️

btraceroute

Per-hop geoIP lookup, RTT in ms and millidays, light-floor per hop, and a summary comparing total path length to the direct great-circle distance.

📊

bmtr

Continuous rolling probe with a live in-place display. Shows loss%, average RTT, stddev, and light-floor per hop. Use --report for plain-text output.

🔍

baudit

Multi-anchor distance bounding. Given anchor points with known locations and measured RTTs, computes ring constraints and a weighted centroid estimate with a consistency verdict.

🔐

Hardware-anchored geo

Each b* tool reads its position from BrightNexus, the per-user resident bridge whose identity is rooted in Apple's Secure Enclave on macOS or TPM2 on Linux. Tools speak the BrightLink Protocol directly via libBrightLink. The user grants geo:precise per-binary; bping, btraceroute, bmtr, and baudit each get their own ACL entry and TOFU pin.

# per-hop trace with geoIP location and light-floor per hop
$ btraceroute --color=always yahoo.com
              btraceroute to yahoo.com (74.6.231.21), Omaha, United States [~geoIP]
              src [~geoIP]           -0.00769, -0.01219, 0.01562 BM  (Auburn, United States)
              
                hop   host                                        location                rtt (ms)   rtt (md)     floor(mBM/km) 
                ----  ------------------------------------------  ----------------------  ---------  -----------  --------------
                1     172.16.0.1 (172.16.0.1)                                                 4.905   0.00005677      2.453/~735
                2     172.24.114.170 (172.24.114.170)                                        15.662   0.00018127     7.831/~2348
                172   (172.24.114.171)                                                       19.358   0.00022405     9.679/~2902
                3     po-54-rur201.federalway.wa.seattle.comcast.net (96.217.132.5)  Federal Way, United States     14.643   0.00016948     7.322/~2195
                4     po-200-xar02.federalway.wa.seattle.comcast.net (96.216.66.161)  Seattle, United States     16.323   0.00018892     8.162/~2447
                5     po-200-xar02.federalway.wa.seattle.comcast.net (96.216.66.161)  Seattle, United States     20.943   0.00024240    10.471/~3139
                6     be-307-arsc1.seattle.wa.seattle.comcast.net (96.216.66.189)  Seattle, United States     26.597   0.00030784    13.299/~3987
                7     ae2.3502.ear2.denver1.net.lumen.tech (4.69.207.53)  Los Angeles, United States     50.612   0.00058579    25.306/~7587
                8     ae2.3509.ear3.denver1.net.lumen.tech (4.69.207.57)  Denver, United States      45.790   0.00052998    22.895/~6864
                9     ae-6.pat2.nez.yahoo.com (209.191.64.222)    New York, United States     75.995   0.00087957   37.998/~11391
                4     (4.34.62.118)                               Monroe, United States      50.771   0.00058763    25.386/~7610
                10    ae-5.pat2.nez.yahoo.com (209.191.64.224)    New York, United States     55.075   0.00063744    27.538/~8256
                11    et-19-1-1.msr1.ne1.yahoo.com (216.115.105.183)  New York, United States     63.007   0.00072925    31.503/~9444
                12    lo0.fab1-2-gdc.ne1.yahoo.com (98.138.51.0)  Omaha, United States       54.115   0.00062633    27.058/~8112
                13    lo0.fab4-2-gdc.ne1.yahoo.com (98.138.51.3)  Omaha, United States       72.807   0.00084267   36.404/~10913
                14    usw2-1-lbd.ne1.yahoo.com (98.138.97.157)    Omaha, United States       54.435   0.00063003    27.218/~8160
              
                direct geo distance      = 7.300 mBM  (~2189 km)
                light-floor (last hop)= 27.218 mBM  (~8160 km)
                efficiency                        = 26.82%
                geo path length              = 11061 km  (5.05x direct)
              
$ bmtr --color=always --report -c 5 8.8.8.8
            Discovering route to 8.8.8.8 ...
            Geolocating 10 hops ...
            bmtr report — 8.8.8.8    5 cycles
            src [~geoIP]           -0.00769, -0.01219, 0.01562 BM  (Auburn, United States)
            
              hop   host                                    location              loss%   min(ms)   avg(ms)   max(ms)   avg(md)   floor(mBM)
              ----  --------------------------------------  --------------------  ------   -------   -------   -------   -------  ----------
              1     172.16.0.1 (172.16.0.1)                                         0.0%     4.567     7.382    11.348  0.000085      3.6908
              2     172.24.114.170 (172.24.114.170)                               100.0%         ?         ?         ?         ?           ?
              3     po-54-rur202.federalway.wa.seattle.comcast.net (96.217.132.9)  Federal Way, United States    0.0%    12.759    21.490    25.534  0.000249     10.7448
              4     po-2-rur202.federalway.wa.seattle.comcast.net (69.139.164.2)  Federal Way, United States    0.0%    11.594    20.683    25.731  0.000239     10.3415
              5     be-307-arsc1.seattle.wa.seattle.comcast.net (96.216.66.189)  Seattle, United States    0.0%    19.719    22.770    25.323  0.000264     11.3849
              6     be-36131-cs03.seattle.wa.ibone.comcast.net (68.86.93.9)  Seattle, United States    0.0%    17.569    22.479    27.182  0.000260     11.2394
              7     * * *                                                         100.0%         ?         ?         ?         ?           ?
              8     * * *                                                         100.0%         ?         ?         ?         ?           ?
              9     * * *                                                         100.0%         ?         ?         ?         ?           ?
              10    dns.google (8.8.8.8)                    Ashburn, United States    0.0%    12.718    18.349    21.835  0.000212      9.1746
            
$ sudo bclockdiff -B 127.0.0.1
            ..................................................
            host =127.0.0.1 rtt =0(0)ms/0ms delta =0ms/0ms Fri May 29 15:33:29 2026
            BrightDate: rtt=0.000000000ud delta=0.000000000ud
          
# multi-anchor distance bounding
$ baudit --color=always 8.8.8.8
              Probing 8.8.8.8 (5 pings) ...
              baudit — 8.8.8.8  Ashburn, United States  [~geoIP]
              
                anchor                        x(BM)      y(BM)      z(BM)      rtt(ms)     ring(km)  tgt_dist  in_ring?
                ----------------------------  ---------  ---------  ---------  ----------  --------  --------  --------
                Auburn, United States [~geoIP]   -0.00769   -0.01219    0.01562      21.336      3198      3691        NO
              
                weighted centroid          = -0.00769, -0.01219, 0.01562 BM
                tightest ring radius    = 3198 km  (target within 3198 km of best anchor)
                geoIP consistency          = 0/1 anchors (0%)
                verdict                              : INCONSISTENT — geoIP placement conflicts
                                        with 1 anchor(s) — possible anycast / VPN
                centroid → geoIP          = 3691 km
              
$ baudit --color=always 8.8.8.8
                Probing 8.8.8.8 (5 pings) ...
                baudit — 8.8.8.8  Ashburn, United States  [~geoIP]
                
                  anchor                        x(BM)      y(BM)      z(BM)      rtt(ms)     ring(km)  tgt_dist  in_ring?
                  ----------------------------  ---------  ---------  ---------  ----------  --------  --------  --------
                  self [brightlink:ecef]         -0.00769   -0.01221    0.01560      25.279      3789      3687       yes
                
                  weighted centroid          = -0.00769, -0.01221, 0.01560 BM
                  tightest ring radius    = 3789 km  (target within 3789 km of best anchor)
                  geoIP consistency          = 1/1 anchors (100%)
                  verdict                              : consistent — geoIP Ashburn, United States is plausible
                  centroid → geoIP          = 3687 km
                

macOS + bclockdiff: Default mode uses ICMP Timestamp. Apple disables timestamp replies by default (net.inet.icmp.timestamp=0). For localhost or another Mac as the target, run sudo sysctl -w net.inet.icmp.timestamp=1 on that Mac (not persistent across reboot) or use bclockdiff -o. Linux targets are unaffected. Most public hosts do not respond regardless of platform.

Install in seconds.

Homebrew Logo

macOS (Homebrew)

1

Add the tap (once)

brew tap digital-defiance/tap
2

Install the tools

brew install digital-defiance/tap/bright-iputils

This installs bping, bclockdiff, btraceroute, bmtr, and baudit into $(brew --prefix)/bin. They coexist with system ping/traceroute without shadowing them.

3

Try it

bping google.com
Ubuntu Logo

Ubuntu / Debian (PPA)

1

Add the PPA

sudo add-apt-repository ppa:digital-defiance/bright-iputils
sudo apt update
2

Install the package

sudo apt install bright-iputils

Installs bping, bclockdiff, btraceroute, bmtr, and baudit to /usr/bin. Built with libcap and libidn2 support.

3

Try it

bping google.com
🛠️

Build from source

A

Prerequisites

A C compiler (clang or gcc), meson ≥ 0.56, ninja, libsecp256k1-dev, libssl-dev (or system OpenSSL), plus libcap-dev (Linux) or Xcode CLI tools (macOS). Works on both platforms — install via Homebrew on macOS or build with meson on Linux.

B

Clone & build

git clone https://github.com/Digital-Defiance/bright-iputils.git
  cd bright-iputils
  meson setup builddir
  ninja -C builddir

libBrightLink, the BrightLink Protocol C client used by every b* tool to talk to the BrightNexus bridge, is vendored in-tree at subprojects/libbrightlink/.

C

Install

sudo ninja -C builddir install

Note: BSH is required — bright-iputils is designed as part of the BrightShell ecosystem. Install BSH (BrightShell), a zsh-compatible shell where date, ls -l, stat, history -d, and $BRIGHTEPOCH all speak the same float. bping and the rest of bright-iputils integrate directly. Each b* tool registers with BrightNexus on first run to read the host's hardware-anchored geo fix — see BSPACE.md for the per-tool ACL grain and TOFU pin model.

The BrightDate ecosystem.

🐚

BSH — the BrightShell

A zsh-compatible shell with BrightDate woven into every time-related surface: date, ls -l, stat, history -d, sched, and $BRIGHTEPOCH.
Required by bright-iputils — bping, bclockdiff, btraceroute, and the rest are designed as first-class BSH tools.

bsh.brightchain.org · GitHub

🦀

crates.io — brightdate

The Rust crate powering BSH internally. Also ships standalone CLI tools (bdate, btime, buptime, bcal, bwatch) via the Homebrew tap.

crates.io · GitHub

📦

npm — @brightchain/brightdate

TypeScript/JavaScript library. Same J2000.0 / TAI semantics, same epoch. Works in Node.js, Deno, and the browser.

npm · GitHub

Homebrew logo

Homebrew tap

All Digital Defiance BrightDate tools in one tap. Install bright-iputils, the Rust CLI tools, and BSH itself from a single tap.

brew tap digital-defiance/tap
brew install bright-iputils
brew install bdate btime buptime bcal bwatch bsh
Ubuntu CoF logo

Ubuntu PPA

Personal Package Archive for Ubuntu and Debian users. Provides bright-iputils with libcap support, plus the Rust CLI tools and BSH.

sudo add-apt-repository ppa:digital-defiance/bright-iputils
sudo apt update
sudo apt install bright-iputils bdate btime buptime bcal bwatch bsh