json5kit
A Roundtrip parser and CST for JSON, JSONC and JSON5.
Decision gist · record as of 2026-08-14
Yes, if you need to parse JSON5 or JSONC and preserve formatting or comments. The package is stable and has no dependencies, making it low-risk to add. However, maintenance is dormant (no updates since May 2023), so if you hit edge cases or need new JSON5 features, you may need to fork or patch it yourself.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction; no runtime dependencies.
- Maintenance is dormant (last release May 2023, last commit October 2023), so expect no active bug fixes or feature updates.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.
last release 2023-05-16 (1186 days) · last repo commit 2023-10-01 · 21 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 88,138 downloads/mo, #13,746 on PyPI
Alternatives
Verify before relying
pip install json5kit
import json5kit
source = '{items: [1, 2, 4], // comment}'
tree = json5kit.parse(source)
print(tree.to_source()) # preserves formatting
print(tree.to_json()) # standard JSON output- Extent of JSON5 syntax coverage beyond comments, trailing commas, and unquoted keys
- Performance characteristics on large files or deeply nested structures
- Whether transformer API supports all node types or only a subset
What it is and what it does
json5kit is a parser and code transformer for JSON5—a JSON superset that allows comments, trailing commas, unquoted object keys, and single-quoted strings. It builds a concrete syntax tree (CST) that preserves the original source structure, so you can parse JSON5, modify it programmatically, and convert it back to source while keeping comments and formatting intact, or export it as standard JSON.
The package has no runtime dependencies and supports Python 3.7 and later. It provides a visitor pattern for tree traversal and transformation, letting you inspect and modify parsed values while maintaining the source representation. This is useful for configuration files, build scripts, or any JSON-like format where readability and comments matter.
Use it for
- Parse and edit configuration files written in JSON5 while preserving user comments and formatting
- Convert JSON5 config files to standard JSON for consumption by tools that only accept strict JSON
- Build linters or formatters for JSON5 that need to understand and modify the syntax tree
- Programmatically transform JSON5 data structures using visitor patterns without losing source fidelity
- Support JSONC (JSON with comments) in applications that currently expect strict JSON
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to parse JSON5 or JSONC and preserve formatting or comments.
The package is stable and has no dependencies, making it low-risk to add. However, maintenance is dormant (no updates since May 2023), so if you hit edge cases or need new JSON5 features, you may need to fork or patch it yourself.
Install
json5kit on PyPI
Before you install
Low friction; no runtime dependencies. Maintenance is dormant (last release May 2023, last commit October 2023), so expect no active bug fixes or feature updates.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.
Quickstart
pip install json5kit
import json5kit
source = '{items: [1, 2, 4], // comment}'
tree = json5kit.parse(source)
print(tree.to_source()) # preserves formatting
print(tree.to_json()) # standard JSON output
Verify before relying
- Extent of JSON5 syntax coverage beyond comments, trailing commas, and unquoted keys
- Performance characteristics on large files or deeply nested structures
- Whether transformer API supports all node types or only a subset
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Dormant 1,186 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 88,138 / month, #13,746 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTyping :: Typed |
Evidence: json5kit-0.4.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “roundtrip json parser”
- json5kitParses JSON5 (JSON with comments, trailing commas, unquoted keys)…
- xmltodictConverts XML to Python dictionaries and back, treating XML parsing…
- json-tools-rsFlattens and unflattens nested JSON structures with SIMD-accelerated…
Give your agent the search over MCP, or paste the wish link into any chat.
More Text Processing packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyparsing provides a library for building text parsers directly in Python code using composable grammar classes, handling quoted strings, whitespace variation, and embedded comments without regex or lex/yacc.
Install it if you need to parse text or define grammars programmatically.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
RapidFuzz provides fast fuzzy string matching using Levenshtein Distance and related metrics, implemented mostly in C++ with Python bindings for rapid similarity scoring and approximate string matching.
Install it if you need fuzzy string matching; it's a solid replacement for FuzzyWuzzy with better licensing and performance.
tinycss2 parses CSS strings into token and block objects, and generates CSS strings from those objects, following the CSS Syntax Level 3 specification without enforcing specific properties or values.
Install it if your project requires CSS tokenization or syntax manipulation.
See also json5 · json-five · jsonc-parser · json-with-comments · jsoncomment · libcst · dirtyjson · jstyleson · partialjson · hjson