jsonedit
A structured document editor for composing meaning in JSON.
jsonedit is a tree-based editor designed for working with hierarchical ideas, not just JSON text. It treats JSON as a living document — something you assemble, reshape, and extract from — rather than a file you manually type.
It is especially well suited for LLM prompt construction, context curation, and structured knowledge editing.
Screenshot
What jsonedit is (and is not)
jsonedit is not a traditional programmer’s JSON editor.
It is a document compositor built around one core idea:
Edit meaning locally. Commit structure deliberately.
Instead of editing lines of text, you work directly with the document’s tree structure — selecting nodes, reshaping hierarchies, and exporting semantic fragments when needed.
Why it exists
Modern workflows — especially those involving LLMs — often look like this:
- assemble structured prompts
- rearrange examples or schemas
- experiment safely
- extract only the relevant subtree
- paste into an AI context window
- iterate
Traditional editors treat JSON as text.
jsonedit treats JSON as thought structure.
Core Concepts
🌲 Structure First
The primary editing unit is a node, not a line.
Common operations include:
- raise / lower items in hierarchy
- duplicate subtrees
- insert siblings
- rename keys
- delete with intelligent reselection
Navigation uses structural paths instead of line numbers.
✍️ Split-Brain Editing
Two coordinated views:
- Tree view → orientation and structure
- Text pane → focused semantic rewriting
You always know where you are structurally while editing what something means.
🧪 Safe Editing via Explicit Commit
Text edits remain sandboxed until you explicitly commit them.
This allows:
- experimentation without breaking structure
- temporary invalid JSON while thinking
- deliberate structural mutation
No accidental global edits.
📦 Export is a First-Class Action
jsonedit assumes you frequently want pieces of documents.
You can quickly copy:
- entire documents
- selected subtrees
- pretty or compact JSON
Ideal for moving structured context into LLM prompts.
🧠 JSON as a Living Document
Documents may include metadata and workspace information, encouraging long-lived structured artifacts rather than disposable config files.
Ideal Use Cases
jsonedit works best when JSON represents ideas, not just data.
✅ Excellent for
- LLM prompt composition
- Context packaging for AI systems
- Agent or tool configuration
- Structured writing and outlining
- Dataset annotation
- Knowledge assembly in hierarchical form
Typical workflow:
- Select subtree
- Rewrite locally
- Commit structure
- Copy compressed node
- Paste into LLM context
❌ Not Designed For
- General programming JSON editing
- Schema validation or linting
- Large machine-generated JSON files
- Collaborative merge workflows
- High-speed code typing environments
If you want VS Code for JSON — use VS Code.
jsonedit optimizes for clarity of structure, not typing speed.
Install
pip install jsonedit
Run
jsonedit
Open a file directly:
jsonedit <filepath>
Requirements
- Python
- Tkinter available in your Python installation
(jsonedit is a desktop GUI application.)
Philosophy
jsonedit is built on a few assumptions:
- JSON encodes ideas, not just data.
- Structure matters more than formatting.
- Users think in subtrees rather than lines.
- Editing should be deliberate and reversible.
- Exporting fragments is a primary activity.
License
CC0 1.0 Universal — public domain.
See LICENSE.
Release files for jsonedit 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jsonedit-0.1.2.tar.gz | 19.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jsonedit-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.1 kB
Release files / jsonedit-0.1.2.tar.gz
| Download URL | jsonedit-0.1.2.tar.gz |
|---|---|
| Size | 19.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4aff3007b0b701efd023e0bf3ae990ece32ddf2731f015e269223eb7072a1f10
|
|
BLAKE2b-256 checksum How to use checksums |
6567e260afac2aee59ac85c52b2bd93d7c209aa5d24ec33f4abe564382072517
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / jsonedit-0.1.2-py3-none-any.whl
| Download URL | jsonedit-0.1.2-py3-none-any.whl |
|---|---|
| Size | 17.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ca8e6135d14c080b89324c858421268bf90bf9fd0f803f1180216628f490687d
|
|
BLAKE2b-256 checksum How to use checksums |
485d49fa72310f4c299a6da01961ea29d446f5886db2a59d151972495c597483
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|