MachStruct opens, navigates, edits, and converts large JSON, XML, YAML, and CSV files at native speed. For a 100 MB JSON file, the first nodes are visible in under 500 ms — no loading spinners, no frozen UI.
Free · Open source · MIT License · Requires macOS 14 Sonoma or later
Built for developers, data engineers, and anyone who regularly deals with large or complex structured files.
Switch between an expandable tree view, a sticky-header table view for CSV and uniform arrays, and a raw text view with syntax highlighting and pretty/minify toggle.
⌘F searches all keys and values. Yellow highlights on every match, amber on the active one. ↑↓ navigation auto-expands collapsed ancestors and scrolls the match into view.
Click any scalar to edit in place with type auto-detection. Double-click to rename keys. Add or delete nodes via context menu. Unlimited undo/redo with ⌘Z.
⌘[ / ⌘] step back and forward through every node visited. ⌘D bookmarks any node — bookmarks survive close/reopen and are listed by full path string in the toolbar menu.
Files are memory-mapped via mmap. Only nodes you expand are fully parsed — a 500K-node file typically requires fewer than 500 value decodes. Top-level nodes appear instantly.
Export any document as JSON, YAML, or CSV in one click from the toolbar. Format auto-detected from file content, not just the extension.
⇧⌘P opens a VS Code-style fuzzy launcher over every menu and toolbar action, recent documents, bookmarks, and view-mode toggles. Drive the whole app from the keyboard.
String values are auto-detected as base64, Unix timestamps, ISO 8601 datetimes, UUIDs, or #RRGGBB colours — an info chip pops a decoded breakdown.
When JSON parsing fails, a banner offers one-shot fixes for trailing commas, single-quoted strings, unquoted keys, and JS-style line comments — open even slightly-broken payloads.
Browse through different formats and features to see how MachStruct handles your files.
Tree view of a weather API response
Format is sniffed from the first 512 bytes of content — not just the file extension.
Two-phase simdjson SIMD parser. Structural index built in one pass; values decoded on demand. Handles files with 700K+ nodes.
libxml2 SAX parser. Namespace badges and attribute display in the tree. Full round-trip save.
Yams/libyaml AST walk. Anchor, scalar-style, and tag badges displayed inline in the tree.
Auto-delimiter detection (, ; \t |), auto-header detection, RFC 4180 quoting. Per-column stats: count, unique, type, min/max.
First-class macOS integration throughout — not just a wrapper around a web view.
Press Space in Finder to preview JSON, XML, YAML, and CSV files without opening MachStruct.
All keys and string values are full-text indexed so mdfind and Spotlight can search inside your documents.
"Format with MachStruct" and "Minify with MachStruct" appear in the Services menu when text is selected in any app.
Sparkle 2 handles background update checks on launch. Always on the latest version with zero friction.
The welcome window detects structured data on the clipboard and offers a one-click Open banner — paste JSON directly without touching the file system.
Hardened Runtime, notarized, and stapled. Runs safely within macOS security boundaries — no entitlement overreach.
Measured on Apple M4 Mac mini, release build.
| File | Size | Nodes | First nodes visible | Full index |
|---|---|---|---|---|
| API response | 10 MB | ~250 K | < 100 ms | ~230 ms |
| Database export | 100 MB | ~1.5 M | < 500 ms | < 1.5 s |
| Wide config | 10 MB | ~350 K | < 100 ms | ~280 ms |
| Deeply nested (400+ levels) | — | ~400 | < 20 ms | < 20 ms |
Free and open source. Drop a JSON, XML, YAML, or CSV file and it opens before you can blink.
macOS 14 Sonoma or later · Apple Silicon & Intel · Universal binary