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

What makes mjEdit different from other JSON editors

Property Standard JSON Editors mjEdit
OSCAL detection Manual Automatic – detects document type and opens specialized tab
Schema validation Generic OSCAL v1.2.2 schemas pre-installed, real-time validation
AI integration None 154 MCP tools for fully automated OSCAL workflows
Compliance data Not available BSI Basic Protection (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 functions

JSON editor

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

qFORM form system

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

Markdown editor

Split view, GitHub Flavored Markdown, advanced task system (priorities, assignment, time tracking) as well as PDF and HTML export.

PDF viewer

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

Browser tab

Chromium-based web browser with tabs and lazy loading - including two-tier bookmarking system (global & private) and direct OSCAL Back Matter integration for easy reference creation.

Plugin system

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

System requirements

  • Windows 10/11, macOS 10.15+, Linux (Ubuntu 20.04+)
  • 4GB RAM (8GB recommended), 2000MB free space
  • No DATABASE is needed – all data is stored natively in JSON files in the user directory for maximum portability.
  • Most features are fully usable offline, including AI tools (local models) and OSCAL automatic document healing. Only the Translate function requires an internet connection as it accesses the DeepL API (For security-critical environments, this function can be disabled).

Automatic OSCAL document healing

… in practice rarely from exactly one tool: generators, scripts, older editors, AI pipelines or manual editing regularly produce schema-contradictory or outdated structures (forbidden top-level fields, incorrectly nested objects, legacy containers, missing mandatory fields, missing time zone suffixes…). Instead of leaving the user alone with cryptic validator messages, mjEdit automatically and idempotently heals such documents into an OSCAL v1.2.2-compliant state when opened and saved - without data loss.

What is automatically healed? (Excerpt, document type specific)

Document type Exemplary Healing
SSP Missing system-ids, empty role-id in responsible-parties, broken by-components entries, schema-contrary description field at statement level → automatic migration to by-components[this-system].description
SSP Deprecated system-interconnections (NIST-Pre-1.2.2) → Migration to modern components[type=interconnection]
SSP Schema-contradictory import-component-definitions → Migration to OSCAL-compliant back-matter.resources with rlinks
SSP Removing forbidden top-level containers (control-implementations), cleaning up empty mandatory arrays
Assessment Results Missing import-ap (required field) is supplemented with a placeholder stub
Assessment Results Missing assessment-platforms in local-definitions.assessment-assets is added
POA&M Legacy-remarks auf Risk-Ebene → verlustfrei in props[name=legacy-remarks]
Component-Definition Erkennung und Konvertierung älterer Strukturformate
Mapping-Collection NIST-spezifische Pflicht- und Strukturanpassungen (provenance, map-entry) automatisch vor Schema-Validierung

Eigenschaften der Heilung:

  • Verlustfrei: Inhalte werden migriert, nicht gelöscht. Texte aus verbotenen Feldern landen in semantisch korrekten Zielfeldern (z. B. this-system-Beschreibung oder remarks).
  • Idempotent: Wiederholtes Öffnen/Speichern führt zum gleichen Ergebnis – die Heilung „wackelt" nicht zwischen zwei Zuständen.
  • Beim Öffnen UND beim Speichern aktiv: So sieht die Validierung exakt das, was tatsächlich gespeichert wird.
  • Statistiken im Log: Pro Save wird mitprotokolliert, wie viele Felder welchen Typs migriert wurden (z. B. statement_descriptions_migrated: 3).
  • Round-Trip-fähig: Migrierte Inhalte werden beim erneuten Öffnen wieder im passenden Dialog angezeigt – der Anwender merkt von der internen Umstrukturierung nichts.

Praxistipp: Wer ein OSCAL-Dokument aus einem fremden Tool oder einem alten Bestand erbt, muss es nicht manuell schema-fixen. Einmal in mjEdit öffnen, einmal speichern – fertig. Das Dokument ist anschließend sauber gegen OSCAL v1.2.2 validierbar.

Übergreifende Funktionen

  • Effizientes Tree-View mit Echtzeit-Filter
  • Automatische Backups und Versions-Archiv
  • Vollständige Zweisprachigkeit (Deutsch/Englisch)
  • Intelligente Pfad-Korrektur für portable OSCAL-Projekte
  • Automatische OSCAL-Dokumenten-Heilung (siehe oben)
  • Druck und Export als XML, CSV, PDF, HTML, Markdown

Neueste Verbesserungen – Mai 2026

In den letzten Wochen wurde die OSCAL-Arbeit mit mjEdit in mehreren Schritten weiter verfeinert.

Smart-Open für Evidenz-Dateien. Klickt der Anwender im Assessment-Plan oder Assessment-Results auf eine Back-Matter-Ressource, erkennt mjEdit den Dateityp und öffnet sie im passenden Tab: JSON in Editor/Form, Markdown im Markdown-Tab, PDFs im PDF-Tab und Bilder direkt im neuen Screenshot-Tab.

Konsistente Back-Matter-UX in AP, AR, SSP und Profile:

  • Neuer Menüpunkt „Vorschau anzeigen" in AP und AR (analog zum SSP).
  • „Ressource bearbeiten" gibt bei ungültigen Indizes eine klare Rückmeldung.
  • Doppelter Eintrag „Evidenz bearbeiten" wurde aus dem AP-Kontextmenü entfernt.
  • Im Profile-Tab erscheint der Knoten 📚 Back-matter jetzt immer – auch bei leeren Profilen.

Dual-Subject-Workflow: Komponente UND Inventory-Item. Der Subject-Picker liest den Pool über die volle Importkette AR → AP → SSP (import-ap.hrefimport-ssp.href). Wählt der Anwender inventory-item als Haupttyp, zeigt der Picker zusätzlich passende Komponenten (implemented-components). Im AP-Tree erscheinen typabhängige Icons (🧩 Component, 📦 Inventory-Item, 👤 User, 🏢 Party, 📍 Location, 🖥️ this-system) sowie Marker [alle], [inkl. N], [excl. M].

Sprachqualität. Mehrere EN-Übersetzungen wurden korrigiert und neue Strings ergänzt – die zweisprachige Oberfläche bleibt auch bei den neuen Funktionen konsistent.