vbv115 downloadsMark up images without leaving your notes: draw rectangles, ellipses, arrows and numbered markers, pixelate sensitive parts, and save.
Mark up images without leaving your notes. Hover over an image, click Mark, draw, save. That is the whole workflow.
Rectangles, ellipses, arrows, numbered markers and a pixelate tool for hiding passwords, addresses or faces. Works on desktop and on mobile, in reading view and in Live Preview.

Screenshots in notes often need a quick "look here": a box around a setting, an arrow pointing at a button, numbers for a step-by-step guide, or a blurred bit you do not want to share. Doing that in a separate image editor, exporting and re-embedding breaks your flow. PhotoMark+ edits the image where it is and saves it straight back into the vault.
There are three ways to open the editor:

In the editor, pick a tool and drag on the image. For a numbered marker, just click. Click Save when you are done.
| Key | Action |
|---|---|
R E A N P |
Rectangle, Ellipse, Arrow, Number, Pixelate |
Ctrl/Cmd+Z |
Undo the last mark |
Enter or Ctrl/Cmd+S |
Save |
Esc |
Cancel (asks first if you drew something) |

The result is a normal image file, so it looks the same everywhere: in Obsidian, on your phone, in an export or on a published site.

| Setting | Default | What it does |
|---|---|---|
| Default color | red (#ff1f1f) |
Color for new marks. You can still change it in the editor; the last used color is remembered. |
| Line width | automatic | In image pixels. Automatic scales with the image (about 1/280 of the longest side, at least 3). |
| JPEG and WebP quality | 92 | Only applies to lossy formats. PNG is always lossless. |
| When saving | overwrite | Overwrite replaces the file. Copy writes name-marked.png next to the original and updates the embeds in the note you started from. |
| Suffix for copies | -marked |
Only used in copy mode. |
| Show the Mark button on images | on | Turn off if you only want the context menu and the command. |
| Corner for the Mark button | top right | Move the button to another corner if it covers a button of another plugin. |
| Language | follow Obsidian | English or Dutch, independent of the Obsidian language. |
Community plugins (recommended): Settings → Community plugins → Browse → search for PhotoMark+ → Install → Enable. (Available once the plugin is accepted into the community list.)
With BRAT: add VBV11/photomark-plus in the BRAT plugin.
Manually: download main.js, manifest.json and styles.css from the latest release into <your vault>/.obsidian/plugins/photomark-plus/, reload Obsidian and enable the plugin under Community plugins.
Requires Obsidian 1.5.0 or newer. Desktop and mobile.
![[...]] and  embeds in the note you opened the editor from. Other notes that embed the same image keep pointing at the original.There is no build step: main.js is the source, written in plain JavaScript against the obsidian API. The plugin that Obsidian loads consists of three files: main.js, manifest.json and styles.css. Everything else in this repository is documentation and tests.
git clone https://github.com/VBV11/photomark-plus
cd photomark-plus
npm install # Playwright, only needed for the tests
npm test # 43 checks in headless Chromium against a mocked Obsidian API (test/mock-obsidian.js)
node test/run.js --shots # also regenerates the screenshots in docs/
The screenshots in this README come from that test page, which imitates Obsidian's default dark theme. The sample "router dashboard" is generated by test/make-sample.js; every name and address in it is fictional.
To work on the plugin inside a vault, clone the repository into <vault>/.obsidian/plugins/photomark-plus/ and reload Obsidian after each change.
Releasing: npm version patch (or minor/major) updates manifest.json and versions.json, commits and tags; git push --follow-tags then lets the GitHub Action publish the release with the three plugin files.