mjEdit combines the most important tools for daily work in a single interface.

What sets mjEdit apart from other JSON editors

Property Standard JSON editors mjEdit
OSCAL detection Manual Automatic – detects document type and opens specialised tab
Schema validation Generic OSCAL v1.2.1 schemas preinstalled, real-time validation
AI integration None 88 MCP tools for fully automated OSCAL workflows
Compliance data Not available BSI Grundschutz (2,128 controls), NIST 800-53 (468 controls)
Document chains Not possible One click: profile → SSP → AP → AR → POA&M
Inventory management Not available Components (classes) ↔ inventory (instances)

The core capabilities

JSON editor

Syntax highlighting, real-time validation, auto-repair, regex search, code folding and intelligent performance management for files larger than 1 MB.

qFORM form system

JSON arrays are automatically presented as editable forms with text fields, checkboxes, dropdowns, date pickers and embedded QC scripts running in a Python sandbox.

Markdown editor

Split view, GitHub Flavored Markdown, extended task system (priorities, assignment, time tracking) plus PDF and HTML export.

PDF viewer

Annotations (highlighter, notes, freehand), secure text redaction and zoom up to 400 %.

Browser tab

Chromium-based web browser with bookmarks, tabs and lazy loading – including a two-tier bookmark system (global & private) and direct OSCAL back-matter integration.

Plugin system

Extensible via hook-based plugins with tab registration and menu integration.

Automatic OSCAL document healing

In real-world projects, OSCAL JSON files rarely come from a single tool: generators, scripts, older editors, AI pipelines or manual edits regularly produce schema-violating or outdated structures (forbidden top-level fields, mis-nested objects, legacy containers, missing mandatory fields, missing timezone suffixes, …). Instead of leaving the user alone with cryptic validator messages, mjEdit automatically and idempotently heals such documents on open and save into an OSCAL v1.2.1-compliant state – without data loss.

What gets healed automatically? (excerpt, document-type specific)

Document type Example healing
SSP Missing system-ids, empty role-id in responsible-parties, broken by-components entries, schema-violating description on a statement → automatic migration into by-components[this-system].description
SSP Outdated system-interconnections (NIST pre-1.2.1) → migrated to modern components[type=interconnection]
SSP Schema-violating import-component-definitions → migrated to OSCAL-compliant back-matter.resources with rlinks
SSP Removal of forbidden top-level container (control-implementations), cleanup of empty mandatory arrays
Assessment Results Missing import-ap (mandatory) is filled with a placeholder stub
Assessment Results Missing assessment-platforms in local-definitions.assessment-assets is added
Assessment Results Datetime fields without timezone suffix (start, end on result and assessment-log entries) → forced to UTC (Z)
POA&M Legacy remarks on risk level → losslessly moved to props[name=legacy-remarks]
Component definition Detection and conversion of older structural formats
Mapping collection NIST-specific mandatory and structural adjustments (provenance, map-entry) applied automatically before schema validation

Properties of the healing:

  • Lossless: content is migrated, not deleted. Text from forbidden fields lands in semantically correct target fields (e.g. this-system description or remarks).
  • Idempotent: repeated open/save yields the same result – the healing does not flap between states.
  • Active on open AND on save: so the validator sees exactly what is actually saved.
  • Statistics in the log: every save records how many fields of which kind were migrated (e.g. statement_descriptions_migrated: 3).
  • Round-trip aware: migrated content reappears in the matching dialog on the next open – the user never notices the internal restructuring.

Practical tip: If you inherit an OSCAL document from a foreign tool or a legacy archive, you don’t have to fix the schema by hand. Open once in mjEdit, save once – done. The document then validates cleanly against OSCAL v1.2.1.

Cross-cutting features

  • Efficient tree view with real-time filter
  • Automatic backups and a version archive
  • 4 themes: Dark, Light, Blue, Green
  • Full bilingual UI (German / English)
  • Intelligent path correction for portable OSCAL projects
  • Automatic OSCAL document healing (see above)
  • Print and export as XML, CSV, PDF, HTML, Markdown