A tiny menu-bar JSON toolkit for macOS & Windows.
Press ⌘⇧J from any app — format, minify, traverse, unwrap, and AI-fix JSON without leaving your keyboard.
Website · 中文站 · Download · Contracts
Jsonita lives in your menu bar and appears the instant you press the global shortcut. Paste JSON, get a formatted result in under 300 ms, switch transforms with one keystroke, and dismiss it just as fast. Everything stays on your machine — the only time anything is sent anywhere is when you explicitly ask AI to repair a broken document.
Local by default · window shows in P95 < 500 ms · steady memory < 80 MB · install < 15 MB.
| Feature | What it does |
|---|---|
| Format | Indent 2 / 4 / tab, sort keys, trailing newline — all configurable |
| Minify | Collapse to a single line |
| Tree view | Expand / collapse nodes with type-colored values; read-only |
| JSON ⇄ String | Escape to a string or parse a string back; round-trips through multiple nesting layers |
| Nested unwrap | Unwrap multiply-stringified payloads (e.g. Go/proto double-wrap) in one shot, with a hard timeout so it can never hang |
| AI Auto-Fix | Paste almost-JSON → the AI Fix tab appears → review a diff → Accept. OpenAI-compatible and Anthropic providers, using your own API key |
| History | Local SQLite, automatic dedupe, star to keep, opens with ⌘Y |
| Custom shortcut | Rebind the global hotkey with conflict detection |
| Smart width | The window widens for long lines and collapses for short ones |
| i18n | English and 简体中文, switchable in Settings |
- History, settings, window state, and your API key are stored locally — nothing syncs anywhere.
- Your API key is kept in the app data directory with restricted file permissions (no system Keychain).
- Logs never record JSON content, API keys, or AI prompts and responses.
- AI Fix only fires when you click it, and sends only the document you're looking at — nothing until you press Accept.
Grab the latest build from GitHub Releases:
- macOS — download the
.dmg, open it, and drag Jsonita.app into/Applications. Launch once, then press ⌘⇧J anywhere. - Windows — download the
.exeand run it (per-user install, no admin needed), then press Ctrl⇧J.
v1 is a small beta. macOS builds are unsigned and Windows builds are unsigned — this is noted in each release. Signed macOS builds and a Homebrew cask land in v1.1.
Requires Rust ≥ 1.77, Node ≥ 20, pnpm ≥ 9 (plus Xcode Command Line Tools on macOS).
git clone https://github.com/jinhuang712/jsonita.git
cd jsonita
pnpm install
pnpm tauri dev # dev mode (first build takes a few minutes)Release builds:
pnpm release:macos:dmg # macOS .dmg → release-artifacts/macos-dmg/
pnpm release:macos:app # macOS .app → release-artifacts/macos-app/
pnpm release:windows:exe # Windows NSIS .exe (run on Windows + MSVC)
pnpm release:all # everything buildable on the current platform- Launch the app. There's no Dock icon — a single-color mark appears in the menu bar.
- Press ⌘⇧J from any app; the window appears centered without stealing focus.
- Paste JSON → the formatted result shows within ~300 ms, with
● validin the status bar. - Switch tabs: Format · Minify · Tree · To String.
- Paste invalid JSON → the AI Fix tab appears → click it → review the diff → Accept.
- ⌘K clear · ⌘\ single ⇄ split pane · ⌘↵ apply · Esc close.
- Open Settings (⚙) to change language, theme, the shortcut, and your AI key.
Hiding the window keeps your workspace in memory; quitting ends the process and later restoration uses only saved data. If the global shortcut fails to register, you can still open Jsonita from the menu bar.
- macOS 11 Big Sur or later (arm64 / x86_64)
- Windows 10 or later (x86_64; unsigned NSIS installer, beta)
macOS is the primary v1 target; Windows ships as a secondary unsigned beta. Homebrew, an auto-updater, an npm wrapper, and Windows code signing are deferred to v1.1+.
| Path | Contents |
|---|---|
CLAUDE.md / AGENTS.md |
Product contracts, behavior invariants, and release boundaries (kept byte-identical) |
WORKFLOW.md |
How docs and implementation stay in sync |
design/ |
Screen hierarchy, visible states, and a low-fidelity flow prototype |
docs/ |
GitHub Pages site source and Superpowers design/plan records |
Change history and open work live in the git commit history — there is no separate changelog or backlog file.
# macOS
rm -rf /Applications/Jsonita.app
rm -rf ~/Library/Application\ Support/Jsonita # history, settings, window state, API key
rm -rf ~/Library/Logs/Jsonita # logsMIT © 2026 Jin Huang