ChemEdit

approved

by Ruzal Sitdikov

Chemistry editor for Obsidian with ELN support. Draw and edit chemical structures, molecules and reactions for organic chemistry. Supports SMILES, MOL, and ChemDraw (CDXML) files. - This plugin has not been manually reviewed by Obsidian staff.

β˜… 2 stars↓ 1,362 downloadsUpdated 21d agoMIT

ChemEdit

Bring chemistry to Obsidian.

ChemEdit is a fully-integrated chemical structure editor and viewer. Powered by Ketcher and SmilesDrawer, it allows you to natively draw reactions, edit .mol files, preview ChemDraw (.cdxml) files directly inside your vault, and keep simple electronic lab notebooks (ELNs).

Quick Demo

chemedit demo new

ELN Quick Demo

ELNquckdemo-ezgif com-optimize

πŸ“ Release Notes

πŸš€ What's New in ChemEdit 1.3.5-1.3.7

  • Fixed MW (changed engine) auto-calculation bugs for complex stereobonds conjugated to aromatic rings (e.g., / or \ next to ring closures C=1) (thanks @Snipinium!).
  • Fixed a YAML parsing error caused by backslashes in SMILES strings (e.g., geometric isomers). (thanks @ignorgchem!).
  • Fixed MW auto-calculation bugs for atoms like P and S (thanks @Snipinium!).
  • Added inline editing to ELN tables: double-click Eq, Mass, Temp, or Solvent to edit.
  • Added basic support for drawing full reactions in the ELN editor (it will try to parse reactants and products from the arrow).
  • Added chem-db code blocks for better tracking inventories and libraries.

πŸ“– How to use ChemDB blocks

Insert these anywhere to generate interactive databases:

Compound Library (Table):

```chem-db
type: library
folder: Library
```

Compound Library (Grid):

```chem-db
type: library
path: Library
layout: grid
```

ELN Database:

```chem-db
type: eln
folder: _mobile_obsidian/ELN
```

Chemical Inventory:

```chem-db
type: inventory
folder: _mobile_obsidian/Chemical_Inventory
```

ELN editable field (double click) demo:

Recording2026-09-16083540-ezgif com-optimize

chem-db for ELN Database demo substructure search example:

20260916_084657_21-ezgif com-optimize

πŸš€ What's New in ChemEdit 1.3.3 - 1.3.4

  • Compound Library β€” Search, insert, and save compounds from built-in or custom Markdown libraries.
  • Chemistry Context Menu β€” Right-click structures to copy SMILES/MOL, retrieve chemical properties, and open PubChem, ChemSpider, MolPort, or NMRium. image

1.3.2

  • Interactive ELN Editor: Added a floating action bar to ELN blocks. You can now visually edit Reactants, Products, Equivalents, and Procedures via a clean UI without touching Markdown YAML!
  • πŸ§ͺ Auto-Name Structures: Added a smart "Auto-Name" button inside the ELN editor that automatically fetches IUPAC/Common names for your drawn structures via PubChem/CACTUS.
  • πŸ“Έ Fume Hood Utilities (Media Ribbon): Take Lab Photos or upload TLC plates directly into your notes.
  • Stoichiometry Engine: Reagents are now fully synced. Set a ⭐ Limiting Reagent, change its mass, and watch every other chemical scale automatically.
  • Concentration Support: Define reagents by Purity (%) or Molarity (M). Volumes (mL) and active masses are calculated instantly.

⚑ Custom Macros & Media

  • Smart Attachment Sync: Added a custom Flask ribbon icon (optional in settings). Creating a new experiment saves it in your default ELN directory. Click Photo or TLC inside the experiment, and the image is auto-prefixed with your experiment code (e.g. EXP-005_TLC_1204.png) and smart-pasted directly into the Analytical Data section.
  • Clone Experiment: Instantly duplicate a reaction to a new file. It clones the scheme but wipes the yields so you can run it again.
  • Macros Menu: Instantly drop timestamps or boilerplate text (like aqueous workups and column chromatography procedures) into your markdown via the ⚑ Macros button.

πŸ–ΌοΈ Dynamic Galleries & Embeds

  • Gallery Grids: Type chem-gallery path: Folder/ or eln-gallery path: Folder/ to render beautiful, searchable grids of your structures and past experiments. Image

πŸš€ What's New in ChemEdit 1.3.2

ChemEdit now supports viewing and editing biological sequences via Ketcher's macromolecule mode.

  • Explanation: Native codeblock and file support for DNA, RNA, and Peptides.
  • Examples: You can now use fasta, helm, idt, sequence, and biln codeblocks. (Note: Ketcher's biological parser is still in active upstream development, so highly complex sequences may fall back to default structural representations).

Ketcher SVGs support

SVGs that act as standard images but contain editable chemical data.

  • Example: ![[aspirin.svg]] renders anywhere in your vault and can be open in other programs as normal svg. Right-click the file in Obsidian to see the new "Edit SVG in Ketcher" option. image
image image

✨ Features

  • Native File Support: Render and edit .mol, .cdxml, .rxn, and more directly via standard Obsidian embeds (![[file.mol]]).
  • Double-Click to Edit: Click any rendered molecule to open the visual drawing interface.
  • Auto-Save: Hit "Save" in the editor to instantly overwrite the file on your hard drive and update the preview.
  • Inline Molecules: Render small molecules directly inside sentences using $smiles=C1=CC=CC=C1.
  • Smart Paste: Paste SMILES or MOL text directly into the editor and let ChemEdit format it for you.
  • Smart Themes: Structures automatically adapt to your Obsidian Light/Dark mode.
  • Reactions: Full support for drawing and rendering complex chemical reactions.

πŸš€ How to Use

1. Native File Embeds (The Easy Way)

Drop a chemistry file into your vault and embed it in your note using Obsidian's standard syntax. ChemEdit will automatically replace the generic file box with a rendered image!

![[caffeine.cdxml]]
![[aspirin.mol]]
![[reaction.rxn]]

Double-click the image to open Ketcher, edit the molecule, and save!

⚠️ Disclaimer on .cdxml files: ChemEdit uses Ketcher's open-source conversion engine. While most standard structures and reactions work perfectly, highly complex formatting or proprietary ChemDraw-specific objects may not be 100% supported.

2. SMILES Blocks

Write SMILES strings directly in your markdown using code blocks:

```smiles
CC(=O)OC1=CC=CC=C1C(=O)O
```

Double-click the structure to edit it visually. Saving will automatically update the text in your code block.

3. Inline Molecules

You can render molecules directly inside a sentence. Perfect for chemical tables!

The structure of Benzene is $smiles=C1=CC=CC=C1 and it is a liquid at room temp.

4. Draw from Scratch

Click the Hexagon (cyclohexane) Icon in your left-hand ribbon (or use the Command Palette: Draw new SMILES molecule) to open a blank canvas. Draw your structure, select your desired format, hit Save, and it will be inserted exactly where you are typing.


πŸ§ͺ Electronic Lab Notebook (ELN)

ChemEdit includes an automatic stoichiometry calculator and experimental logbook generator. Using a simple YAML code block, you can define your reaction, and ChemEdit will:

  • Calculate stoichiometry (moles, mass, volume).
  • Calculate theoretical yield and percentage yield.

ELN Usage

Create an eln code block and define your experiment:

```eln
Code: RSA-007
title: Aspirin Synthesis
author: rsa
creation_date: Dec 16, 2018

duration: 20 min
solvent: none
temperature: 80 Β°C

reactants:
- name: Salicylic acid
  smiles: O=C(C1C(O)=CC=CC=1)O
  eq: 1
  mass: 1381

- name: Acetic anhydride
  smiles: CC(=O)OC(=O)C
  eq: 1.5
  density: 1.08

- name: Sulfuric acid (catalytic)
  smiles: OS(=O)(=O)O
  eq: 0.05
  density: 1.84

products:
- name: Aspirin
  smiles: CC(=O)OC1=CC=CC=C1C(=O)O
  eq: 1
  mass_isolated: 1600

procedure: |  
  Salicylic acid was mixed with acetic anhydride, followed by the addition of catalytic sulfuric acid. The reaction mixture was heated at 80 Β°C for 20 min, then cooled and poured into ice-water. The precipitated aspirin was collected by filtration, washed with cold water, and dried.
```

πŸ“₯ Installation

From Obsidian Community Plugins (Recommended)

  1. Open Settings β†’ Community plugins.
  2. Click Browse and search for ChemEdit.
  3. Click Install and then Enable.

Manual Installation

  1. Download main.js and manifest.json from the Releases page.
  2. Place them in your vault at .obsidian/plugins/chemedit/.
  3. Reload plugins and enable ChemEdit.

πŸ› Feedback & Bugs

Found a bug or have a feature request? Please open an issue on GitHub.

πŸ† Acknowledgements

A massive thank you to the creators of the Chem and Ketcher Obsidian plugins. Their fantastic work provided the initial inspiration to build this tool. ChemEdit was ultimately born out of a desire to create a dedicated Electronic Lab Notebook (ELN) experience in Obsidianβ€”one that offers seamless, visual molecule editing and native, dynamic interactive support for SMILES, ChemDraw (.cdxml) and Mol (.mol) files.

πŸ”¬ Related Chemistry Plugins

ChemEdit focuses on interactive molecular drawing, editing, and visualization. Depending on your workflow, you may also find these Obsidian plugins useful:

PluginDescription
ChemRender SMILES structures locally using SmilesDrawer and RDKit.js. Great for fast inline visualization without requiring an external service.
KetcherEmbed the Ketcher molecule editor directly inside Obsidian to draw and edit molecules and reactions.
Chemical Structure RendererRender SMILES structures using the Ketcher + Indigo rendering service. Supports SVG/PNG output and custom rendering servers.
LaTeX SuiteMakes writing chemistry equations easier with LaTeX packages such as mhchem and chemfig.
TikZJaxRender TikZ diagrams directly inside Obsidian, including figures created with chemfig.
ExcalidrawDraw reaction mechanisms, synthesis schemes, and lecture notes by hand.

Why ChemEdit?

ChemEdit combines features that would otherwise require several plugins:

  • Interactive Ketcher editor.
  • Native editing of SMILES, MOL, and CDXML files.
  • Double-click editing directly from rendered structures.
  • Automatic synchronization with files in your vault.
  • Online and fully offline modes.
  • Experimental Electronic Lab Notebook (ELN) with stoichiometry calculations.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.