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 four names side by side, or one name across timeframes in a multi-timeframe wall, with linked crosshair and zoom, 5-minute to 3-day candles. Draw trend lines, levels, boxes and Fibonacci once and they show on every timeframe; add RSI, MACD, Bollinger Bands and a dozen more, each in its own pane; or write your own indicator — JavaScript, or a TradingView Pine script pasted as it is — and share it with the desk.
comparing shapes, and drawing your ownThe 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"While the US cash market is shut, the perp is already pricing the opening gap. Each name's implied gap, and how much of a gap like it has usually still been there at 10:00 ET on its own last 180 nights — with the error bars.
before the cash openThe same stock listed on other HIP-3 dexes: the price and funding difference between the two perps, and what the carry trade would net over a day after fees — with the fee stated as an assumption on the board.
"is the same thing cheaper, or paid better, elsewhere"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. By ticker reads one market like a chart, every caller's calls drawn on it. Challenges are the games — a weekly pick, head-to-head duels and custom contests — kept off the leaderboard.
"who on this desk is worth listening to"TS9's elasticity signals — RECOIL ▲ out of a coiled zone, SNAP ▼ out of an extended one — scored on 4h to 3D candles and read as legs: the first call opens one, repeats stack on it, only the opposite call closes it. Strongest legs first, each with the move since it became available and a chart of every call.
"what is stretched, and has it snapped"TS9's divergence signals — ABSORB ▲ (price makes a lower low while flow makes a higher one) and DIST ▼ (the mirror) — tracked as legs exactly like BOW, with a timeline per market showing every call and how long each leg ran.
"is the flow disagreeing with the price"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 nameThe short side of the stock behind the perp: FINRA short interest and its change, days to cover, a short float estimated from SEC filings, and each session's short-sale volume against the name's own normal.
"is the stock's short side building"Analyst consensus on our markets (CryptoQuant), read as how unusual today's mood is for that name rather than how many agree — with a flag when the mood and the last 24 hours of price disagree.
"what is the crowd of analysts saying"Everything 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. The operator's broadcasts land in your own read-only 📣 Announcements.
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 slowlyYour linked wallet read as one position: its beta in dollars per 1% of the S&P or BTC, a week of funding, a one-day VaR from a 60-day replay, and which legs are really one bet. Its journal imports your fills and splits your P&L by what the board said when you took each trade.
"what am I actually holding"From an Actionable card: size a trade off its stop and your risk per trade, price the fill on the live order book and the funding over the hold, and see your book's VaR and beta before and after. A calculation, never an order.
before you add the tradeExact 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. |
| Short float ≈ · days to cover | How much of the stock's float is sold short, and how many days of normal volume shorts would need to buy it back. The float is estimated from SEC filings (hence ≈; a † warns that many new shares have been issued since), and short interest is one to three weeks old when it is published. |
| Short vol σ | Today's share of off-exchange volume marked short, against the name's own last 30 sessions. The level alone means little — market makers short all day to fill buyers — the σ is the unusual part. |
| Consensus σ | How unusual the analysts' 30-day mood is for this name against its own last 90 days. +1σ on a name everyone dislikes means less bearish than usual, not bullish. |
| OI cap | The market has hit the open-interest cap its deployer set: orders that add open interest are refused, so new money is locked out until it comes off. |
| Capture (Gaps) | How much of an overnight perp gap has usually survived to 10:00 ET on this name: 1.00 an honest pre-open read, 0.60 that 40% has tended to fade. Read its interval before the number. |
| TS9 score · ×N · FRESH | A BOW or Pulse call's score (BOW up to 100, Pulse 60 / 80 / 100); ×N is how many same-way calls have stacked on the leg; FRESH (≤ 3 bars since the latest call), RECENT (≤ 10) and MATURE say how old the leg is — they never end it. |
| 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. |
| Chart drawings | Trend lines, levels, boxes, Fibonacci and notes on a name — the same on every timeframe and every pane showing it. | This browser, and your account when signed in. |
| Indicators and layouts | What every chart draws and how each line is styled, plus up to 12 named indicator layouts. | This browser, and your account when signed in. |
| Your scripts | Up to 16 indicators or strategies of your own, in JavaScript or Pine. | Your account when signed in. Private until you share one: public puts it in every member's Community search under your handle, private gives it to the handles you name. Unpublish or delete takes it off their charts. |
| BOW & Pulse alert choices | Which TS9 events, timeframes, minimum score and direction reach you. | Your account — the bell, the pop-up, your phone and your webhooks all follow it. |
| Trade journal | Your wallet's imported fills, folded into trades and tagged with what the board said. | The server, under your account. Unlinking the wallet deletes them. |
| Profile and passkeys | Your display name, a short bio, a picture; the passkeys that can sign you in. | Your account. Adding or removing a passkey asks you to confirm it's you first. |
| 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. |
| Announcements | The operator's broadcasts to you. | Your own read-only thread at the top of the Messages rail, kept 30 days. Nobody else sees your copy; reply privately opens a DM with the sender. |
| 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, ledger outcomes, your rules and calls are on by default. New signals (a Signals card the moment it opens, before any track record), trend changes, 200- and 50-EMA closes and touches, funding extremes, open-interest caps, insider cluster buys, material SEC filings, congress trades, earnings, macro prints, a flipped AI stance and tape-wide crowding are each a switch, shown with how often they actually fire. You are only offered — and only sent — the classes whose tabs are open to you.
Where those tabs are open to you, TS9's calls can reach your phone: a new leg, a flip, a stack, or a leg closed by a call. You choose the events, the timeframes, the lowest score and the direction per engine; left alone it is new legs and flips at BOW 90+ and Pulse 80+. One call is one alert, and the choice follows your account to every device.
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. |
| ← → + − A | On a clicked chart pane: pan, zoom, and put the price axis back on auto. Delete removes the selected drawing. |
| Ctrl/⌘ + Enter | In the script editor: run the script now. |
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.