bartekmp345 downloadsBake images into your notes as self-contained Base64 embeds, and extract them back into vault files at any time.
An Obsidian plugin that bakes images into your notes as self-contained Base64 embeds — and un-bakes them back into regular files whenever you want.
Your notes travel as single files. A note with baked-in images is one .md file that carries
its own pictures. Mail it, paste it into a gist, sync it, move it between vaults — nothing breaks,
no attachment folder needs to come along.
Screenshots stop cluttering your vault. If your workflow is screenshot-heavy — meeting notes,
bug reports, study notes, recipes — every paste normally creates another Pasted image 1748….png
in your attachment folder. With Image Baker the screenshot lands inside the note it belongs to,
and nowhere else.
Images live and die with their note. A baked image exists only in the note that uses it. Delete the note and the image is gone with it — no orphaned attachments to hunt down later, no "is anything still using this file?" anxiety.
It's reversible, so there's nothing to commit to. Every conversion works both ways, down to the original file name and folder. Bake a note, change your mind, extract — you're back exactly where you started. Try it on one note or convert a whole vault, with a dry-run preview either way.
<note name> <timestamp>.png name. Anything that isn't a supported image within the size
limit is left to Obsidian's normal handling.![[photo.png|300]]) and markdown images
() convert in place: per image, per selection, per note, or across the
whole vault.base64 · 142 KB pill; click to expand, move away to fold again.| Setting | Default | Description |
|---|---|---|
| Collapse embedded image data | on | Fold Base64 payloads behind a size pill |
| Embed images on paste | on | Bake pasted images straight into the note |
| Embed images on drop | on | Bake dragged-in images straight into the note |
| Delete source files after embedding | on | Trash the original file once baked in |
| Maximum file size to embed (KB) | 1024 | Skip images larger than this (0 = no limit) |
| Optimize images before embedding | off | Re-encode images while baking them in |
| Optimized format / quality / max width | WebP / 75 / 0 | Target encoding for optimization |
| Extracted link style | Wikilink | ![[image.png]] or  |
| Log level | Warnings | Event logging: Off, Errors, Warnings, Info, Debug |
Once accepted into the community catalog: Settings → Community plugins → Browse, search for "Image Baker".
Install the BRAT plugin and add
bartekmp/obsidian-image-baker as a beta plugin.
Download main.js, manifest.json, and styles.css from the
latest release and place them in
<your vault>/.obsidian/plugins/image-baker/, then enable the plugin in
Settings → Community plugins.
git clone https://github.com/bartekmp/obsidian-image-baker.git
cd obsidian-image-baker
npm ci
npm run dev # watch mode; clone into a test vault's .obsidian/plugins/image-baker/
npm test # unit tests
npm run build # production build → main.js
Contributions are welcome — see CONTRIBUTING.md for the branch, commit, and release conventions.
The TypeScript source code in this repository is mainly generated with the LLM assistance.