Vespryx DOCS {{ crumb }} Home Daily levels Discord Your account
THE MANUAL

What every line, word and setting means.

Everything Vespryx draws comes from the options chain: where dealers are positioned, and therefore where they are likely to buy and sell to stay hedged. None of it is a prediction. It is a map of where the money already sits.

One page, eleven sections, nothing behind a sign-in. Settings you can change, your plan and your desktop token live on your account page.

01 · THE CHART

What Vespryx draws on your chart

Five objects and one card. Thicker and brighter means more open interest sits there: the glow is the ranking, not decoration, so you can read which level matters most without reading a single number.

RESISTANCE 12k OI PIN 36k OI STRONGEST GAMMA FLIP above: damped SUPPORT 21k OI · $36M today SUPPORT 8k OI POSITIVE GAMMA MOVES GET DAMPED PIN 880 FLIP 857 SPOT 878 4 expiries · 5m old the regime card
The faded line near the bottom is a weaker level, drawn thinner and dimmer on purpose.

The labels sit on the lines, not beside them. TradingView breaks a line to make room for its text, so the level and its name can never drift apart or cover a different level. Two labels can only overlap if two levels do.

02 · VOCABULARY

The four colours, and only four

Each one means exactly one thing. Nothing else on the chart uses them.

{{ c.k }} {{ c.d }}

A dotted purple line means the two gamma models disagree about where the flip is, and the dotted one is the second opinion. It is labelled GAMMA FLIP (gex model) so it cannot be mistaken for the real one.

03 · REACTION ROW

What price did when it got there

The walls say where the levels are. This says what price did. It is one row in the regime card, and only ever reports the current bar or the last two.

{{ r.k }}{{ r.d }}

Every one of these requires a level. That is what separates it from a candlestick pattern library, which fires everywhere because a hammer is a hammer wherever it forms. With no dealer level within reach, nothing is reported at all.

It reports what happened. It never says what to do.

04 · EXPIRATIONS

Which expirations you are looking at

The single biggest thing the chart does not say out loud, so the card says it.

08/11 08/14 08/21 08/28 one set of levels
By default the chart blends four expirations. Which four differs per symbol: a fast-moving name might blend zero to five days out, a slower one a month of weeklies. Those are different claims about different horizons, drawn identically, which is why the card states the count and the date range.

Pick a single date in Expiration and the levels are recomputed from that chain alone. It is a genuinely different reading, not a subset: on one measured day SPY's pin sat at 768 across the blend and at 750 on a single expiry. The card marks a chosen expiry so you can tell the two apart.

05 · REFERENCE

Every setting, and what it actually changes

The popup and the settings page write the same values. Use whichever is nearer: the popup for things you change while reading a chart, the settings page for everything.

Vespryx is on

The master switch. Off stops every overlay everywhere and stops all fetching with it.

It never deletes anything already drawn, because a deleted drawing cannot be recovered. Use Remove drawn walls for that, which only removes drawings Vespryx marked as its own.

Dealer walls

The lines themselves. This is the product; leave it on.

Levels drawn

How many walls to draw, strongest first. Six by default.

Past about six the chart stops being a read and becomes a wall of colour. This is a judgement about legibility, not a limit of the data.

Minimum level strength

Draw only levels scoring at or above a floor. Strength is 0 to 100: open interest at the strike, weighted by how near it is to price.

Off 100 98 56 43 36 50+
The two weakest levels stop being drawn. The cap still applies afterwards.

It needs a Vespryx session. Without one there are no scores to compare, only a placeholder, so the filter is skipped and the chart tells you rather than emptying itself. If no level reaches your floor, the chart says what the strongest actually was.

Level naming

Words names the level: RESISTANCE  40k OI.

C1 / P1 names it by side and rank: C1  40k OI. Shorter, and it tells you both which side of price it is on and that it is the strongest there.

Wall thickness

How far the glow blooms out from a level, and what makes a busy chart heavy. Thin gives the candles back; Thick makes the bloomed levels unmissable.

Which levels bloom is about DISTANCE, not rank: the nearest level above price, the nearest below, and the pin. The one price is actually between is the one worth the width, and the strongest level in the chain is often the one furthest from you. Strength shows in how solid a line is drawn rather than how wide it blooms.

Whatever you pick is a ceiling, not an override. Where strikes sit close enough that full-width glows would smear into each other, the chart still narrows them below your setting, because two levels you cannot tell apart are worse than one drawn thinner than you asked for.

Level text colour

What the words written on each line are drawn in. Automatic follows your chart's own foreground, which is what keeps them readable sitting inside the glow.

One setting reaches all of them, so the wall labels, the print chips and the expected-move lines cannot end up in three different colours. Pick anything that is not a plain colour and it falls back to Automatic rather than drawing a label with no text in it.

The indicator carries the same setting, where leaving it alone lets each level name itself in its own colour. That is the opposite default on purpose: those labels sit on the chart background rather than inside a glow, so the colour doubles as the key.

Expiration

Blend every expiry the chain uses, or pick one. See section 04.

The list is the symbol's real chain, so it changes as you change symbol. A date left over from another ticker is dropped rather than sent, because the request would 404 and the chart would silently fall back to the blend.

Today's big prints

Today's large option trades, shown against the standing positioning.

A print at a strike that already has a wall is written onto that wall's label (57k OI  ·  $36M today), because "money traded where inventory already sits" is the informative case. Only a print with no wall behind it gets its own marker, capped at two.

Regime panel

The card in the top right: the regime in words, what each colour means on this symbol, how far price sits from the flip, the reaction row, and how old the data is.

It states an age and deliberately never judges it. After the close, a chain measured hours ago is perfectly legitimate.

Panel size

Three steps, S / M / L. This is the one chart setting that costs no repaint, because it is CSS on an element already on the page.

You can also drag the bottom-right corner to fine-tune it, and double-click that corner to snap back to the preset. The floating HUD resizes the same way.

Keep tickers dressed

Paints your saved tickers on a schedule so they are ready when you open them. See section 06.

Flow alerts

A Chrome notification when a new high-score unusual print lands on a ticker you follow. Checked every five minutes, in your browser, against your own session. Nothing is sent anywhere.

Cashtags & Fidelity

Badges $TICKER mentions with live dealer context across X, Reddit, StockTwits and the finance press, and paints wall levels onto Fidelity's option chain.

Both decorate a page as it loads, so switching them off wants a page reload to take full effect. The settings page says so when you toggle them.

Expected-move cone

Off by default. It bands the chart with the at-the-money straddle's implied move to expiry, which answers whether a level is even reachable today before you trade toward it.

Needs a Vespryx session and the entitlement behind /ticker/:symbol/tactical-grid. Switch it on without one and the rest of the chart still draws normally; a toast says the cone itself is on Vespryx Pro, rather than leaving you to guess why nothing changed.

Max pain + OI walls

Off by default. Max pain, the call wall and the put wall are the open-interest vocabulary rather than the gamma one, so they draw dotted to keep the two readings apart on sight.

Derived from the same gex.byStrike the walls already fetch, so it costs no extra request and works at whatever tier already drew the walls. Dealer walls, which you do have, are computed from gamma exposure and are a different claim: a call wall is where the most calls are, not where hedging pressure is strongest.

Map preset

Controls which levels the chart draws. Full is the default: all dealer walls with the apex overlay. GEX only removes the apex overlay and draws from gamma exposure alone. Minimal draws the two strongest levels. Custom applies the strength floor and level cap you set in the wall settings.

Synced across devices through your Vespryx account. A change here applies the next time the chart repaints.

My levels

Up to three prices you want drawn as dashed lines on the chart, in slate grey. Enter a price and an optional label. They appear on every chart, on top of the dealer walls, and sync across devices.

Leave a price blank to skip that row. The lines are swept and repainted with the walls, so they stay clean when the chart reloads.

06 · PHONE AND DESKTOP APP

One painter. Every screen you own.

Both work. Neither needs anything installed on it.

Chrome, on this machine PAINTS THE LEVELS TradingView SYNCS YOUR ACCOUNT Phone app Desktop app Any other browser

TradingView saves drawings to your account, not to your computer. So anything Vespryx paints in Chrome is already on every other device you are signed in on, on the same layout, without Vespryx being involved a second time.

A Chrome extension cannot run inside those apps. Nothing can: an extension only runs in Chrome, and the phone app and the desktop app are separate programs. So Vespryx does not pretend to. It makes this machine the painter and lets every other device be a viewer.

The regime card is the one thing that does not sync: it is a page element in Chrome, not a drawing, so it does not follow you to the desktop app or the phone.

ON YOUR PHONE
{{ s.n }} {{ s.title }} {{ s.body }}
ON TRADINGVIEW DESKTOP
{{ s.n }} {{ s.title }} {{ s.body }}
THE COMMON MISTAKE

Painting one layout in Chrome and opening a different one in the app. The drawings are saved per layout, not per symbol, so a fresh layout is an empty chart and looks like a broken product. Both sides need to be on the same named layout.

Keep tickers dressed

A viewer only shows what was painted. If you want a name ready on the phone without opening it in Chrome first, this is the switch: it repaints your saved tickers here, on a schedule. Set it in the extension's settings, under Phone & desktop app.

{{ f.k }} {{ f.v }}

It paints the same ticker list Flow alerts uses, so the two never disagree about which names you follow. Paint them now does one pass immediately and ignores both the switch and the schedule, so it is the right button before you walk away.

YOUR PHONE · VIDEO
TRADINGVIEW DESKTOP · VIDEO

How a level reaches you when you are away

Alerts armed on the levels that change behaviour, the pin, the flip and the nearest wall each side, are native chart alerts. They live in your TradingView account, so they fire on the phone as normal push notifications with nothing of ours running there.

Armed deliberately, per symbol

TradingView caps alerts at roughly 20 account-wide, so a batch that would blow the budget is refused rather than silently truncated. The preload pass never arms anything on its own.

Not the same as flow alerts

Flow alerts are a Chrome notification about an unusual print, polled in this browser. They reach you at the desk, not on the phone. Two different features that both say “alert”.

Driving the desktop app instead of viewing it ADVANCED · MOST PEOPLE SKIP THIS

Everything above treats the desktop app as a viewer, and for almost everyone that is the right answer. There is a second path: the tools/ scripts can paint the desktop app directly, over a local bridge, which also lets a coding agent read and drive your chart. Skipping it costs you nothing.

YOU WANT THIS IF
  • You trade in the desktop app and want it painted without Chrome open
  • You want a ranked batch report over a watchlist
  • You want an agent to read bars and draw real trendlines
IT COSTS YOU
  • Node and git on this machine
  • The desktop token, copied from your account page
  • TradingView relaunched with a debug port
  • A separate clone of tradingview-mcp, which is not ours
THE EASY WAY · ONE FILE

It installs Node if you do not have it, fetches the toolkit, sets up the bridge, asks you to paste your token, and checks the result. It is a plain text file: open it in a text editor first if you want to read exactly what it does.

WINDOWS

Download it and double-click it.

Windows installer

Windows warns before running anything downloaded, ours included. Press More info, then Run anyway.

MACOS AND LINUX

Download it, then paste one line into Terminal.

macOS and Linux installer bash ~/Downloads/vespryx-setup.sh

Terminal is in Applications › Utilities. Double-clicking the file will not work: macOS opens it in a text editor instead.

WHAT YOU WILL SEE, IN ORDER
  1. It checks for Node, and installs it if you do not have it. That step takes a minute and is the only slow one.
  2. It downloads the toolkit and unpacks it to a folder called Vespryx in your user folder.
  3. TradingView Desktop closes and reopens by itself. That is meant to happen: it has to restart to accept the connection. Nothing has crashed, and your layouts are untouched.
  4. It stops and waits for your token. Copy it from your account page, then come back and press a key. Nothing is typed and nothing is stored in your command history.
  5. It checks the result and prints a list. Four lines reading ok means it worked. A line about no GUI server is normal and needs nothing from you.
  6. It sets itself to start with your computer, and starts now. Open TradingView Desktop as normal: the first time, it closes and reopens once by itself, which is Vespryx connecting. To take it out again, node tools/autostart.mjs --uninstall from the Vespryx folder.

If it says Node is installed but the window cannot see it, close the window and run the file again. That is expected the first time on a machine that had no Node, and running it twice is safe: it is written to be re-run whenever the bridge stops working.

Or do it by hand, in four steps

Exactly what the installer above does, if you would rather run it yourself.

1. Download the desktop kit and unzip it

Anywhere you like. It is a separate download from the extension, and it holds the tools/ scripts plus a START-HERE.md that repeats these steps offline.

Download vespryx-tools.zip
2. Open a terminal inside the unzipped folder

This is the step people get wrong. Every command below is written relative to that folder, so a terminal opened anywhere else answers Cannot find module. You are in the right place when tools, core and pine are the folders sitting beside you.

3. Run the setup, once node tools/setup-bridge.mjs

It clones the bridge, installs it, patches the Pine editor stub, and relaunches TradingView Desktop with the debug port. Safe to run again whenever.

4. Paste in your token, then check the lot

Copy it from your account page, then pipe it in. It is read on standard input rather than typed as an argument, so it never lands in your shell history.

Get-Clipboard | node tools/td-token.mjs pbpaste | node tools/td-token.mjs xclip -o | node tools/td-token.mjs node tools/preflight.mjs node tools/autostart.mjs --install

Preflight tests every piece and names the one that is wrong, which makes it the first thing to run whenever this stops working. The second line makes Vespryx start with your computer and run in the background.

The token is a long-lived credential to your paid account, so treat it like a password: never in a screenshot, a chat or an issue. The tools read it from ~/.cache/vespryx/td-token.json. node tools/td-token.mjs --check reports whether yours is installed and how long it has left, and never prints it back out.

07 · THE INDICATOR

Levels on a chart the extension cannot reach

The extension paints TradingView in Chrome. Two charts sit outside that: a layout you are reading on a machine where you have installed nothing, and a chart you want to hand to somebody else. The Vespryx Overlay By TraderMatrix indicator covers both. You paste one line into it and it draws the same levels, in the same colours.

It is a Pine study, so it cannot fetch anything. Every number in it arrives because you carried it there, and that is the whole design: one field, one line, no key, no editor.

1. Add it once

It is a public script on TradingView, so there is nothing to download and nothing to be granted. Open the Indicators dialog, search for Vespryx Overlay By TraderMatrix, and click it. Or open its TradingView page and press Add to chart.

One or the other on a layout, not both. Where the extension already paints a symbol, its drawings are on that layout on every device. Pasting the same symbol into the indicator too draws every level a second time, with a second label on top of the first. Use the indicator for charts the extension does not reach; where it does, leave the paste box empty.

2. Get your line

Two places produce it, from the same two calls, so they cannot disagree with each other or with your chart. The Vespryx popup, Copy levels, copies the levels for the symbol you are looking at. Discord, /td vespryx SPY in #vespryx-commands, previews the levels as a list and puts the line in a code block with its own copy button — the path that works on a machine with nothing installed on it.

Open Discord

The line looks like this, and it is meant to be unreadable. It carries the ticker, the flip, the pin, each wall with its open interest, and the moment it was taken.

VSPX|1|SPY|769.35|775|785.73|766.95|1786725376000|apex|1.15|785.73:57000:R,766.95:44000:S
3. Paste it in

Open the indicator's settings and put it in the field called Paste from Vespryx. That is the only field you need to touch. The numbered inputs under it are a manual fallback for typing four levels in by hand; if you pasted a line, they are ignored.

4. Re-paste when you switch symbol

The line names its own ticker, so a line for the wrong symbol draws nothing at all rather than drawing SPY's levels on QQQ. This is the one real cost of the paste path, and it is most of the reason the extension exists.

It also stamps the moment it was taken, and the panel prints how old that is. A pasted level cannot refresh itself, so without an age a chart shows Tuesday's flip on Thursday with nothing on screen to disagree.

What it draws

The levels, in the palette you already know: red resistance, green support, amber pin, purple flip. Then the read, which is the gamma regime and what it does to a move, and two rows the study works out from the bars in front of it rather than from anything you pasted, VOLUME and MOMENTUM.

There is no glow, and there cannot be. The bloom needs a drawing layer, which Pine has no way to make. So the study draws the crisp core of each level in the same colours and the chart reads flatter. Same levels, thinner picture. The regime card does not come with it either: on the web that card is a page element rather than a drawing, and elements do not travel.

IF THE INDICATOR LOOKS WRONG
{{ t.q }} {{ t.a }}
08 · DATA AND METHOD

Where the numbers come from

Vespryx reads the options chain served by api.traderdaddy.pro, which is updated throughout the trading day. You do not supply an API key. The extension rides your logged-in Vespryx session and the data server applies your plan's entitlement.

Inputs

Chain data. For each symbol the server reads open interest, premium and strike prices from the live options chain: the gamma exposure at each strike (GEX), the open interest summed by strike, and a per-strike score derived from both. None of it is backcalculated from price history. It is what the chain holds right now.

Expiries. By default Vespryx blends four expiries selected by the server, typically the nearest zero-to-five days for short-dated names like SPY and the nearest weeklies for single stocks. SPY carries over 35 expiries out to 2028. A single expiry and the blended set give genuinely different levels: choosing one is not a filter on the other. The regime card prints which expiries are in use every time.

Cadence. The extension fetches each time you switch symbols on TradingView, and the response is cached for five minutes. There is no background polling while the chart sits still. The age printed in the card is the age of the last fetch, not a countdown.

What the server computes

{{ c.k }} {{ c.v }}

ES and NQ are proxied from SPX and QQQ

Futures have no options chain of their own in Vespryx. The two most-traded equity index futures are the exception: ES is proxied from SPX and NQ from QQQ, using a ratio and basis the server computes live from each chain. The regime card prints a provenance line naming the source and the scaling applied, so the chart does not look like a native measurement when it is a derived one.

Micros (MES and MNQ) share the same price as the big contracts and map identically. All other futures, including CL, GC and RTY, are refused: there is no source chain to scale from. Late in a quarter the levels carry a small basis error, because the basis constant decays into each quarterly roll, and the provenance line names this.

Only absolute price fields are scaled: spot, the flip, the pin and wall strikes. Open interest is a contract count on the source chain and does not scale. Scores are ranks. Dates are dates. Scaling any of those would manufacture a measurement that was not in the chain.

Cadence and limits

{{ l.k }} {{ l.v }}

Observations, not recommendations

WHAT WE SAY
  • Where open interest is concentrated, by strike and expiry.
  • Which side of the gamma flip price is on, and what that implies for dealer hedging behaviour.
  • The max-gamma pin and why spot gravitates toward it near expiry.
  • What price did when it reached a level: rejected, broke, reclaimed, absorbed, or compressed.
  • How old the data is and which expiries it covers.
  • When the data is locked, incomplete or unavailable, and why.
  • For ES and NQ, that the levels are proxied and from which chain.
WHAT WE REFUSE TO SAY
  • Buy or sell signals. The chart describes a map of dealer positioning. What you do from that map is your decision.
  • Performance claims. No win rates, return figures or backtested outcomes.
  • Invented testimonials or fabricated user counts.
  • Partner or endorsement badges not grounded in a real commercial relationship.
  • A confidence level or probability attached to a level holding. Open interest says where money sits, not that it will stay there.

Four data states

Every chart is in one of four. The regime card and the HUD report which, rather than rendering nothing or guessing.

{{ s.k }} {{ s.v }}

What the extension can see

Four things, and nothing else. Your logged-in Vespryx session — the access and refresh tokens that tab has already stored, used to authenticate requests to the data server; never your password or your payment method. The TradingView chart in the current tab — the active symbol and the chart's price range, to size the glow; not your watchlist or your positions. The local desktop server on 127.0.0.1:7777, if you run it — reachable only from your own machine, and never contacted if you do not run the tools. vespryx.com, to check for extension updates — once per popup open, at most every 12 hours, cached in extension storage, with no personal data leaving the browser.

It never reads your brokerage account, your order history or your position sizes, and it contacts no host outside api.traderdaddy.pro, vespryx.com and the optional loopback server.

For Chrome Web Store reviewers: the loopback connection to 127.0.0.1:7777 is used only when the user has separately installed and started the command-line tools package. The extension does not require the local server to function and degrades gracefully when it is not running. The connection is to loopback only and is guarded by an Origin check that rejects requests from any browser page.

09 · WHEN IT LOOKS WRONG

Nine things that look like bugs and are not

In the order they actually happen. The chart first, then the devices.

{{ t.a }}

Still not behaving? Discord is the fastest, and support@vespryx.com reaches us directly. Say which device and which layout, because that pair is the answer nine times out of ten.

10 · RELEASES

Every build, and how to update one you already have

CURRENT BUILD
0.23.3
7 September 2026
Add from the Chrome Web Store Download the zip

Installing for the first time? The store is one click, with no folder to keep track of, and it updates itself. The zip is for a build you loaded unpacked, or a browser without the store: Edge, Brave, Opera, Arc and managed Chrome.

Updating a copy you already have

Your existing settings, your token and anything already drawn on your charts all survive this. You are replacing the program, not your data.

  1. Download and unzip the build above.
  2. Replace the old folder with the new one, keeping the same location and name. If you put the new folder somewhere else, your browser is still reading the old one.
  3. Open your extensions page and click Reload on the Vespryx card. No need to remove and re-add it.
  4. Reload any open TradingView tab. Extensions only attach to pages loaded after them.

Vespryx tells you when this is needed. Once a day it checks what this page is serving against what you are running, and puts a blue dot on the toolbar icon if a newer build exists. Open the popup and you get the version, a button straight back here, and the dot clears.

DESKTOP TOOLS · OPTIONAL
Drive TradingView Desktop directly
Command line · needs Node 20 and git · ZIP
How to set it up Download

Changelog

{{ r.v }} {{ r.d }} {{ r.tag }}
  • {{ i }}

Older entries ship with each build, in the archive's own notes.