A JSON formatter for Mac that leaves your key order alone
Most online formatters silently reorder your keys and re-encode your strings. On a config file or an API response you are about to diff, that is not a formatting change — it is a content change.
What usually goes wrong
- Key order is sorted alphabetically, so the result no longer diffs cleanly against the original.
- Unicode is re-escaped, turning readable text into \u sequences, or the reverse.
- Large numbers lose precision after a round trip through a JavaScript parser.
- Trailing commas and comments produce a generic "invalid JSON" with no line number.
Formatting choices that are actually choices
Indentation is a project decision, not a universal one. Bellows offers two spaces, four spaces or tabs, and sorting keys is an option you turn on rather than something done to you.
Minifying is the same operation in reverse: strip every byte that is not needed, for when you have to fit a payload into a query parameter or an environment variable.
Validation that points at the problem
An error that says only "invalid JSON" makes you find the fault yourself. A useful validator names the position, and the common causes are a short list: a trailing comma before a closing brace, a single quote where JSON requires a double, an unescaped newline inside a string, or a stray BOM at the start of a file that came from Windows.
Why do it locally
JSON is where the sensitive things live. An API response holds customer records; a config file holds hostnames and sometimes credentials; a webhook body holds whatever the sending system thought was fine to send. Formatting is a trivial operation to perform on your own machine, and there is no reason for any of that to leave it.
How to check the claim rather than trust it
Bellows is signed without a network entitlement. That is not a policy someone wrote down — it is a permission the binary does not have, and macOS enforces it whether the app wants to connect or not. You can read the entitlements it was signed with:
codesign -d --entitlements - /Applications/Bellows.appNeither com.apple.security.network.client nor com.apple.security.network.server appears in the output. Without them the sandbox refuses to open a socket.
JSON Formatter is one of 41 tools in Bellows
A native Mac app that ships with no network entitlement, so macOS blocks it from connecting at all. One-time purchase, every future update included.
What Bellows is →Questions
Does formatting JSON change its meaning?
Whitespace does not, but sorting keys can. JSON objects are formally unordered, yet plenty of real systems and every text diff treat order as significant. A formatter that sorts by default will make a file look changed when it is not.
How do I minify JSON on a Mac?
Bellows has a minify option that removes all insignificant whitespace. macOS also ships Python, so python3 -m json.tool --compact works in a pinch.
Why does my JSON fail to validate when it looks correct?
The usual causes are a trailing comma, single quotes instead of double, an unescaped control character inside a string, or a byte order mark at the start of the file. The last one is invisible in most editors.