🛰️ find · ping · time · shell — one scalar

Bright Utils

The unified home for BrightDate utilities — file search, networking, timing, and the shell that ties them together. Every tool speaks the same timezone-free decimal day count since J2000.0. No translation step between your prompt, your logs, and your pipelines.

Each utility is a fork of a familiar GNU or system tool — not a thin wrapper, but a color-enhanced, feature-extended rebuild. BrightDate scalars, new predicates, spacetime metrics, and TTY-aware color output — while -printf, -f, and piped output stay plain for scripts.

# one scalar from shell prompt → file search → timing → network probe $ now=$BRIGHTEPOCH $ bfind . -after $now -name '*.rs' -printf '%Wt %p\n' | head -2 9628.197104 ./crates/btime/src/format.rs 9628.195697 ./find/print.c $ btime -f '%Wt %dE md' cargo test -q 9628.198441 0.004861 md $ bping --quiet google.com 2>/dev/null; echo "rtt md line above ↑"
Color & extensions → All tools Format spec BrightDate.org BSH

One time representation. Every layer.

Unix timestamps, ISO 8601 strings, and local-midnight boundaries each solve part of the problem — and each introduce invisible complexity when tools disagree. BrightDate is a single f64: decimal SI days since the astronomical epoch J2000.0, on a TAI substrate. No timezone. No leap-second jumps. b − a = elapsed days, always.

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. Machine interchange and log correlation should prefer %W* at 9 decimal places.

Layer 1

BSH

Shell prompt %P, $BRIGHTEPOCH, stat, ls -l, TIMEFMT

Layer 2

brightdate-rust

Core library + bdate, btime, buptime, bcal, bwatch

Layer 3

bright-findutils

bfind, blocate, bupdatedb, bxargs

Layer 4

bright-iputils

bping, bclockdiff, btraceroute, bmtr, baudit

Color-enhanced. Feature-extended.

Bright Utils are not drop-in aliases. Each project forks a mature upstream (GNU findutils, iputils, GNU time/date, zsh) and adds BrightDate-native behavior plus interactive polish: semantic color on TTYs, richer reports, and capabilities the stock tools never had. Machine output stays script-safe — color applies to human-facing reports; -printf, -f, and pipes remain plain text.

🎨 Shared color system

Interactive tools share a consistent --color / --color-scheme model:

Flag Behavior
--color=auto Colorize when stdout/stderr is a TTY (default)
--color=always Force color even when piped
--color=never Plain text everywhere
--color-scheme Palette selection (e.g. default, bright)

Used by bfind, btime, bping, btraceroute, bmtr, baudit, and more. BrightDate integers, fractional parts, labels, and efficiency scores each get distinct hues so you can scan output at a glance.

✨ What gets added

Stock tool Bright extension
find -after/-before, %W*, BD -daystart
ping Light-floor, geo distance, efficiency %, ECEF coords, per-hop trace
time %Wt/%Ws, milliday durations, CPU heat colors
traceroute Per-hop geoIP, RTT in md, path-length vs direct comparison
bmtr, baudit — new tools, not upstream forks
# same data — color on TTY, plain when piped to awk $ bfind . -maxdepth 2 -type f -printf '%Wt %p\n' | head -1 9628.197104 ./src/main.rs $ btime cargo build -q # default report — colorized on TTY real 0.420000 md (36.288 s) user 0.312500 md CPU 74% $ bping --color=always -c 1 8.8.8.8 2>&1 | tail -4 geo distance = 3.644 mBM (~1092 km) efficiency = 34.90%

Extensions by project

🔎

bright-findutils

--color new predicates
  • -after / -before — BD scalar time filters
  • %Wt/%Wa/%Wc/%WB printf family
  • -daystart floors to BD integer, not local midnight
  • -newer* accepts BrightDate literals first
  • blocate --statistics shows DB age as BD
📡

bright-iputils

--color BrightSpace
  • Light-floor (RTT/2 at c) in mBM and km
  • Great-circle geo distance + efficiency scoring
  • RTT in millidays alongside milliseconds
  • ECEF coordinates via BrightNexus / BrightLink
  • bmtr live rolling probe; baudit multi-anchor bounding
🦀

brightdate-rust

--color %W* / %d*
  • btime -f '%Wt %dE md' — machine timing strings
  • Default report colorizes elapsed, CPU %, and timestamps
  • --color=ansi / truecolor / plain
  • bdate, bcal, buptime, bwatch — full CLI suite
  • Reference brightdate crate for every other project
🐚

BSH

prompt built-ins
  • Prompt %P — live BrightDate in the shell line
  • $BRIGHTEPOCH exported for downstream tools
  • stat, ls -l, history -d show BD
  • TIMEFMT with %dE/%dU/%dS millidays
  • Natural pipeline host for every b* binary

What we built.

Four projects, one scalar. Each renames GNU or system utilities with a b prefix so they coexist with stock tools — then extends them with BrightDate semantics, interactive color, and domain-specific features the originals never had. All share the same J2000.0 / TAI semantics from brightdate-rust.

🐚

BSH — BrightShell

A zsh-compatible shell where BrightDate is woven into every time-related surface. Color prompt, exported epoch, built-in commands — the natural home for the whole pipeline.

%P prompt TIMEFMT
date · ls -l · stat · history -d
$BRIGHTEPOCH · prompt %P · TIMEFMT %d*
🦀

brightdate-rust

Canonical Rust implementation. Core library plus CLI replacements for date, time, uptime, cal, and watch — with colorized default reports and %W* format strings.

--color btime -f
bdate · btime · buptime · bcal · bwatch
🔎

bright-findutils

GNU findutils 4.10.0 re-dressed for BrightDate. New predicates, %W printf, BD -daystart, and colorized interactive output.

--color -after/-before
bfind · blocate · bupdatedb · bxargs
📡

bright-iputils

Linux & macOS networking tools extended with BrightSpace: light-floor, milliday RTT, geo distance, efficiency scoring, and full-color hop tables.

--color bmtr · baudit
bping · bclockdiff · btraceroute · bmtr · baudit
📦

@brightchain/brightdate

TypeScript/JavaScript library. Same J2000.0 / TAI semantics for Node.js, Deno, and the browser.

npm package · browser + server
🍺

Homebrew tap

All Digital Defiance BrightDate tools from one tap. Install the whole stack with short names.

brew tap digital-defiance/tap
brew install bsh bright-findutils bright-iputils
brew install bdate btime buptime bcal bwatch
# correlate file mtime, command timing, and network RTT — same unit family $ bfind src -name '*.c' -printf '%Wt %p\n' | sort -rn | head -1 9628.197104 src/pred.c $ btime -f 'end=%Wt elapsed=%dE md' make -C find bfind end=9628.198512 elapsed=2.314815 md $ bping -c 1 8.8.8.8 2>&1 | grep 'rtt.*md' rtt min/avg/max/mdev = 0.00019259/0.00019259/0.00019259/0.00000000 md

Unified % formatting.

BrightDate format characters across the ecosystem. Scalar semantics follow brightdate-rust (TAI substrate, J2000.0 epoch, SI days). Full spec: FORMAT-SPEC.md.

Tier A

%W<letter> — absolute BrightDate scalar

Output: decimal SI days since J2000.0, %.9f, no unit suffix.

Specifier bfind -printf btime -f
%Wt File mtime Command end wall time
%Ws — (not applicable) Command start wall time
%Wa File atime
%Wc File ctime
%WB File birth time
%W<other> Same as %Wt (mtime) GNU swap count (%W not followed by t/s)

Color: bfind --color and btime default report colorize on TTY; -printf / -f output is plain text.
Aliases in btime -f only: %N%Ws, %n%Wt (same 9 d.p. values).

Tier B

Duration in millidays

Specifier Output BSH TIMEFMT btime -f
%dE Elapsed (real) %.6f md %.6f md
%dU User CPU %.6f md %.6f md
%dS System CPU %.6f md %.6f md
%b Elapsed millidays %.6f (machine; no suffix)

Conversion: millidays = seconds ÷ 86.4

Tier C

btime -f timing extensions (GNU -f namespace)

These letters reuse GNU time -f slots with BrightDate meaning inside btime -f only. Do not use in bfind -printf (different GNU meanings there).

Specifier Meaning Output
%B Elapsed wall time {:.9} BrightDate days
%b Elapsed wall time {:.6} millidays (no suffix)
%N / %n Start / end wall time {:.9} (same as %Ws / %Wt)

Standard GNU letters (%E, %e, %U, %S, %P, %C, %M, …) behave as GNU time 1.10.

Tier D

Display surfaces (human, not -printf)

Fixed formatting, not user format strings:

Surface Typical precision Notes
BSH prompt %P 6 d.p. Current BrightDate
stat / ls -l 6 d.p. File timestamps
btime default report 6–9 d.p. Multi-line, optional color
BSH TIMEFMT %d* 6 d.p. + md Shell time keyword
Tier E

bright-iputils — suffix notation

bright-iputils does not implement -printf specifiers. It uses explicit unit suffixes:

Suffix Meaning
md Millidays
ud Microdays
nd Nanodays
d Days

Example: bclockdiff -B115740.740740741ud. Semantically equivalent to BrightDate sub-day units; different syntax from %W*.

Not unified

Intentionally different meanings

Pattern Reason
%b in bfind GNU 512-byte blocks
%B in bfind GNU birth-time strftime (%Bk)
%n in bfind GNU hard-link count
%*E, %m*, %u*, %n* in TIMEFMT zsh/BSH shell time keyword only
%b / %B in bdate --strftime POSIX month names (chrono), not millidays

Implementation references: crates/btime/src/format.rs (timing), bright-findutils/find/print.c (files), bsh/Src/jobs.c (TIMEFMT).

Install the stack.

1

Add the Homebrew tap (once)

brew tap digital-defiance/tap
2

Install what you need

# Shell + file tools + networking
brew install bsh bright-findutils bright-iputils

# Rust CLI utilities
brew install bdate btime buptime bcal bwatch

On Ubuntu/Debian, bright-iputils is also available via PPA: ppa:digital-defiance/bright-iputils.

3

Verify the pipeline

bdate                    # current BrightDate
bfind ~ -maxdepth 1 -printf '%Wt %p\n' | head -3
btime -f '%Wt %dE md' sleep 1
bping -c 1 127.0.0.1

Per-project build instructions and platform notes live in each repo's README and docs site: bright-findutils, bright-iputils, brightdate-rust, BSH.