The unified home for BrightDate utilities — file search, networking, timing, GPU profiling, 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 uses a b prefix for Bright
(like btime, bfind, bgpucap) — 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, GPU/CPU/memory profiling, and TTY-aware color output — while
-printf, -f, and piped output stay plain for
scripts.
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.
Shell prompt %P, $BRIGHTEPOCH,
stat, ls -l, TIMEFMT
Core library + bdate, btime,
buptime, bcal, bwatch
bfind, blocate,
bupdatedb, bxargs
bping, bclockdiff,
btraceroute, bmtr, baudit
bgpucap wraps any command — GPU, CPU, unified memory
on Apple Silicon; gpuexercise, watch,
compare subcommands (crate: gpucap)
Bright Utils are not drop-in aliases. Each project forks a mature
upstream (GNU findutils, iputils, GNU time/date, zsh) or adds a
new tool (bgpucap, crate gpucap) and extends it with 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.
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, bgpucap,
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.
| 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 |
| time (GPU) | bgpucap — GPU/CPU/memory avg & peak, -f json, watch, compare, gpuexercise |
| traceroute | Per-hop geoIP, RTT in md, path-length vs direct comparison |
| — | bmtr, baudit — new tools, not upstream forks |
-after / -before — BD scalar time filters%Wt/%Wa/%Wc/%WB printf family-daystart floors to BD integer, not local midnight-newer* accepts BrightDate literals firstblocate --statistics shows DB age as BDbmtr live rolling probe; baudit multi-anchor boundingbtime -f '%Wt %dE md' — machine timing strings--color=ansi / truecolor / plainbdate, bcal, buptime, bwatch — full CLI suitebrightdate crate for every other project%P — live BrightDate in the shell line$BRIGHTEPOCH exported for downstream toolsstat, ls -l, history -d show BDTIMEFMT with %dE/%dU/%dS millidaysb* binarybgpucap; crate gpucap on crates.iotime(1) — GPU, CPU, unified memory--metrics / --list-metrics — filter output; basic skips extended IOReport-f json on stdout; compare diffs two JSON reports (common metrics only)watch — continuous sampling; NDJSON live lines with -f jsongpuexercise — Metal load with best-effort / load / sample modes--pid, --no-track-gpu — per-process GPU via IORegistry
Five projects, one scalar. Each renames GNU or system utilities with a
b prefix for Bright
(or adds a new tool like bgpucap, crate gpucap) 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.
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.
Canonical Rust implementation. Core library plus CLI replacements
for date, time, uptime, cal, and watch — with colorized default
reports and %W* format strings.
GNU findutils 4.10.0 re-dressed for BrightDate. New predicates,
%W printf, BD -daystart, and colorized
interactive output.
Linux & macOS networking tools extended with BrightSpace: light-floor, milliday RTT, geo distance, efficiency scoring, and full-color hop tables.
Run any command like time(1) and report GPU, CPU,
and unified memory on Apple Silicon. Colorized stderr reports;
-f json on stdout; watch and
compare subcommands. Crate: gpucap.
TypeScript/JavaScript library. Same J2000.0 / TAI semantics for Node.js, Deno, and the browser.
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 bgpucap
brew install bdate btime buptime bcal bwatch
Homebrew symlinks gpucap → bgpucap for backward compatibility.
% formatting.
BrightDate format characters across the ecosystem. Scalar semantics
follow
brightdate-rust
(TAI substrate, J2000.0 epoch, SI days). Utilization specifiers are
defined by bgpucap -f. Full spec:
FORMAT-SPEC.md.
%W<letter> — absolute BrightDate scalar
Output: decimal SI days since J2000.0,
%.9f, no unit suffix.
| Specifier | bfind -printf |
btime / bgpucap -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).
| 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
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.
-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 |
| bgpucap default report | 1 d.p. | GPU/CPU/memory avg & peak; color on stderr TTY |
| BSH TIMEFMT %d* | 6 d.p. + md | Shell time keyword |
bright-iputils does not implement
-printf specifiers. It uses explicit unit suffixes:
| Suffix | Meaning |
|---|---|
| md | Millidays |
| ud | Microdays |
| nd | Nanodays |
| d | Days |
Example: bclockdiff -B →
115740.740740741ud. Semantically equivalent to
BrightDate sub-day units; different syntax from %W*.
-f specifiers
bgpucap -f / BGPUCAP_FORMAT adds utilization
letters on top of BrightDate timing (tiers A–C). (GPUCAP_FORMAT
still accepted.) Use -f json for structured output on stdout
(respects --metrics). Percentages output one decimal place,
no % suffix. When -f is set (except
json), output is plain text — even with
--color=always.
| Specifier | Meaning |
|---|---|
| %gA / %gP | GPU average / peak |
| %uA / %uP | CPU average / peak (system-wide) |
| %hA / %hP | Unified memory average / peak |
| %tG | Exercise target GPU % (gpuexercise only) |
| %Ws / %Wt | Command start / end wall time (9 d.p. BD) |
| %dE / %b | Elapsed millidays |
| %e / %E / %C / %x | Elapsed seconds, GNU elapsed, command line, exit status |
Default machine format:
%gA,%gP,%uA,%uP,%hA,%hP,%e,%Ws,%Wt\n
| 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),
gpucap/src/format.rs (GPU utilization),
bright-findutils/find/print.c (files),
bsh/Src/jobs.c (TIMEFMT).
brew tap digital-defiance/tap
# Shell + file tools + networking + GPU (macOS arm64)
brew install bsh bright-findutils bright-iputils bgpucap
# 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.
bgpucap is macOS Apple Silicon only (Homebrew
bgpucap or cargo install gpucap →
executable bgpucap).
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
bgpucap -f '%gA,%uA,%e' sleep 0.1 # macOS Apple Silicon
bgpucap watch -n 5 # continuous sampling
bgpucap compare before.json after.json
Per-project build instructions and platform notes live in each repo's README and docs site: bright-findutils, bright-iputils, bgpucap, brightdate-rust, BSH.