---
title: "Prettify Changelog: What Changed in Every Release"
description: "Release notes for every version of Prettify: new formats, editor
  and query features, bug fixes, and native desktop app updates."
url: https://prettify.tools/changelog
---

# Changelog

Every released version of Prettify and what changed in it.

## 0.17.0

October 30, 2026Latest

### Added

- Nested objects show as their own columns, such as `address.city`, in the Table view and in CSV and Excel exports. You can sort, filter, search, and edit those columns, and a list stays in one cell as JSON text. Before, converting to CSV turned a nested object into the text `[object Object]`.
- Pro: SQL can do math with `+`, `-`, `*`, `/`, and `%`, also inside totals such as `SUM(price * qty)`. Conditions can use parentheses, `<>`, `NOT LIKE`, `NOT IN`, and `IN (SELECT ...)`, and `ORDER BY` can sort by a column you did not select or by its position.
- When a paste fails in the current format but is valid JSON or XML, the paste dialog offers to open it as JSON or XML.
- Each docs page on the website links to the tool pages for its topic.

### Fixed

- Saving, downloading, or copying an XML document keeps its comments, the order of its elements, text mixed with tags, and its XML declaration. Before, these were lost or changed, and the XML tool pages on the website showed the same changes. A diff of two XML documents also shows a change in a comment or in element order.
- Pro: a SQL query the engine cannot run, such as one with `JOIN` or a misspelled column, shows an error. Before, it showed a result that looked right but was wrong. In a condition, `AND` now comes before `OR`, as in standard SQL.
- Converting to CSV puts a `'` before text that starts with `=`, `+`, `-`, or `@`, so a spreadsheet shows it as text and does not run it as a formula. Plain numbers such as `-5` do not change.
- After a conversion, the warning shows in the "Convert loaded" message and names every change. Before, the next message hid it.
- The YAML check warns about unquoted `yes`, `no`, `on`, and `off` because YAML 1.1 tools such as PyYAML read them as true or false, while Prettify keeps them as text. It no longer warns about `true`, `false`, or `null`.
- The website docs for diff, JSON Schema validation, and conversion describe what the app does.

## 0.16.0

October 23, 2026

### Added

- SVG is a format of its own. Open, drop, or paste an SVG to see it drawn, with zoom, pan, a checkerboard, white, or dark background, and a strip that shows it at 16, 24, and 32 px on light and dark. Scripts in an SVG never run, and it loads nothing from outside.
- Pro: SVG Tools prepares an SVG for your code. Optimize makes it smaller, Unique IDs adds a prefix to every id so two icons on one page do not clash, and Copy React gives a React component. Original / Result shows whether the drawing changed, and Apply writes the result back with Undo. Edit an SVG side by side with its image (SVG Side by Side).
- HTML is a format of its own. A page draws in a safe preview where scripts never run and nothing loads from outside unless you choose Load remote images. Long embedded images show as short chips in Raw, and Format tidies the page. Pro: edit HTML side by side with its preview (HTML Side by Side).
- Excel files (.xlsx) open with one tab for each sheet, and a table can export to Excel.
- Choose the JSON indent (2 spaces, 4 spaces, or a tab), and copy or download JSON minified. Turn on word wrap in the Raw view.
- JSON that is escaped inside a string or a log line opens as the JSON it holds, and Copy as JSON String turns JSON back into a string.
- JWTs in the tree show their header, payload, and expiry, and a string that holds JSON can open as that JSON.
- On the desktop app, a tab opened from a file reloads when the file changes on disk. A tab with edits asks before it reloads.
- `prettify --follow` keeps a tab updated from piped input, such as `tail -f app.log | prettify --follow`.
- 25 new tool pages on the website, and longer guides on every tool page.

### Changed

- Mermaid diagrams draw with a cleaner style by default. Settings and the command palette switch back to the GitHub style. The template gallery has 16 templates and opens in a large preview.
- Copy reads "Copy" for Markdown, HTML, SVG, and Mermaid documents.

### Fixed

- A downloaded file named after its source keeps one extension, such as logo.svg, not logo\_svg.svg.
- Switch to a format and New Editor in the command palette open a new tab instead of clearing the document you have open.
- JSON Schema validation accepts draft 2019-09 and 2020-12 schemas.
- The Raw editor keeps its line numbers in line on long lines when word wrap is off.

## 0.15.0

October 17, 2026

### Added

- Pro: jq can change values in place with `=`, `|=`, `+=`, `-=`, `*=`, `/=`, `%=`, and `//=`. For example, `.items[].price *= 1.1` raises every price, and `.meta.updated = true` adds a field that is missing.
- Pro: define your own jq functions with `def`, and take values apart with patterns such as `. as {name: $n, tags: [$first]}`, also in `reduce` and `foreach`.
- Pro: jq supports regex flags such as `g` and `i`, the `@sh`, `@text`, and `@base32` formats, format strings such as `@base64 "id: \(.id)"`, and about 50 more functions, including the math functions.
- Choose the interface font and size, and the code font and size, in Settings, under Appearance, or from the command palette. Sizes go from XS to XL, and the fonts ship with the app, so they work offline.
- The website has documentation for every format, view, and tool, at prettify.tools/docs, and new About and Contact pages.

### Changed

- Pro: the jq panel shows results the way the `jq` command prints them, one value after another, with a count. A query that returns nothing says "No results", Copy gives the same text as `jq`, and Apply writes several results as one JSON array.
- jq follows jq 1.7.1 more closely. Sorting, `unique`, `round`, `%`, and the error messages match jq. `not` works only as a function, as in jq (`. | not`), and `recurse_down`, which jq does not have, is gone.
- The privacy statement says plainly that the website sends usage events from the first page load without asking, and lists where IP addresses are kept.
- Pages on the website that do not exist show "Page not found", and AI assistants can read each page as plain text.

### Removed

- The Group By control in the Chart view. It did not change the chart.

### Fixed

- Pro users no longer lose Pro when one license check fails. The key is kept, and Settings offers Reactivate. On the desktop app, a copy of the license comes back when the app's storage is cleared.
- In split view, Cmd+T opens the new tab in the pane you are working in, and Cmd+Shift+\[ and Cmd+Shift+] switch tabs in that pane. Before, the tab-switch keys did nothing.
- Without Pro, "Try it free today" in split view opens a real second pane, and a split view that you can no longer use closes to one pane and keeps your tabs.
- The Dashboard's Rename lets you type a new name, and a rename or delete that fails says so instead of showing success.
- A document restored after a restart no longer takes the name of another document in History.
- A link that names a format, such as one to the YAML editor, opens the paste dialog in that format when a saved document reopens.
- In a YAML file with several documents, each document keeps its expanded tree when you switch between them.
- On the History page, each version's Open button opens that version.
- On the Mac desktop app, Cmd+H hides the app, as on any Mac app. Replace is Cmd+Option+F, and it is in the Edit menu.
- The Diagram and Feed view tabs show a Pro badge before you open them.
- Very large numbers show correctly in jq suggestions, the diagram, and table sorting and filters.
- Batch skips a file it cannot read and lists it as skipped, instead of loading nothing.
- When the desktop app cannot open the checkout page, it offers to copy the link.
- When too many tabs are open to save, the tab list still saves and you see a warning.
- On Linux, when the app's local storage is damaged, the app offers to reset it. The old files go to a backup folder, and your license stays.
- Editor search text no longer reaches usage analytics.
- Website pages in dark mode no longer flash the light theme while they load.

## 0.14.0

October 15, 2026

### Added

- Load an RSS or Atom feed from its URL. The empty XML view has Paste RSS URL and Try RSS Example, the tab takes the feed's title, and pasting a URL into the editor offers to load it. A file that holds only a URL offers the same.
- Pro: the Feed view shows each item in an RSS, Atom, or RSS 1.0 feed as an article, with its title, date, author, and links. Images stay off until you choose Load images, so image hosts cannot see that you opened the feed, and podcast artwork shows when images are on. Without Pro, you can try it free once a day.
- Pro: Refresh fetches the latest version of a feed or file from the URL it came from. Unchanged content says so, and new content becomes a new version. It also has one free try per day.
- The RSS Feed Viewer page on the website: paste a feed to read its first items as text, or paste its address to open it in the editor.
- Two blog posts: how a 5 MB podcast feed became 182 MB, and how to read any RSS feed in your browser.

### Changed

- Large documents save without freezing the app. Saving a large file used to stop the app for seconds, and every later History change repeated the wait.
- Very large feeds open faster: the Feed view prepares only the 200 items it shows.
- On the web, a URL that returns more than 100 MB is refused, the same limit as the desktop app.

### Fixed

- Formatting XML no longer changes text that spans several lines, and no longer pushes later lines further to the right. A large feed with many multi-line descriptions grew to many times its size and crashed the tab on every reload.
- With a very large document open, a reload keeps all of your tabs. Before, the whole tab list could fail to save, and a reload showed outdated tabs.

## 0.13.0

October 14, 2026

### Added

- Open the changelog from Settings, under Release notes, or search for "changelog" or "what's new" in the command palette.

### Fixed

- The About dialog has a close button.
- In Report Bug, the fields have more space between them, and the Severity dropdown matches the other fields on Linux.
- The "Shortcut unavailable" warning in Settings is readable in light themes.

## 0.12.1

October 14, 2026

### Changed

- Ctrl+W (Cmd+W on macOS) in the desktop app closes the current tab, and closes the window when no document is left. On Dashboard, History, and Settings, it closes the window.
- A file opened from the file manager, dropped on the window, or sent from the command line opens in its own tab, named after the file. An empty tab is reused. Before, the file replaced the document on screen and showed as "Untitled".

### Fixed

- On Linux, opening a file from the file manager (double-click or Open With) loads it in Prettify. When Prettify is already open, the file opens in the same window instead of a second one.
- On Linux, the About dialog has a close button.
- On Linux, the toolbar no longer leaves an empty gap at the top left, and notifications draw their full background.
- On Linux, Settings no longer shows the macOS command line tool instructions, and the global paste shortcut shows Linux key names.
- The sidebar takes the theme color in the Catppuccin Latte, Gruvbox Light, Light Owl, and Solarized Light themes.
- In dark themes, dropdown lists are dark, and on Linux the window title bar is dark too.
- Pressing Ctrl+V or Cmd+V in Report Bug no longer opens the Paste dialog, so a pasted screenshot attaches on macOS and the web.

## 0.12.0

October 8, 2026

### Added

- Markdown and MDX documents open in Prettify. Paste text or open a `.md`, `.markdown`, or `.mdx` file, and Prettier formats it. Switch between the raw text and a Preview that you edit like a document. The Preview always keeps your text exactly; when it cannot, it shows a notice and stays read-only.
- Frontmatter, such as the `name` and `description` of a Claude skill, shows as a Properties card. Edit it field by field, or switch to YAML.
- MDX components such as `<Callout>`, `<Tabs>`, and `<Card />` show in the Preview as boxes with their name, their props, and the text inside them. Prettify never changes how your MDX is written.
- Markdown files of any size open in the Preview. Files up to 200 KB are editable there, and larger files show a read-only Preview that loads as you scroll.
- Pro: put the raw text and the Preview side by side, and edit in either one. Skill Check reports problems in a `SKILL.md`, such as a missing description or a name in the wrong format. An Outline lists the headings and jumps to them, Mermaid code blocks show as diagrams, and you can export a document as HTML, or as PDF on the web.

### Changed

- Long document names show in full in the header, in the tabs, and in Recent Documents when there is room.
- The path bar, with Bookmarks and Copy path, is hidden for Markdown, MDX, and Mermaid documents, where it does not apply.

### Fixed

- CSV files that start with metadata lines, such as AWS CloudFront reports, open with the correct header and all of their columns. A new control above the table shows the metadata, and saving keeps the file's layout.
- Columns past the header width in a CSV file are kept as `Column N` instead of being lost when you edit.
- Editing a cell in a sorted or filtered CSV table changes the correct row.
- Deleting a document from the Dashboard or History closes its open tab, so the editor no longer shows the deleted document.

## 0.11.0

October 6, 2026

### Added

- The XPath panel works with XML namespaces, as in SOAP messages, Maven `pom.xml` files, RSS and Atom feeds, and SVG. The panel lists each prefix the document declares. Use `ns:` for elements in the default namespace, for example `//ns:project`.
- jq has more builtins: `walk`, `pick`, `abs`, `IN`, `INDEX`, `tostream`, `fromstream`, and date functions such as `todate`, `fromdate`, `strftime`, and `strptime`. Multiply a string by a number to repeat it, as in `"ab" * 3`.

### Changed

- The Privacy Statement, Terms of Service, and EULA name Off Leash Labs as the maker of Prettify. The new contact address is <offleashlabs@gmail.com>.

### Fixed

- Converting JSON to XML makes valid XML. Array items become repeated elements named after their key, and keys that are not valid XML names are renamed, with a warning that lists them.
- XML files with many attributes no longer take minutes to open. A 5 MB file is checked in under a second.

## 0.10.0

October 6, 2026

### Added

- Linux has a `.deb` package for Ubuntu and Debian, next to the AppImage. It installs Prettify into your app launcher and uses your system's own libraries.
- On Linux, the menu bar stays out of the way, so the window has one row of controls. Tap Alt to show or hide it. A new main menu button at the end of the toolbar holds the same commands, and the usual shortcuts work either way.
- JSON with comments, such as a `tsconfig.json`, opens in the editor. The comments are ignored for the tree and table views and stay in the raw view.

### Changed

- jq `select` now works like real jq. On an array, `select(.age > 30)` tests the whole array, not each item. To filter items, use `map(select(.age > 30))` or `.[] | select(.age > 30)`.
- Each Pro tool has its own free try every day, and a tool you unlock stays unlocked for the rest of the day. Your jq, SQL, and XPath queries are kept when you close and reopen a panel.
- Your first visit opens an example document, and returning visitors land on their Dashboard. You can drop a file on any page to open it. Split view is hidden on phones, where two panes do not fit.
- Large JSON files open about twice as fast, and JSON errors are explained in plain English with a line and column.

### Fixed

- The Linux app no longer opens a blank window on newer systems such as Ubuntu 26.04.
- On Linux, About, Minimize, Maximize, Close Window, and Quit in the menu bar work. On every platform, File > New opens a new tab instead of clearing the one you are in.
- Edits no longer disappear when you leave the editor and come back or reload. Tree view edits are saved to History, and free accounts keep their edits in the document.
- A JSON document with a repeated key opens instead of failing. The last value wins, and a warning points at the line, also when both values are the same.
- Share links made in the desktop app open in a browser.
- Load from URL in the desktop app works with more sites, including the GitHub API.
- SQL `HAVING` filters groups with `COUNT`, `SUM`, `AVG`, `MIN`, `MAX`, and column aliases. jq `sort_by`, `group_by`, `unique_by`, `min_by`, and `max_by` use every key you give them, and `del` with several paths deletes all of them.
- Esc closes the jq, SQL, XPath, schema, and upgrade panels. The theme shortcut no longer flips the theme while you type, and muted text in the default themes is dimmer than secondary text, as intended.
- Clicking a problem in the Problems panel jumps to that line, not the first error.
- Large XML files open in the background with progress and a Cancel button, also when they contain comments, CDATA, or a DOCTYPE. The paste box stays responsive with large input.
- The JSON validator points at a comment's exact position and explains that comments are not allowed in strict JSON.

## 0.9.0

September 26, 2026

### Added

- The home page and every tool page have a paste box. Paste your data to format, check, or convert it on the page, or open it in the editor.
- Try Pro tools free three times a day. jq, SQL, XPath, diff, merge, schema validation, batch, and the diagram view each offer a try, and menus mark Pro tools.
- Your open tabs come back after you close and reopen the browser.
- A `prettify` terminal command on macOS opens piped data (`curl … | prettify`) or files in the desktop app. Homebrew installs it, and Settings shows a one-line install command.
- On macOS, Control+Option+Command+V opens your clipboard in a new Prettify tab from any app. Switching to Prettify with data on your clipboard offers to open it.

### Fixed

- A free account no longer loses documents beyond its History limit. They stay stored and come back when you upgrade.
- Opening an example, a file, or a share link from outside the editor no longer saves it to History twice.
- SQL `LIKE` matches the whole value, so `A%` finds values that start with "A". Special characters in a pattern no longer break the query.
- Files opened from Finder load in their own format. A YAML, CSV, or XML file no longer opens as JSON.
- The desktop app blocks scripts that do not come from the app itself, a defense against injected code.

## 0.8.0

September 26, 2026

### Added

- New users get a first look at the editor: four examples that open real data as a tree, a table, a log file, and a Mermaid diagram. It steps aside once you load anything, or when you dismiss it.

### Changed

- The desktop app opens straight into the editor. On the web, the home page greets you on your first visit, and after you have used the editor, prettify.tools takes you straight back to it.
- The home page shows more of what Prettify does for developers: previews of the document views and local queries, and nine feature cards that open to show search and replace, JSON Schema validation, multiple file tabs, and more.

### Fixed

- Every page fits a phone screen: nothing runs off the edge or gets clipped, and toolbar controls are large enough to tap. Desktop layouts are unchanged.

## 0.7.0

August 8, 2026

### Added

- A blog, opening with three posts: how the jq engine works, the four ways `JSON.parse` quietly corrupts numbers, and a jq tutorial built from 28 worked examples.
- Three new guide pages, on editing a JSON file, on the tree viewer, and on the syntax checker.
- Full keyboard control of the tree and the table: move with the arrow keys, edit with F2, cancel with Escape, and get your place back when you leave a control.
- Long table cells open an inspector that shows the whole value, selectable, with a Copy button.
- The app now says when the connection drops and when it returns.

### Changed

- Large documents parse, search, and export away from the main thread, so the app keeps responding. The work reports progress and can be cancelled.
- The home page has a new design: a data-motif hero in place of the cursor spotlight and the scroll fade-ins, feature cells that show a tree sample and a jq result instead of describing them, a strip of measured figures, and footer tool links grouped by task.
- The home page opens the web editor as its first action, with the download next to it, and it states more plainly what Free covers and what Pro adds.
- An empty Dashboard leads with one action, trying a JSON example, and keeps the other formats as light links beside it.
- Settings are grouped into a clearer order.
- The locked Diagram view shows a still preview instead of a live canvas, so it costs nothing to draw before you upgrade.
- Creating a short link for a large document asks first, and states where the data goes, how large it is, that it becomes public, that it is kept for a year, and how to revoke it.
- Opening a document from history confirms by naming the document you opened.

### Fixed

- jq reads array and string slices, `foreach`, and `$variables` inside string interpolation. Slices also work through `path`, `getpath`, `setpath`, and `del`.
- Searching a table built from nested arrays filters, sorts, counts, and steps through results against the same rows. The count and the active result used to disagree with what you saw.
- Table columns drawn from nested data show their full path.
- Toolbar buttons have names for screen readers, a visible focus ring, and tooltips on hover and on focus.
- The link, paste and repair, and history dialogs hold focus inside themselves, hide the page behind them from screen readers, and return focus to the control that opened them.
- The navigation shared by the app pages fits a narrow window.
- A denied clipboard permission lands you on a paste surface instead of doing nothing.
- The site states the real count of jq built-in functions, 122, in place of a stale "90+".

## 0.6.0

August 6, 2026

### Added

- A changelog page listing every release. Every footer links to it, and the download page links straight to the notes for the version you are running.

### Fixed

- Table view no longer crashes on a CSV row that carries more fields than the header. Those rows render again, with their warnings intact.
- A view that hits an error now recovers when you switch document, tab, or format, instead of staying broken for the rest of the session.
- Reopening the app in a new browser session restores each document in the format it was written in, rather than treating everything as JSON.
- YAML merge keys resolve into the keys they point at, so Docker Compose, GitLab CI, and Rails configuration files read as written. Dates and `yes` / `no` still stay as text.
- jq now tells you when arithmetic on a very large number loses precision, instead of returning a rounded result with no signal.
- A new untitled tab no longer takes a number that another tab already uses.
- The active tab scrolls into view when it changes, so a narrow window no longer hides it behind the pinned controls.
- Pro access is confirmed with the licensing service once per browser session, so a license that is no longer valid is revoked instead of trusted from local storage.
- The paste dialog is announced correctly to screen readers, and the jq demo on the home page is marked as a Pro feature.

## 0.5.0

July 29, 2026

### Fixed

- Collapsing sections no longer clip their contents while animating open or closed.

## 0.4.0

July 23, 2026

### Added

- Motion throughout the app: panels, dialogs, and view switches animate in and out instead of appearing instantly.
- Animated counters, native accordions, and reversible transitions that follow your pointer back when you change direction mid-gesture.

### Fixed

- The desktop app can activate a Pro license again. Packaged builds were sending an origin the licensing service did not recognize.
- Renaming a document now updates the tab, the header, and its history entry together instead of leaving them out of sync.
- Restored the right-click menu on tabs.
- Fixed a crash in split view, several cases where errors were swallowed silently, and a handful of privacy and worker issues found during a QA pass.

## 0.3.0

July 10, 2026

### Added

- Export from every view, not just the tree. Raw text, tables, charts, and diagrams each export in the formats that suit them.
- JSONL and NDJSON files are detected and opened automatically, presented as JSON.
- Batch processing: format or convert many files in a single pass.
- Redesigned editor toolbar, with controls grouped and labeled.

### Changed

- Twelve new tool pages, per-route metadata, and prerendered HTML for a faster first paint.

### Fixed

- The service worker no longer shadows `sitemap.xml` and `robots.txt`.

## 0.2.0

July 8, 2026

First public release.

### Added

- Five formats: JSON, YAML, CSV, XML, and Mermaid, with automatic detection and conversion between them.
- A view for every shape of data: tree, syntax-highlighted raw text, sortable and editable tables, charts, and interactive node diagrams.
- Query engines built in: a custom jq engine for JSON and YAML, SQL for CSV, and XPath for XML.
- Versioned document history with search, filtering, bulk actions, storage insights, and import and export.
- Multiple tabs, a command palette (Cmd+K), regex find and replace, and bookmarks with a navigable path bar for deeply nested data.
- Semantic diff with change navigation, JSON Patch export, and three-way merge for JSON and YAML.
- Type generation from any document: TypeScript, Go, Kotlin, Rust, and JSON Schema.
- JSON Schema validation, with errors rendered directly onto diagram nodes.
- JSON repair for MongoDB types, Python and JavaScript literals, comments, and JSONP.
- Lossless number handling: long integers and high-precision decimals survive a round trip byte for byte.
- Share links, with a shortener for Pro accounts.
- A native macOS desktop app: file associations, a `prettify://` URL scheme, Services, Raycast, and Quick Look integration, signed, notarized, and self-updating.
- An MCP server and REST API for creating Prettify links and transforming data.
- Split-view side-by-side comparison for Pro accounts.
- 18 color themes.

## Structured data

```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Prettify",
  "url": "https://prettify.tools",
  "description": "Multi-format data viewer, editor, and query engine for JSON, YAML, CSV, XML, Mermaid, Markdown, MDX, HTML, and SVG",
  "applicationCategory": "DeveloperApplication",
  "operatingSystem": "Web, macOS, Windows, Linux",
  "offers": [
    {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "USD",
      "description": "Free tier with core features"
    },
    {
      "@type": "Offer",
      "price": "19.99",
      "priceCurrency": "USD",
      "description": "Pro: lifetime access to all features"
    }
  ],
  "publisher": {
    "@id": "https://prettify.tools/#organization"
  }
}
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://prettify.tools/#organization",
  "name": "Prettify",
  "legalName": "Off Leash Labs",
  "url": "https://prettify.tools/",
  "logo": {
    "@type": "ImageObject",
    "url": "https://prettify.tools/icon-512.png",
    "width": 512,
    "height": 512
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "offleashlabs@gmail.com",
    "availableLanguage": "English"
  }
}
```
