Back to Showcase
macOSiOSAndroid

Pry

A fast, native JSON viewer built with Perry. Tree navigation, search, keyboard shortcuts — compiled from TypeScript to native binaries.

Features

Tree View

Collapsible, navigable tree rendering for deeply nested JSON structures.

Search

Full-text search across keys and values with instant highlighting.

Keyboard Shortcuts

Navigate, expand, collapse, and copy with keyboard-only workflow.

Clipboard Support

Copy any node or subtree to clipboard as formatted JSON.

Status Bar

Shows node count, current depth, file size, and parse time.

Syntax Coloring

Color-coded values by type — strings, numbers, booleans, null.

How It's Built

Pry is written in TypeScript and compiled with Perry to a native binary. No Electron, no web views, no JavaScript runtime.

📝

TypeScript Source

Standard TypeScript with Perry's native UI API

Perry Compile

SWC parse → type resolution → Cranelift codegen

🖥️

Native Binary

Standalone executable with zero runtime dependencies

pry.ts (simplified)

import { App, TreeView, SearchBar } from "perry/ui";

import { readFile } from "perry/fs";

const data = JSON.parse(readFile(process.argv[2]));

const app = new App("Pry", { width: 800, height: 600 });

app.addSearchBar({ placeholder: "Search JSON..." });

app.addTreeView(data, {

collapsible: true,

syntaxHighlight: true,

copyOnClick: true,

});

app.addStatusBar();

app.run();

Platform Support

macOS

Native AppKit widgets

Available

iOS

Native UIKit widgets

Available

Android

Native Views widgets

Available

Screenshots

macOS screenshot — coming soon

iOS screenshot — coming soon

Screenshots will be added as Pry development continues. Check the GitHub repo for the latest.