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 oderremarks). - 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.href → import-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.