A tour of the terminal for the people who use it: what each screen is for, what the numbers actually say, what is yours to keep, and what the app deliberately will not do. No setup, no configuration, no code — that is the complete manual. Start here, go there when you want the exact definition of a column.
Nothing here is investment advice. Everything below is a description of what the software computes and shows.
Milst Screener watches the perpetual futures markets on Hyperliquid's xyz dex —
synthetic perps that track US and foreign stocks, indices, FX, commodities and baskets — plus a
second, separate universe of the main-dex crypto perps. It is a read-only monitor: it shows
you what the tape is doing, keeps a record of the conditions it flagged, and tells you when
something you asked about happens. It cannot place an order, and it never holds a key that could.
The design has one central idea, and knowing it explains most of what you will see: the heavy work happens once, on the server. A small process polls Hyperliquid, archives candles, samples open interest, computes every feature and caches the result. Your browser reads a single finished snapshot. Nobody's browser talks to the exchange, so the page opens in seconds instead of minutes, and everyone is looking at the same numbers at the same time.
The market table is rebuilt about every 15 seconds and
served whole. The updated field in the status line is the server's last
successful poll — not your last refresh.
While the status line reads push live,
the server tells your browser the moment something changed and the browser fetches it. The
refresh selector is the fallback for when that stream drops.
Open interest, funding history, candles, the signal ledger, your notes and messages live on a disk that survives restarts. A redeploy serves a warm table within a poll or two.
1h · 4h · 1d · 7d · 30d selector re-anchors
every window-relative column at once — vs S&P, vs tape, ΔOI, Squeeze, Carry, Avg Range, RVOL
all answer "over this window". Most confusion about a number is a window you forgot you set.
1234567891011
12
1top funding 5, nvda, most crowded shorts,
whats above the 200dma.9:40 ET. You open Markets, window 1d, sort vs tape. HOOD is green on a red tape with unusual volume. You press Enter: the drawer says it reports Thursday, median reaction 7%. You write one line in Notes: "strong on a weak tape, print Thursday, no size into it." Stamped at 113.90.
You set one rule — HOOD price < 108 — and close the laptop. That was six minutes, and the site will now do the watching.
Stocks and crypto are separate worlds with separate benchmarks (the S&P 500 perp; BTC), separate histories and separate visibility. Session concepts — gaps, overnight holds, cash sessions — do not exist on a 24/7 tape and simply vanish in crypto scope.
why a column disappearedOne control, many columns. A "squeeze of 70" is a 70 over the window you chose. The action strip, the sector cells and the CSV export all describe exactly the rows and window on screen.
why two people see different numbersA level, a score or a record is computed once on the server and restated everywhere. The board, the drawer, the alert and the Telegram message cannot disagree, because none of them recomputes. Your browser only re-times the live mark.
why the alert matches the cardMissing history, an unqualified baseline, a retired data series — all render as an explicit blank. Never a guess, never an interpolation, never a zero standing in for "we don't know".
why crypto shows dashes past MA20Every flagged condition is ranked by how unusual it is now plus what happened the last times it occurred — with the sample size, the median outcome and the hit rate stated on the card. Each one is ledgered at the mark it fired at and scored out of sample afterwards. The card is the part to read; the record is the part to trust.
how to weigh anything the engine saysA note or a message that names a ticker is stamped with the mark at the moment it was written. Editing rewrites the words and nothing else — the timestamp and the stamp stand, and the edit is disclosed. A call cannot quietly become a better call — and since calls are public, every member's record is scored by the same rules on the same board.
why notes beat a text file
12Every tab is one question asked of the same rows. Tabs marked operator-only by default ship closed to the group; if you cannot see one, it is not hidden from you by accident — the operator has not opened it, and its data routes refuse too.
The home board: one row per market, ~40 columns, sortable, filterable, exportable. Everything else in the app is a different cut of these rows.
start here, alwaysOne name, every surface at once: candles, where the 30d return happened, positioning, event risk, co-movers and hedges, fundamentals, news, your notes, the signal record.
"tell me about this name"An EMA 13/21 ladder on four timeframes per name, scored 0–4 by how many agree, ranked into long and short boards. RETEST marks the pullback into the ribbon.
"what is actually trending, and where is the entry"Up to eight names side by side, or one name across timeframes in a multi-timeframe wall, with linked crosshair and zoom.
comparing shapes, not numbersThe universe as tiles: area is volume or open interest, colour is the move over your window.
the ten-second read of the dayWhere capital is flowing: a rotation flow map, leaders, cohesion (does the label trade as one block?) and a sector × sector correlation matrix.
"which theme is being bought"What moves with what: a cluster-ordered matrix, pair detail with hedge β and a spread z-score, co-movers and natural hedges, rebased overlays and synthetic ratio candles.
before you double a bet you already haveCarry across the whole book over calendar time. Red = longs pay, green = longs receive; a bucket with too little data is hatched, never drawn as flat. Each row ends with its window mean beside its current funding.
"is the crowd paying more or less than it was"When the returns actually happen: overnight vs cash vs weekend holds as equity curves, net of the funding drag, plus hour-of-day and day-of-week clocks.
"when should I be holding this"Return since a date you pick against the worst drawdown taken to get it, one dot per market — up and to the right is more return for less pain — with the benchmarks drawn as lines.
"who earned it, and who just survived it"Unusual conditions, ranked and audited. Every card states the evidence in one fixed grammar — sample size, median outcome, hit rate, expectancy, horizon — plus the mechanical side, void and target. Search any ticker for its whole claim-by-claim history.
"what is unusual right now, and has it ever mattered"Only the names sitting at a trigger right now, with the entry, invalidation and target you would actually use — and reward:risk stated net of expected funding.
the morning listSix equities, stamped once at the cash open and then frozen for the day. A compressed morning scan that deliberately never reshuffles because a number ticked.
first fifteen minutes of the US dayCross-sectional long/short tests on the daily returns already in your browser, with an out-of-sample split, costs and funding — plus the running duel between the two momentum scores. Name one ticker in the target box and it becomes a timing test on that name; the D1 retest study checks whether the Trend board's RETEST beats simply being in the trend.
"does this ranking rule hold up"Every name's 50 and 200 EMA on the 4H and 1D candles: who is touching one now, who is within reach, and how each touch resolved at the candle's close — Support held, Broke down, Reclaimed — with the close that would invalidate it written on the card.
"is anything pulling back into a line I care about"Every member's price calls, public and scored the same way: a leaderboard ranked on what the record can prove (not on a lucky streak), each caller's profile, every call drawn on its candles with its thesis, and a copy score that asks whether following them would have paid after delay, fees and funding. Follow a caller and their next call reaches your phone.
"who on this desk is worth listening to"Earnings for the next two weeks with the session (before the open, after the close), prints from the last two days with beat/miss and the reaction move, each name's own earnings reaction study, and the macro prints — FOMC, CPI, payrolls, PPI, retail sales, GDP, PCE. The Setups strip on top gives each name reporting within five sessions a pre-earnings card: how it usually reacts, who is positioned into the print, the run-up, and whether volatility looks cheap or already bid.
before you size anything into a print72 hours of headlines tied to names in the universe, merged with the macro tape and SEC filings, badged where a name has earnings or an open signal.
"why is this moving"The macro backdrop: mortgage rates, starts, supply and non-QM spreads; and Fed net liquidity with the TGA and reverse-repo drains.
the weather behind the tapeSTOCK Act disclosures (amounts are the disclosed band, never a point figure) and SEC Form 4 transactions (exact shares, exact price, exact date), both sorted by when the market learned.
who was buying their own nameEverything the server holds on one name compiled into a written read: the picture, what the data says, scenarios with computed reward:risk, a mandatory action block, what would change the read. Every number it cites is a number another tab shows, and every directional read is ledgered and graded like any other claim.
when you want it in sentencesEvery note you have
written, newest first, searchable and filterable by the #tags in the bodies. Each one
carries the mark it was written at and the move since. A name rotated out of the universe keeps its
note.
Conversations between account holders where a
$TICKER is stamped with the price at the moment you sent it — so a call reads "sent at
113.90 · +4.0%" forever. A message that reads as a call asks once before it goes on the public
record; calls ↗ opens the Calls tab. Slash commands post live tables into the thread, the ⤴
shares any cell, row, board or chart into it, and you can mirror a conversation to Telegram both
ways.
Tracked 13F filers with their books and quarter-over-quarter deltas. Positioning history filed up to 45 days late — never the current book, and labelled as such.
slow money, read slowlyExact formulas live in the manual and on every hover. These are the plain-English readings.
| What you see | What it is telling you |
|---|---|
| Funding (APR) | Positive/red = longs pay to hold the position — the crowd is long and carry is a cost. Negative/green = longs get paid. A ▴/▾ flag means today's rate sits at the top or bottom decile of this market's own last month. |
| Prem | How far the perp has dislocated from its oracle price, in basis points. When the underlying cash market is closed, a persistent premium is the off-hours price discovery. |
| ΔOI + its tag | Whether money is arriving or leaving, read against price:
longs+ new money confirming · squeeze shorts covering, not fresh demand ·
shorts+ new money pressing lower · unwind longs deleveraging. Open interest
is symmetric, so which side owns it is always an inference — and the hover says so. |
| the four tags, drawn | |
| RVOL | Volume against the same clock hours over the past month. 1.0× is normal for this time of day; 2×+ is genuinely elevated. The session shape cannot masquerade as a signal. |
| Momentum · MOM+ | A self-normalizing −100…+100 score, comparable across a sleepy FX pair and a violent synthetic. MOM+ is the challenger being scored head-to-head against it every day, in public, on the Backtest tab. |
| Squeeze | How loaded the short-squeeze spring is: shorts paying, open interest building, price pressing the 30-day high. Zero whenever funding is positive — no crowded shorts, no squeeze. |
| Carry | Funding per unit of volatility: how much you are paid for taking the unpopular side, adjusted for how wild the ride is. |
| vs S&P · vs tape | Excess return over the benchmark, and over the universe median. On a day when everything is red, "vs tape" is the honest relative-strength read. |
| OI / Vol | Positioning divided by turnover. ≥2 means crowded positioning that cannot exit quickly; under 0.5 is fresh churn. |
| DownCap · Hit% | How much of the tape's drop this name eats on red bars, and how consistently. A flattering DownCap with a low Hit% means a couple of lucky bars carried it. |
| vs VWAP | Where price sits against the month's volume-weighted average — roughly, whether recent buyers are in profit or trapped. |
| Beta | How much of the benchmark's move this name typically takes: above 1 amplifies, below 1 dampens, negative moves inverse. |
| Mark | Meaning |
|---|---|
| ★ / ☆ | Watchlist. Follows your account across devices. |
| E | Earnings: solid = reports today, hollow = tomorrow. After the print it becomes a scoreboard — beat/miss and the day's move. |
| ◢ | You have a note on this name. Bright within a week, dimmer to a month, a hollow outline after; a count past one. Hover for the first line and the move since. |
| ⬡ | Your linked wallet holds a position here, in the side's colour. |
| ◆ Casc | Crypto: a liquidation cascade in the last 24 hours. Red = longs were liquidated, green = shorts. |
| Amber rail | A foreign-listed name whose home exchange is open right now; the microline counts down to the next open or close. |
| Thing | What it does | Where it lives |
|---|---|---|
| ★ Watchlist | Pins names to the top of the table and to the ★-only filter. | Your account — the same on phone and desktop. |
| Saved layouts | Named table views: columns and order, sort, window, volume/OI filters, ★-only. A • means the live view has drifted from the saved one. | Your account. Which layout is active stays per browser on purpose, so a phone can run its own. |
| Notes | Your prose on a name, price-stamped, tagged, searchable. | The server, on disk — not this browser's storage. |
| Alerts and rules | Up to 60 personal metric rules, evaluated server-side with no tab open, plus which alert classes reach you. | The server; delivery to your browser and your linked Telegram. |
| Linked wallet | A Hyperliquid public address that overlays your open positions onto the board and the drawer. | Your account. Read-only: the app reads public state and can never sign. |
| Messages | Conversations and their price stamps. | The server. On this deployment the operator can read every conversation, and every such read is logged. |
| Calls | Your calls, their thesis, updates, post-mortems and results — your record on the leaderboard. | The server, and public to every member. A call from a group or topic shows with its message; a call from a DM shows the call and its thesis, never the words or who it was said to. Deleting the message never removes the call. |
| Follows | The callers whose next public call reaches your phone, and the paper portfolio that copies them. | Your account. |
| Your usage | Which tabs you open and for how long — never what you type, search or filter. | The server, per member for 30 days, then folded into site totals. The Your usage card in the Messages rail shows you exactly what the operator sees, and can pause it. |
| Per-browser only | Tab order, the active layout, theme and density, the funding unit, the analysis window and refresh cadence, terminal history, chat drafts. | This browser. Nothing here syncs, by design. |
#sectors
opens a tab, #t=NVDA opens that name's drawer. Paste one into an open tab and it
navigates.Two notes, two stamps. Each is read against today's mark, so the second one already tells you it was the better call. Editing either would change the words only — the stamp stays.
1$TICKER is stamped with the price it was sent at.Press ~ or click ▸_ Ask. The console runs over the rows already in your browser, so answers are instant. Tab completes verbs, fields and tickers; ↑ ↓ walk your history; every result names the rows it ran on.
| Type this | Get |
|---|---|
| nvda | The name's card — price, day move, funding, OI, squeeze, momentum, vs tape. |
| nvda funding | One column on one name. |
| top funding 5 | Any column ranked, plus gainers, losers, trending. |
| screen rvol>2 & squeeze>50 | A filter across the board, fields joined with &. |
| breadth · sectors | How healthy the tape is; which sectors are working. |
| earnings today · news nvda | The calendar and the 72-hour headline window. |
| vs nvda amd · corr nvda amd | Side-by-side compare; correlation and hedge β. |
| comp AAPL MSFT NVDA · ratio NVDA/BTC 4h | Rebased overlays; synthetic pair candles. |
| report nvda | Open or generate the written analyst read. |
| most crowded shorts · hows the tape | Plain English — common questions are translated into the grammar and the translation is echoed back so you can see what it ran. |
ask chip shows the group's remaining calls for the
day, and a 🔒 means generation is locked until an operator unlocks it. Local verbs never touch the
budget.In any Messages thread, type / and the verb — /top funding 5,
/nvda, /screen rvol>2, /earnings today — and the result
posts into the thread under your name, badged computed, so the group reads one table instead
of six people opening the panel. Two extras only exist here:
/alert NVDA > 200, /alert NVDA crosses down 180,
/alert any rvol > 3 — a threshold rule bound to that conversation: when it
fires, the fire posts there. /alert list and /alert off <id> manage them./share <ticker>, or the ⤴ that appears when you hover a cell — posts any
cell, row or screen of the markets table as a data card, optionally quoted as a call.The 🔔 bell lives in the status line, so it is reachable from every tab. One event stream feeds every channel — the in-tab toast, the bell panel, Telegram, browser push — so a channel's settings can quiet your phone without ever editing the record of what fired.
1Ticker (or blank for any market) · metric · above or below · threshold. Price, the window returns, funding and its percentile, premium, volume, open interest, relative volume, ΔOI, liquidations. Evaluated on the server against the same snapshot the board renders, with an arm band and a cooldown so one crossing is one alert.
Setups and ledger outcomes are on by default. Trend changes, 200-day crosses, material SEC filings, earnings on names you have a claim open on, macro prints, a flipped AI stance, tape-wide crowding extremes and feed outages are each a switch, shown with how often they actually fire.
Link once from the bell (a single-use code, ten minutes), then pick classes and quiet hours. Unread messages escalate to your phone after five minutes — unless you are online, or the thread is muted, or someone @mentioned you, which pierces the mute.
A morning brief (indices, movers, sectors, positioning, earnings, macro, headlines), a written market commentary a few times a week, and a deterministic desk digest — open and just-closed calls, the record per person, the open consensus, signals, earnings and movers. You set the hour and the days; the digest sends nothing until you do. Every Monday the 📣 Calls recap topic gets the week's calls.
☆ follow a caller on the Calls tab and their next public call reaches your Telegram and browser push with its thesis and copy score — capped per caller per hour, never a DM's words. Your own target calls post their result into the conversation they were made in.
You write any · relative volume · > 3. Nothing happens for two days. Thursday 11:04 your phone says SMCI RVOL 3.4×. You open the drawer: an 8-K twenty minutes ago, ΔOI shorts+. You had no position and now you have a reason to look — that is all a rule is for.
| Key | Does |
|---|---|
| / | Jump to this tab's search box. |
| j k Enter | Walk the table (or the message rail) and open the highlighted row. |
| Ctrl/⌘ + K | Command palette — type a ticker or a tab name. Shift+Enter opens that ticker's AI report. |
| ~ | The terminal. |
| s | Share the focused row into a conversation. |
| ? | How to read the tab you are on. |
| Esc | Close the top-most thing — drawer, menu, palette, help — one level at a time. |
On a phone, add the site to your home screen and it runs as an app. The first visit starts from a mobile column preset (ticker, price, 24h, 7d, funding, ΔOI, volume); every other column is one toggle away, and once you arrange it yourself the app never overrides your arrangement. Notifications for messages work with the tab closed once you enable them in the Messages rail.
Knowing the edges saves more time than any feature.
build is the server's. If it does not match the latest delivery,
the deploy is stale — that is an operator question, not a browser one.$TICKER, so it reads as a call, and calls are public. The box
restates what will be recorded and asks for anything your words left open (which way, 7 or 30 days).
Send as a plain message posts the same words with no stamp.$HOOD 30d) and it counts 1; a target with a deadline ($HOOD to 130 by Dec 18)
counts 1¼.This page describes the app as of the build stamped at the top. Where it summarises, the manual is the longer answer and the code is the source of truth.