EpochBar
v1.0.0  ·  macOS 13+
A tiny macOS menu-bar utility

Every timestamp, readable at a glance.

EpochBar watches your clipboard and decodes any timestamp-bearing identifier it finds — Unix epochs, MongoDB ObjectIds, ULIDs, UUIDv1 / v6 / v7, and Twitter-style snowflakes — into a UTC ISO 8601 date, right in your menu bar. Click to copy. That's the whole app.

Download for macOS ~ 48 KB  ·  Apple Silicon
Your menu bar, when something epoch-shaped is on the clipboard
clipboard → 1735689600
What it decodes

Seven identifier shapes. One answer — the timestamp inside.

Each of the formats below carries a timestamp you rarely get to read directly. EpochBar finds the right bits, converts them, and shows the result. Here's what lives where.

Unix epoch
Decimal · 10 / 13 / 16 digits
entire value · seconds, ms, µs, or fractional
1735689600
2025-01-01T00:00:00Z
Ten digits are seconds; thirteen, milliseconds; sixteen, microseconds. Trailing .xxx on a ten-digit value is read as fractional seconds. Only values that land between 2001 and 2099 are accepted — random counters need not apply.
MongoDB
ObjectId
24 hex chars
timestamp · 4B
random · 5B
counter · 3B
507f1f77bcf86cd799439011
2012-10-17T21:13:27Z
The first 4 bytes are big-endian Unix seconds. The trailing 8 bytes are a per-process random value and a counter — not needed to read the date.
ULID
26 Crockford base32 chars
timestamp · 48 bits
randomness · 80 bits
01ARZ3NDEKTSV4RRFFQ69G5FAV
2016-07-30T23:54:10.259Z
The first ten characters decode to a 48-bit millisecond timestamp; the remaining sixteen are random. The Crockford alphabet skips I L O U so the input is unambiguous.
UUID v1
Hyphenated · version nibble 1
time_low
time_mid
v
time_hi
clock seq + node · 80 bits
e4eaaaf2-d142-11e1-b3e4-080027620cdd
2012-07-19T01:41:43.645Z
60 bits of 100-nanosecond intervals since the Gregorian reform on 15 October 1582. Reassembled from three non-contiguous slices, then shifted to the Unix epoch.
UUID v6
Hyphenated · version nibble 6
time_high
time_mid
v
time_low
clock seq + node · 80 bits
1e1d142e-4eaa-66af2-b3e4-080027620cdd
2012-07-19T01:41:43.645Z
Same clock as v1, same epoch — but the segments are re-ordered so that two v6 UUIDs generated seconds apart compare correctly as strings. Good for database keys.
UUID v7
Hyphenated · version nibble 7
unix_ts_ms · 48 bits
v
rand_a + rand_b · 74 bits
018d4fa3-4f8e-7890-abcd-ef0123456789
2024-01-28T10:35:19.310Z
The modern one: first 48 bits are straight Unix milliseconds. Sortable out of the box, human-readable out of the front.
Twitter
snowflake
Decimal · 17-19 digits
0
ms since epoch · 41 bits
machine · 10
seq · 12
1800000000000000000
2024-06-10T03:00:17.039Z
Shift right by 22, add Twitter's epoch of 2010-11-04T01:42:54.657Z, and you get Unix ms. Discord, Instagram and others use the same shape with different epochs — shout if you need one of those.
Install

Three steps. Forty-eight kilobytes.

Ad-hoc signed, not notarised — so the first launch needs you to tell macOS you trust it. After that it remembers and lives in your menu bar forever.

I.
Download and open the disk image
open ~/Downloads/EpochBar.dmg
Drag EpochBar into the Applications folder when the volume mounts.
II.
Bypass Gatekeeper once
xattr -dr com.apple.quarantine /Applications/EpochBar.app
EpochBar is ad-hoc signed, not notarised — so macOS refuses to open it until you remove the quarantine flag. The command above is the one-liner; if you prefer the GUI path, double-click the app (macOS will refuse), then open System Settings → Privacy & Security, scroll to the blocked-app message, and click Open Anyway. Do this once; macOS remembers after that.
III.
Optional: launch at login
right-click the menu-bar clock → Launch at login
EpochBar registers itself via SMAppService. System Settings → General → Login Items reflects the same toggle.