{"id":51008408,"url":"https://github.com/voidd0/jsonyo","last_synced_at":"2026-06-20T23:31:03.325Z","repository":{"id":353200383,"uuid":"1218297096","full_name":"voidd0/jsonyo","owner":"voidd0","description":"format, query, and validate JSON. simpler than jq, smaller than yq.","archived":false,"fork":false,"pushed_at":"2026-04-29T06:14:35.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-15T20:46:17.676Z","etag":null,"topics":["cli","devtools","javascript","jmespath","jq-alternative","json","json-formatter","json-validator","nodejs"],"latest_commit_sha":null,"homepage":"https://tools.voiddo.com/jsonyo/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voidd0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-22T18:24:47.000Z","updated_at":"2026-04-29T06:14:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/voidd0/jsonyo","commit_stats":null,"previous_names":["voidd0/jsonyo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/voidd0/jsonyo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidd0%2Fjsonyo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidd0%2Fjsonyo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidd0%2Fjsonyo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidd0%2Fjsonyo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voidd0","download_url":"https://codeload.github.com/voidd0/jsonyo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidd0%2Fjsonyo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34589204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","devtools","javascript","jmespath","jq-alternative","json","json-formatter","json-validator","nodejs"],"created_at":"2026-06-20T23:31:01.074Z","updated_at":"2026-06-20T23:31:03.318Z","avatar_url":"https://github.com/voidd0.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jsonyo\n\n\u003e **JSON swiss army knife. Eighteen commands. Zero limits. Free forever.**\n\u003e A gift to the terminal from [**vøiddo**](https://voiddo.com).\n\n[![npm](https://img.shields.io/npm/v/@v0idd0/jsonyo?color=%2322c55e\u0026label=%40v0idd0%2Fjsonyo)](https://www.npmjs.com/package/@v0idd0/jsonyo)\n[![downloads](https://img.shields.io/npm/dm/@v0idd0/jsonyo?color=%2322c55e)](https://www.npmjs.com/package/@v0idd0/jsonyo)\n[![license](https://img.shields.io/npm/l/@v0idd0/jsonyo?color=%2322c55e)](./LICENSE)\n[![node](https://img.shields.io/node/v/@v0idd0/jsonyo?color=%2322c55e)](./package.json)\n\n**[Homepage](https://tools.voiddo.com/jsonyo/?ref=jsonyo-readme)** · **[GitHub](https://github.com/voidd0/jsonyo)** · **[npm](https://www.npmjs.com/package/@v0idd0/jsonyo)** · **[All tools](https://tools.voiddo.com/?ref=jsonyo-catalog-readme)** · **[Contact](mailto:support@voiddo.com)**\n\n---\n\n## Why jsonyo\n\nEvery other JSON CLI gives you three commands and paywalls the rest. `jq` is powerful but hostile. Online editors leak your data. Online formatters die on anything over a megabyte.\n\n**jsonyo is one binary, eighteen commands, and no artificial limits.** No file-size caps. No daily quota. No PRO tier. No sign-up. No telemetry. No \"upgrade to unlock\" nag screens. You install it, you use it, it works.\n\nIt exists because we got tired of paying `$9.99/mo` to format JSON that already lived on our own laptop.\n\n## Install\n\n```bash\n# npm\nnpm install -g @v0idd0/jsonyo\n\n# or pnpm / yarn / bun\npnpm add -g @v0idd0/jsonyo\nyarn global add @v0idd0/jsonyo\nbun add -g @v0idd0/jsonyo\n\n# one-shot via npx (no install)\nnpx @v0idd0/jsonyo format data.json\n```\n\nRequires Node.js **≥ 14**.\n\n## The Commands\n\n| Command | What it does |\n|---|---|\n| `validate` · `v` | Check if JSON is valid (optionally against a JSON Schema) |\n| `format` · `f` | Pretty-print with custom indent, tabs, sorted keys, fixed key order, trailing commas |\n| `minify` · `m` | Compress to a single line |\n| `query` · `q` | Extract values by JSONPath (filters, recursion, wildcards) |\n| `keys` · `k` | List every key at any depth |\n| `type` · `t` | Show inferred type and structural summary |\n| `diff` · `d` | Compare two files — text diff or RFC 6902 patch |\n| `stats` · `s` | Cardinality + shape statistics |\n| `merge` | Merge unlimited files (last-wins, deep, or custom conflict strategy) |\n| `flatten` | Flatten nested JSON with a custom separator |\n| `unflatten` | Reverse it — rebuild nesting from dotted keys |\n| `sort` | Sort keys or arrays by one or many fields |\n| `filter` | Filter array elements with expressive predicates |\n| `convert` | JSON ↔ YAML, TOML, CSV, XML — both directions |\n| `schema` | Generate a JSON Schema from data, or validate against one |\n| `generate` | Generate **TypeScript**, **Go**, **Python**, or **Rust** types from a sample |\n| `batch` | Process **thousands of files** at once with glob patterns |\n| `watch` | Watch files and auto-process on change |\n\n## Usage\n\n```bash\n# validate\njsonyo validate data.json\ncat data.json | jsonyo v\n\n# format (4 spaces, keys sorted)\njsonyo format data.json -i 4 --sort-keys\n\n# minify + save\njsonyo minify huge.json -o huge.min.json\n\n# JSONPath query\njsonyo query users.json -p \"$.users[?(@.age \u003e 18)].email\"\n\n# diff as patch\njsonyo diff old.json new.json --format patch\n\n# merge — unlimited files, deep strategy\njsonyo merge a.json b.json c.json d.json --strategy deep -o combined.json\n\n# flatten with custom separator\njsonyo flatten nested.json --separator /\n\n# sort by multiple keys\njsonyo sort data.json --by \"country,name\"\n\n# filter with a predicate\njsonyo filter users.json --where \"age \u003e 18 \u0026\u0026 active\"\n\n# convert to YAML / TOML / CSV / XML\njsonyo convert data.json --to yaml\njsonyo convert data.json --to csv -o data.csv\n\n# generate TypeScript types\njsonyo generate types response.json -o types.ts\n\n# batch — glob across thousands of files\njsonyo batch format \"./data/**/*.json\" --sort-keys\n\n# watch — auto-validate on save\njsonyo watch validate \"./src/**/*.json\"\n```\n\n## Pipe-friendly\n\nEvery command reads from stdin when no file is given, so jsonyo plays well with the rest of your toolbox.\n\n```bash\ncurl -s https://api.example.com/data | jsonyo format -i 2\nkubectl get pods -o json | jsonyo query -p \"$.items[*].metadata.name\"\naws ec2 describe-instances | jsonyo filter --where \"State.Name == 'running'\"\n```\n\n## Big files, big pipelines\n\n- **No 10 MB cap** — if your laptop can hold it, jsonyo can chew it.\n- **No op-per-day limit** — loop it, cron it, bake it into CI.\n- **No network calls** — jsonyo is a local CLI. Your JSON never leaves your machine.\n\n## Why free forever\n\nWe are [**vøiddo**](https://voiddo.com) — a studio building small, sharp tools and a few serious products ([scrb](https://scrb.voiddo.com), [rankd](https://rankd.voiddo.com), [gridlock](https://gl.voiddo.com), and more). The serious products pay for themselves. The tools are gifts.\n\nWe write them because _we_ need them, and leaving them free means we don't have to build a billing flow for a terminal utility.\n\n## From the same studio\n\n- **[@v0idd0/tokcount](https://www.npmjs.com/package/@v0idd0/tokcount)** — count LLM tokens before you pay for them\n- **[@v0idd0/envguard](https://www.npmjs.com/package/@v0idd0/envguard)** — stop shipping `.env` drift to staging\n- **[@v0idd0/depcheck](https://www.npmjs.com/package/@v0idd0/depcheck)** — find unused dependencies\n- **[@v0idd0/gitstats](https://www.npmjs.com/package/@v0idd0/gitstats)** — git repo analytics, one command\n- **[View all tools →](https://tools.voiddo.com/?ref=jsonyo-catalog-readme)**\n\n## Contributing\n\nBugs, feature ideas, PRs welcome. Open an issue at [github.com/voidd0/jsonyo/issues](https://github.com/voidd0/jsonyo/issues) or drop a line to [support@voiddo.com](mailto:support@voiddo.com).\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n\n---\n\nBuilt by [vøiddo](https://voiddo.com/) — a small studio shipping AI-flavoured products, free dev tools, Chrome extensions and weird browser games.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidd0%2Fjsonyo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoidd0%2Fjsonyo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidd0%2Fjsonyo/lists"}