View on GitHub
v0.2.4 — now even sharper

JSON that grep
actually understands

Flatten nested JSON to readable lines. Filter by path. Reconstruct perfectly. Built for the terminal, powered by Bun.

Try live playground Install in seconds
$ bun add -g @siyadkc/jray click to copy

The power of flat data

Every leaf value in your JSON gets its own line with a full, grep-able path.

flatten all paths
$jray data.json
json.organization.name = "Acme Corporation"
json.organization.founded = 2019
json.users[0].name = "Alice Pemberton"
json.users[0].role = "admin"
json.users[0].active = true
json.billing.plan = "enterprise"
json.billing.seats = 25
filter by path
$jray data.json --filter "billing"
json.billing.plan = "enterprise"
json.billing.seats = 25
# pipe into grep, awk, anything
$curl api.example.com/user | jray
json.id = 1042
json.email = "alice@example.com"
json.users[0].preferences.theme = "dark"
json root prefix
users[0].preferences.theme full path
= delimiter
"dark" JSON-encoded value

Play with jray instantly

No install needed. Paste any JSON and explore — a faithful simulation of the real CLI core.

⌘↵ to run
Input JSON
Output

Built for engineers

Everything you need. Nothing you don't. Zero learning curve.

Path-aware filtering

--filter matches paths only — never accidentally matches values. Safe and precise.

Fully reversible

Flatten and unflatten are perfect inverses. Your JSON comes back exactly as it went in.

Stdin / stdout

Pipe it into anything. Works with curl, cat, grep, awk — your whole toolchain.

Bun-powered runtime

Published through npm, designed to run anywhere Bun is installed — macOS, Linux, or Windows. Small bundle, no heavy dependencies.

Open source · MIT

Free forever. Built in public from day one.

Better than the defaults

jray gives you the best of both worlds — without forcing you to learn a query language.

Capability jray jq gron
Flatten JSON to lines
Reconstruct JSON
Filter by path
Extract subtree as JSON
No query language needed
TypeScript / modern codebase

Up and running in seconds

Requires Bun. Works on macOS, Linux, and Windows.

installation
# install globally with bun
$bun add -g @siyadkc/jray
# or with npm
$npm install -g @siyadkc/jray
# verify
$jray --version
0.2.4
Open source

Make JSON human again.

Free, open source, and ready for your terminal.

Star on GitHub