A map that never phones home
Open a file with coordinates and you get a map — your points drawn over
the outlines of every country on earth. Drag it, zoom it, watch the
network inspector while you do: not one request leaves your
machine. Every other viewer loads tiles from someone else's
server, handing over your address and the region you are looking at, on
every file you open.
And it finds coordinates that never said they were geo — a CSV with
lat and lon, an API response with
pickup_latitude, a config with
"47.8130, 13.0450" in one string. Never on the name alone:
latency is not a latitude, and where two fields could pair
in more than one way, it pairs neither.
Nothing is ever uploaded
The alternative is pasting an API response into a formatter on someone else’s server. No account, no analytics, no request to anyone but the host whose file you opened.
A hundred thousand nodes scroll like ten
Only the visible rows are ever in the DOM. This is where every other viewer gives up, and it is the first thing you notice on a real file.
Works where the file actually lives
Click “Raw” on a code host and you get a wall of text on a page locked down by a strict content policy — where most extensions do nothing at all. There the view is static rather than absent: colours and structure, just no clicking.
Detection by content, not filename
A JSON API served as text/plain, a YAML file with no extension, a .txt that is really CSV. It reads the file, not the name.
Copy the path, not the value
Click a field name and $.users[].role is on your clipboard, ready to paste into jq, a test, or the next request.
One search box, whatever you are looking at
The tree, the schema and the raw source alike — with operators, and it opens every collapsed level above a match instead of leaving you to find it.
Every distinct value, counted
Click a type in the schema and get each value at that path with how often it occurs. The outliers at the bottom are usually the point.
Arrays become a sortable table
Rows and columns you sort by clicking a heading, with the count of distinct values per column in the header.
What a stylesheet says about itself
Profile reads a CSS file back as a design system: colours by what they do, custom properties resolved, every font size with its measured contrast, the spacing and radius scales. Click a number and the real selectors appear.
What a JavaScript file offers
API lists its classes, functions, values and listeners — and what each function hands back, which is the one thing no signature tells you.
Formats that know what they are
RSS as a feed, a sitemap as a filterable list, OpenAPI as its endpoints, GeoJSON with geometry and property coverage.
CSV that Excel opens correctly
The separator, the encoding, the line endings — and the = that Excel would otherwise execute.
Spot double HTML-encoding
One switch between stored and resolved. If an & is still sitting there after resolving, two layers each thought they were first.
It leaves every other page alone
Renders only on positive evidence. Everywhere else: no request, no restyling, not one DOM node touched — and where it cannot be sure, it shows you the source instead of a plausible guess.