This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.
ChemMD
Text-first browser editor for creating 2D chemical structures and exporting SVG or PNG drawings.
Source available. 9 of 65 checklist features confirmed.
Main canvas
Fixed light appearance; MOL-derived connectivity omits stereochemistry.
Default drawings
MOL connectivity transcribed; implicit hydrogens omitted and layout overlaps.
Caffeine
MOL connectivity transcribed; stereochemistry omitted and layout overlaps.
Paclitaxel
No 3D view
Cholesterol in 3D
- Native text format required; pasted SMILES and MOL were rejected.
- Fixture images show MOL connectivity translated into ChemMD text, not direct imports.
- The complex translation omits stereochemistry; both omit implicit hydrogens.
- Automatic layouts overlap bonds; explicit-atom formula and valence warnings omit implicit hydrogens.
- Git clone transfer size unavailable; matching downloaded source archive is 14,347 bytes.
Facts
- GitHub stars
- 0 stars on 6 Nov 2026
- First commit
- 10 Sept 2026
- Repository activity
- 8 commits, 1 contributor, last push 10 Sept 2026
- Version we tested
- 0.1.0 (2768408)
- Runs on
- Browser
- License
- Source visible for inspection and evaluation; reuse requires written permission.
- Price
- Not published
- Relies on
- No third-party engine found. Own chemistry parser, layout, valence checks, and SVG renderer.
- Draws with
- Custom SVG renderer; HTML canvas rasterizes PNG exports
- Chemistry from
- In-house graph parser, ring-skeletal rules and fixed-valence checks
- Interface
- Vanilla JavaScript DOM and SVG
- Main language
- JavaScript
- Other languages
- None
- Renderer
- Original: ChemMD SVG bond and label renderer
- Third-party licenses
- Not established
- Installed
- 0.2 MB
- Unreleased source-only editor requiring local Node.js setup; not runtime-tested.
- All rights reserved; source reuse requires written permission.
- Cross-file imports and component expansion are not implemented.
In use
Screenshots from our test of this version.

Single, double and triple bonds
Structure with single, double, and triple bonds beside bond definitions.

Structure checking
Warnings list atoms with fewer bonds than expected.

Formula and mass
Formula C8N4O2 with atom and bond counts.

High-resolution PNG
PNG output showing a structure with labeled atoms and bonds.
Features
- Tested by running it
- Seen in the app
- The manual says yes
- Partly, with the reason shown
- Not supported
- Not established, which is not the same as no
Select a mark for its proof. A filled mark opens our screenshot, or the manual if the check left nothing to picture. A ring opens the manual.
Drawing structures
- Yes, tested by running it: Text creates single, double, and triple bonds. Opens the screenshot.Single, double and triple bondsText creates single, double, and triple bonds.github.com
- No: Wedge-like bond syntax rejected; no stereo control. Opens the cited page.Wedge, hash and wavy bondsWedge-like bond syntax rejected; no stereo control.github.com
- Partly: Dotted bond accepted; no dative control seen. Opens the cited page.Dative, hydrogen and quadruple bondsDotted bond accepted; no dative control seen.github.com
- No: Double bonds always use symmetric offsets; no side setting. Opens the cited page.Choose double-bond sideDouble bonds always use symmetric offsets; no side setting.github.com
- No: Ring connectivity in text; no dedicated ring tool. Opens the cited page.Ring toolsRing connectivity in text; no dedicated ring tool.
- Not establishedChair and Haworth rings
- Not establishedChain tool
- No: No template library or command visible. Opens the cited page.Template libraryNo template library or command visible.
- Not establishedSave your own templates
- Not establishedGroup abbreviations
- Partly: C+ label accepted; 13C atom syntax rejected. Opens the cited page.Charges, isotopes and atom labelsC+ label accepted; 13C atom syntax rejected.github.com
- Not establishedRadicals and lone pairs
- Not establishedKeyboard drawing
- Not establishedLasso select and transforms
- Not establishedTilt drawings in perspective
Reactions and mechanisms
- No: Arrow-like bond syntax rejected; no arrow control. Opens the cited page.Reaction arrowsArrow-like bond syntax rejected; no arrow control.github.com
- No: Arrow-like syntax rejected; no curved-arrow control. Opens the cited page.Curved mechanism arrowsArrow-like syntax rejected; no curved-arrow control.github.com
- Not establishedMachine-readable reactions
- Not establishedAtom mapping
- Not establishedOrbitals and symbols
Figures and layout
- Not establishedRich text captions
- Not establishedShapes, brackets and curves
- Not establishedAlign and distribute
- Not establishedGroup and ungroup
- Partly: Auto arrange crosses ring bonds and rewrites formula. Opens the cited page.2D structure cleanupAuto arrange crosses ring bonds and rewrites formula.github.com
- Not establishedJournal drawing styles
- Not establishedReusable custom styles
- No: Colors follow fixed element classes; no individual color field. Opens the cited page.Color controlColors follow fixed element classes; no individual color field.github.com
- No: Fixed backgrounds and automatic warnings only; no user highlights. Opens the cited page.Color highlightingFixed backgrounds and automatic warnings only; no user highlights.github.com
- Not establishedPage layout and multipage
- Not establishedImported pictures
- Not establishedTLC plates and tables
Chemistry intelligence
- Yes, tested by running it: Warnings flag overbonded and underbonded atoms. Opens the screenshot.Structure checkingWarnings flag overbonded and underbonded atoms.github.com
- Not establishedR/S and E/Z labels
- Partly: Counts explicit atoms; no mass or implicit hydrogens. Opens the screenshot.Formula and massCounts explicit atoms; no mass or implicit hydrogens.github.com
- Not establishedProperty estimates
- No: Pasting caffeine as a name produces an error. Opens the cited page.Name to structurePasting caffeine as a name produces an error.
- No: No structure-to-name command visible. Opens the cited page.Structure to nameNo structure-to-name command visible.
- Not establishedNMR prediction
- Not establishedR-groups and query structures
- Partly: Repeat counts parse and display; component resolution and expansion are unimplemented. Opens the cited page.Polymers and repeat unitsRepeat counts parse and display; component resolution and expansion are unimplemented.github.com
- Not establishedPeptides and nucleic acids
- Not establishedImage to structure
- Not establishedOnline structure lookup
- No: No 3D viewport or control visible. Opens the cited page.3D model viewNo 3D viewport or control visible.
- Not establishedCrystal structures
Files and exchange
- No: Pasted CDXML text rejected; no import control. Opens the cited page.CDXML import and exportPasted CDXML text rejected; no import control.github.com
- No: Exporter writes only ChemMD source, SVG and PNG. Opens the cited page.CDX import and exportExporter writes only ChemMD source, SVG and PNG.github.com
- No: Pasted MOL text rejected; no import or export control. Opens the cited page.MOL and SDFPasted MOL text rejected; no import or export control.github.com
- No: Pasted caffeine and paclitaxel SMILES rejected. Opens the cited page.SMILESPasted caffeine and paclitaxel SMILES rejected.github.com
- Not establishedInChI
- Not establishedRXN files
- Yes, tested by running it: SVG button saved a vector file. Opens the cited page.SVG exportSVG button saved a vector file.github.com
- No: Browser print previews entire page; no PDF export command. Opens the cited page.PDF exportBrowser print previews entire page; no PDF export command.github.com
- Partly: PNG saved at 1800 × 1240; no DPI control. Opens the screenshot.High-resolution PNGPNG saved at 1800 × 1240; no DPI control.github.com
- Not establishedPaste to and from ChemDraw
- Not establishedEditable in Word or PowerPoint
- Not establishedWindows Office OLE
APIs and automation
- Not establishedPython API
- Not establishedJavaScript or TypeScript API
- Not establishedCommand-line tool
- Not establishedAI agent control
- Not establishedBuilt-in AI assistant
Embedding and extension
- Not establishedPlugins
- Not established: Standalone browser app; no supported embedding interface found.Embed in your own appStandalone browser app; no supported embedding interface found.github.com
