NATIVE MACOS · STRUCTURED DATA STUDIO

The Mac-native home for
your structured data.

JSON, CSV, Markdown, YAML, TOML, and XML, opened, validated, and transformed in one native app. Tree-sitter parsing, on-device AI, and the macOS document model done right. Everything stays on your Mac.

schema.json
schema.json
cargo.toml
pom.xml
users.csv
deployment.yaml
README.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Atlas user record",
  "type": "object",
  "required": ["id", "email"],
  "properties": {
    "id": { "type": "string", "format": "uuid" },
    "email": { "type": "string", "format": "email" },
    "plan": { "enum": ["free", "pro", "team"] },
    "createdAt": { "type": "string", "format": "date-time" },
    "trialDays": { "type": "integer", "minimum": 0, "maximum": 90 },
    "verified": { "type": "boolean", "default": false }
  }
}
Built for macOS 15+ Universal binary Notarized Sandboxed
JSON· CSV· Markdown· YAML· TOML· XML· JSON· CSV· Markdown· YAML· TOML· XML·

Stays on your Mac. No accounts. No telemetry. No cloud round-trips. The data you open never leaves the device.

INCREMENTAL PARSING

Incremental parsing, not full rebuilds.

Parselet uses tree-sitter for syntax highlighting and structural parsing, integrated with Neon for incremental updates. Type a character, and only the affected nodes re-parse. The rest of the tree stays where it is. The editor is built on AppKit and TextKit 1, the same text engine Apple uses for documents that need to scale. Open large config files, generated API responses, and exported data dumps without watching a spinner.

Six tree-sitter grammars, one Neon coordinator, zero web-view detours.

atlas-users-2025-11.json
{ "id": "u_8af2c1", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T09:23:11Z", "trialDays": 0, "verified": true, "events": 1842 },
{ "id": "u_8af2c2", "email": "[email protected]", "plan": "free", "createdAt": "2025-11-04T09:24:55Z", "trialDays": 14, "verified": false, "events": 7 },
{ "id": "u_8af2c3", "email": "[email protected]", "plan": "team", "createdAt": "2025-11-04T09:31:02Z", "trialDays": 0, "verified": true, "events": 2210 },
{ "id": "u_8af2c4", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T09:42:18Z", "trialDays": 0, "verified": true, "events": 488 },
{ "id": "u_8af2c5", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T09:51:39Z", "trialDays": 0, "verified": true, "events": 93 },
{ "id": "u_8af2c6", "email": "[email protected]", "plan": "free", "createdAt": "2025-11-04T10:02:44Z", "trialDays": 7, "verified": false, "events": 0 },
{ "id": "u_8af2c7", "email": "[email protected]", "plan": "team", "createdAt": "2025-11-04T10:14:09Z", "trialDays": 0, "verified": true, "events": 3104 },
{ "id": "u_8af2c8", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T10:21:55Z", "trialDays": 0, "verified": true, "events": 672 },
{ "id": "u_8af2c9", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T10:33:27Z", "trialDays": 0, "verified": true, "events": 1156 },
{ "id": "u_8af2ca", "email": "[email protected]", "plan": "team", "createdAt": "2025-11-04T10:45:13Z", "trialDays": 0, "verified": true, "events": 4982 },
{ "id": "u_8af2cb", "email": "[email protected]", "plan": "free", "createdAt": "2025-11-04T10:58:01Z", "trialDays": 21, "verified": false, "events": 3 },
{ "id": "u_8af2cc", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T11:09:44Z", "trialDays": 0, "verified": true, "events": 287 },
{ "id": "u_8af2cd", "email": "[email protected]", "plan": "team", "createdAt": "2025-11-04T11:22:18Z", "trialDays": 0, "verified": true, "events": 5503 },
{ "id": "u_8af2ce", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T11:34:52Z", "trialDays": 0, "verified": true, "events": 921 },
{ "id": "u_8af2cf", "email": "[email protected]", "plan": "free", "createdAt": "2025-11-04T11:47:33Z", "trialDays": 14, "verified": true, "events": 18 },
{ "id": "u_8af2d0", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T11:58:09Z", "trialDays": 0, "verified": true, "events": 1467 },
{ "id": "u_8af2d1", "email": "[email protected]", "plan": "team", "createdAt": "2025-11-04T12:09:55Z", "trialDays": 0, "verified": true, "events": 2738 },
{ "id": "u_8af2d2", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T12:21:41Z", "trialDays": 0, "verified": true, "events": 644 },
{ "id": "u_8af2d3", "email": "[email protected]", "plan": "free", "createdAt": "2025-11-04T12:33:27Z", "trialDays": 30, "verified": false, "events": 1 },
{ "id": "u_8af2d4", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T12:45:13Z", "trialDays": 0, "verified": true, "events": 1893 },
{ "id": "u_8af2d5", "email": "[email protected]", "plan": "team", "createdAt": "2025-11-04T12:56:59Z", "trialDays": 0, "verified": true, "events": 6217 },
{ "id": "u_8af2d6", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T13:08:45Z", "trialDays": 0, "verified": true, "events": 384 },
{ "id": "u_8af2d7", "email": "[email protected]", "plan": "free", "createdAt": "2025-11-04T13:20:31Z", "trialDays": 7, "verified": true, "events": 42 },
{ "id": "u_8af2d8", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T13:32:17Z", "trialDays": 0, "verified": true, "events": 1209 },
{ "id": "u_8af2d9", "email": "[email protected]", "plan": "team", "createdAt": "2025-11-04T13:44:03Z", "trialDays": 0, "verified": true, "events": 4156 },
{ "id": "u_8af2da", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T13:55:49Z", "trialDays": 0, "verified": true, "events": 758 },
{ "id": "u_8af2db", "email": "[email protected]", "plan": "free", "createdAt": "2025-11-04T14:07:35Z", "trialDays": 14, "verified": false, "events": 12 },
{ "id": "u_8af2dc", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T14:19:21Z", "trialDays": 0, "verified": true, "events": 2034 },
{ "id": "u_8af2dd", "email": "[email protected]", "plan": "team", "createdAt": "2025-11-04T14:31:07Z", "trialDays": 0, "verified": true, "events": 3892 },
{ "id": "u_8af2de", "email": "[email protected]", "plan": "pro", "createdAt": "2025-11-04T14:42:53Z", "trialDays": 0, "verified": true, "events": 511 }
.
Tier 1 · Apple Foundation Models

Instant. No download.

Built into macOS 26 and later. Used for parse-error explanations on small contexts. Runs in the OS-managed model process. Apple's compute, your hardware, no cloud.

macOS 26+ · ~3K tokens per request · Greedy decoding

Tier 2 · MLX Swift

Deeper reasoning for larger contexts.

A 4-bit quantized Qwen 3.5 4B model, downloaded on first use (~3.2 GB). Runs locally on your Mac via Apple's MLX framework. Used for summarizing files larger than Tier 1's context window. Loaded on demand, released when idle.

Apple Silicon · ≥16 GB unified memory · Up to 32K context with sufficient unified memory

ON-DEVICE AI

Two AI tiers. Both run on your Mac.

Parselet's AI features are designed around a precise privacy boundary: inference stays on your Mac. There is no API key to enter, no account to create, and no cloud inference request. The only thing that travels over the network is the one-time download of the Tier 2 model, and only if you ask for it.

The flow shows up like this in the editor. Click the red marker in the gutter to surface the AI's explanation.

atlas-api.config.json Edited
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  "service": "atlas-api",
  "version": "0.4.2",
  "runtime": {
    "edition": "2026",
    "cpus": 4,
    "memory_mb": 2048,
    "telemetry": "enabled"
  },
  "logging": {
    "level": "warning",
    "format": "json",
    "destinations": ["stdout", "file"],
    "file_path": "/var/log/atlas/api.log",
    "rotation_mb": 100
  },
  "rate_limits": {
    "anonymous": 100,
    "authenticated": 5000,
    "window_seconds": 60.
  },
  "feature_flags": {
    "new_dashboard": true,
    "experimental_search": false
  }
}
Line 20 Number with decimal point but no additional digits around line 20, column 25.
A REAL MAC DOCUMENT

Plays by macOS document rules.

Parselet is built on NSDocument, the same document model that ships with TextEdit, Pages, and every other native macOS document app. That means autosave works, Revert to Saved works, file associations work, multi-window and multi-tab work, and QuickLook previews show your files with proper syntax highlighting before you even open them. None of this is custom UI. It's macOS doing its job because Parselet wired up the document model the way Apple intended.

  • ·Autosave on by default
  • ·File · Revert to Saved
  • ·File associations for .json, .csv, .md, .yml/.yaml, .toml, and .xml
  • ·QuickLook previews with syntax highlighting
  • ·Multi-window and multi-tab via standard ⌘N and ⌘T
atlas
Name
atlas-api.config.json
atlas-deploy.yaml
cargo.toml
pom.xml
README.md
users.csv
atlas-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: atlas-api
  namespace: atlas-prod
  labels:
    app: atlas-api
    tier: backend
    managed-by: atlas-deploy
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  selector:
    matchLabels:
      app: atlas-api
  template:
    metadata:
      labels:
        app: atlas-api
        tier: backend
    spec:
      containers:
        - name: atlas-api
          image: ghcr.io/atlas/atlas-api:0.4.2
          ports:
            - containerPort: 8080
              name: http
          env:
            - name: ATLAS_ENV
              value: production
            - name: LOG_LEVEL
              value: warning
MENU BAR INTEGRATION

Real menus. Real shortcuts.

Parselet ships with a full native menu bar, not a stripped-down pseudo-menu. Standard macOS conventions you already know are wired correctly: cut, copy, paste, find, undo, redo, hide, show all. On top of that, Parselet adds a small set of operations that earn their menu-bar slots:

Differentiators
  • File · New from Format

    Six explicit starting points (json, csv, md, yaml, toml, xml). Cmd-N defaults to your last choice.

  • File · Convert To

    Deterministic cross-format conversion via real parsers, never AI. JSON ↔ YAML, JSON ↔ TOML, YAML ↔ TOML, CSV → JSON.

  • Format · Prettify (⇧⌘F) and Minify

    Per-format capability. The menu shows what's supported for the current document.

  • Format Switcher toolbar dropdown

    Reinterpret the current document as a different format without modifying the file. View a .json as YAML; switch back; the file is untouched.

Standard cluster
  • Standard Edit menu (cut, copy, paste, find, undo, redo)
  • Standard File menu (new, open, save, save as)
  • Standard Window menu (next tab, previous tab, merge all windows)
  • Standard App menu (settings, hide, hide others, show all)
PRICING

One price. No subscription. Yours forever.

No subscription. Buy it once. All future updates included.

Lifetime

One-time purchase for your device

$29.99

Buy it once through the Mac App Store. The app keeps working, and future updates are included for life. There is no subscription, trial, upgrade SKU, or version paywall.

Available on the Mac App Store.

QUESTIONS

Things people ask before they buy.

Because the app you bought should keep working. Subscriptions make sense when you're paying for a service that runs on someone else's hardware. Parselet runs on yours, and future updates are included.
Yes. Tier 1 uses Apple's Foundation Models, which ship with macOS 26 and run entirely on-device. Tier 2 downloads a 4-bit quantized model on first use (about 3.2 GB) and runs locally on your Apple Silicon Mac. After the one-time Tier 2 download, no network is involved. Nothing about your data is ever uploaded.
The editor runs on macOS 15 (Sequoia) and later. AI features require Apple Silicon (M1 or newer) with at least 16 GB of unified memory. On Intel Macs and 8 GB Apple Silicon Macs, the editor works fully. Only the AI features are unavailable.
It doesn't replace your code editor. It replaces the ad-hoc tools you reach for outside it: web-based JSON formatters, Numbers for opening CSVs, online YAML linters, format converters, parser-error explainers. If you write code in VS Code or Xcode, keep doing that. Open the data files those apps consume in Parselet.
Parselet is designed around incremental parsing rather than full-tree rebuilds: tree-sitter handles syntax structure, Neon applies incremental updates, and AppKit/TextKit 1 provides the native editor base. Actual limits depend on disk I/O, RAM, and document shape.