Object Viewer

Privacy-first data viewer for JSON, JWT, YAML, XML, MessagePack, CBOR or a protobuf blobs

Files & Data · Web

MIT Runs in your browser No uploads

Source and tree stay in sync — click either side and the other follows.

Try it now

Live Demo

All data stays within your local browser session. No data is sent back to server.

binbuf.github.io/object-viewer
Open in a new tab

What's inside

Interactive tree view

Expand and collapse nested structures, jump between siblings, and keep your place in huge payloads.

Convert between formats

Turn JSON into YAML or XML and back, so the same data fits the tool you are feeding next.

Search everything

Find keys and values across deeply nested data — useful when a payload is too big to scan by eye.

Timestamp decoding

Epoch values are shown as dates with a configurable timezone, so 1758931200 reads as a day, not a number.

Multi-document input

Multiple objects separated by --- are all decoded and listed, like a small document set.

Drag, drop, paste

Paste from the clipboard or drop a file onto the window. Auto-detection picks the format.

Getting started

2

Paste or drop

Paste data, or drag a file onto the window. JSON/JSON5 is detected automatically; binary formats like MessagePack and CBOR decode from dropped files.

3

Explore and convert

Walk the tree, search for a key, click a source line to highlight its node — then convert to YAML or XML when you need it elsewhere.

Format support

FormatWhat you get
JSON / JSON5Auto-detection, syntax highlighting, tree navigation
JWTHeader and payload decoding with expiration status
XMLNamespace display and root element info
YAMLMulti-document support with --- separators
MessagePackBinary decode with a full tree view
CBORBinary decode with a full tree view
ProtobufRaw wire-format decoding without a schema

Under the hood

A small React app with real decoders.

No server, no upload endpoint, no hidden analytics: the build output is static files you can host anywhere.

Static by construction.

Object Viewer is a TypeScript SPA. Decoding is delegated to focused modules — one per format — and the UI is plain React state, which keeps the whole thing easy to audit and to extend.

  • React 19 + TypeScript — with Vite for the build and Tailwind 4 for styling
  • One decoder per format — json5, jwt-decode, fast-xml-parser, yaml, msgpack, cbor-x and a protobuf wire decoder
  • Vitest — covering the decode and timestamp helpers
  • GitHub Pages deploy — through an Actions workflow, with no backend at all
  • MIT licensed — fork it, self-host it, or lift a decoder for your own tool

Object Viewer FAQ

Before you paste.

Is my data uploaded anywhere?

No. Every decoder runs in your browser tab. Nothing is sent to a server, and there is no telemetry or analytics.

Which formats are supported?

JSON and JSON5, JWT, XML, YAML, MessagePack, CBOR and raw protobuf wire-format data. JSON/JSON5 is auto-detected; binary formats are read from dropped files.

Does it work offline?

Yes. Load the page once and it keeps working in the tab; only that first load needs a connection.

Can it handle multiple documents in one input?

Yes. Objects separated by --- are decoded as a document set, in the style of YAML streams.

Does it decode protobuf with a schema?

It decodes the raw wire format, enough to inspect fields and values without a .proto file. Schema-aware decoding is not part of the tool.

Can I host it myself?

Yes. It builds to static files and is MIT licensed, so you can clone the repository and deploy the build anywhere.

Keep browsing

More from the collection.

All apps →