Trader-tracking terminal

Stay on
the tape.

Trader tape / Fast alerts

A dense, keyboard-driven terminal for public trader activity. Rows land on push and fill in where they sit once the detail resolves. Independent. Read-only.

> follow the signal_

The tape

The tape, running

Simulated rows on the real layout. Each one arrives unresolved and is completed in place.

BLUMBERG / tape Demo
j k move / filter 1–6 class space pause m media o open on X ? keymap

The desk

Built for reading, not browsing

One dense table, ten columns, no chrome in the way. Everything on the tape is something you can act on with a keystroke.

Every row classified

A single glyph tells you what a row is before you read a word of it: original, reply, self-thread, quote, retweet, or unavailable. A dot marks a row still waiting on its detail. Toggle any class with a number key.

• original ↳ reply ⋮ self-thread ❝ quote ⇄ retweet ✕ unavailable

Velocity as heat

The velocity column reads likes per minute and colours itself by tier, so a row that is running shows up in peripheral vision. The top two tiers tint the whole row. Anything under a minute old stays unrated rather than guessing.

blaze hot warm mild cold

No mouse required

Move with j and k, jump with g and G, page with Ctrl-d. Type / to filter as you go, space to hold the tape still, m for the media preview, o to open a post on X. Four density steps for how much you want on screen.

compact normal roomy large

Honest feed status

The header never pretends. The connection reads live, reconnecting or stale, and each row carries its own pipeline lag so you can see what the feed is doing rather than trust that it is fine. Reconnects back off with jitter.

live reconnecting stale

How it works

Two stages, one row

Most feeds wait until they know everything, then show you the row. BLUMBERG shows you the row first and finishes it in place. You never trade a look at the tape for a wait on a lookup.

The row appears

on push

Upstream detects the post and pushes it. The row is written to the tape at once with what is known: arrival time, handle, whatever text came with the push. Its class is not known yet, so it carries the pending dot — not a guess.

14:02:11 · @trader_h loading detail…

It fills in

status ok

The same row — same position, same key — gains its class, full text, reply or quote target, counts, velocity, age and tags. Nothing is inserted above it and nothing jumps.

14:02:11 @trader_h size is the whole trade 142 1.2k

Or it doesn't

not found / removed

When the lookup comes back empty — deleted, protected, tombstoned — the row is marked unavailable and stays on the tape. A post that vanished is information too, so it is never quietly dropped.

14:02:11 @trader_h unavailable

The two stages are measured separately and reported per row, so the lag you see on the tape is the tape's own. We publish a latency figure only after an end-to-end measurement with the method recorded — not before.