Image Gin 0.2.2 — Every Image Asks Where It Goes
From AI-image generator to image-flow controller — every dropped or pasted image now decides where it belongs before it lands anywhere.
Why Care?
The artifacts a company shares with you over the course of any working relationship — growth charts, dashboard screenshots, photos of a whiteboard, draft pricing pages, slides not yet meant to circulate — are routinely not meant to leave the private context they arrived in. The default failure mode in Obsidian (and in most note-taking tools that bolt on a third-party image uploader) is silent: you drag a file into a note, and the bytes go wherever the tool decided ahead of time — sometimes a public CDN, sometimes anonymous Imgur — without ever asking you. That's fine for a recipe. It's a phone call you don't want to make on anything client-sensitive.
Image Gin 0.2.2 puts a deliberate decision between the drop and the destination. Drag or paste an image into a note, and a single modal appears: vault attachments (Obsidian's standard private behavior), ImageKit (your own private CDN), or Imgur (anonymous public). You pick. The image goes there. The cursor moves to the next line. Nothing leaves your machine without you choosing it to.
This is also the first version of Image Gin installable from the new community.obsidian.md portal — the hosted submission flow Obsidian rolled out to replace the long-running PR-based queue at obsidianmd/obsidian-releases.
What's New?
The Drop Gate — one modal, three destinations
Toggle Settings → Image Gin → Drag-Drop / Paste Confirmation Gate on, and every image that hits a markdown view goes through one decision modal:
| Destination | What it does | Good for |
| Vault attachments | Obsidian's standard private behavior — bytes stay in the vault | Anything client-sensitive; the default |
| ImageKit | Upload to your own private CDN (the same pipeline as Image Gin's existing Convert Local Images to Remote) | Material that isn't strictly secret but you don't want to host forever yourself |
| Imgur | Anonymous public upload to api.imgur.com/3/image (free, no account, durable) | Genuinely shareable material |
The modal shows the dropped file (name, size, type) and a radio group of all three destinations. Destinations you've configured are selectable; the ones you haven't are visible-but-disabled with a one-line nudge pointing at the right setting — so you can see what's possible even before you've turned anything on.
Drop it, gate it, get back to writing
Drop a screenshot into a note. The modal opens, wide enough to read (~720px). Three destinations visible. Pick one. The modal closes. The image lands at your destination. The markdown link inserts at your cursor. The cursor moves to the next line. The editor refocuses. You keep typing.
Two policy modes
Always confirm (default) — the modal opens on every image, regardless of destination.
External only — vault drops happen silently with no modal; the modal only appears if an external destination (ImageKit or Imgur) is at least partially involved.
Pick the second mode if the modal-on-every-drop feels like too much friction for vault-only workflows.
Remember-for-this-session
A Remember for this session checkbox in the modal skips it for subsequent drops in the current note. It resets the moment you switch to a different note (active-leaf-change) and never persists across Obsidian restarts. So you can paste a sequence of related screenshots into one piece of writing without re-confirming each one, while still being asked when you move on to the next piece.
There's also a palette command — Drop Gate: Reset session-remembered destination — for when you want to force the modal back without leaving the note.
Conflict detection with other drop-handling plugins
If you have Kirill Gavrilov's obsidian-imgur-plugin (or any other plugin that registers an editor-drop handler) also enabled, both plugins will handle every drop and you'll get two modals back-to-back — preventDefault() blocks the browser default, not other plugins. Image Gin surfaces a persistent Notice on plugin load when this is detected, telling you to disable the other plugin and configure Imgur from inside Image Gin (which is one of the three destinations the Drop Gate already offers, so you're not losing anything).
Drop-gate-specific ImageKit folder
If you want ad-hoc dropped images to land in a different ImageKit folder than the one used by the existing Convert Local Images to Remote / Batch Convert Directory Images to Remote commands, the Drop Gate has its own folder setting (Settings → Image Gin → Drop Gate → ImageKit folder for drop-gate uploads). Leave it empty to inherit the main upload folder.
Installable from the new Obsidian community portal
Obsidian retired the long-running PR-based submission queue (obsidianmd/obsidian-releases PRs are now 404'd) in favor of a hosted portal at community.obsidian.md. Image Gin 0.2.2 is the first version of the plugin published through the new portal — reachable from inside Obsidian via Settings → Community Plugins → Browse → search "Image Gin".
Sibling Lossless plugins shipped through the same portal-discipline pass: cite-wide 0.2.0 and perplexed 0.1.1.
Under the Hood
The substance of 0.2.x is the Drop Gate feature shipped in commit b6e7d7f (tagged 0.2.0). 0.2.1 and 0.2.2 are the two passes that took that code through Obsidian's marketplace-review gauntlet.
| Date | Version | Topic | Source |
| 2026-05-09 | 0.2.0 | Drop Gate feature — editor-drop + editor-paste interception, three-destination architecture (VaultDestination / ImageKitDestination / ImgurDestination behind a small DropGateDestination interface), deferred-promise modal pattern, re-entry guards for the vault re-dispatch loop, synchronous cursor capture before await, conflict detection with other drop-handler plugins | changelog/2026-05-09_01.md |
| 2026-05-10 → 2026-05-17 | 0.2.1 → 0.2.2 | ObsidianReviewBot cleanup — the lint pass required by the marketplace-review bot. Vault.delete() swapped to FileManager.trashFile() (Obsidian's documented best practice for user-visible deletions), async dropped on methods with no await expression, sentence-case audit on user-facing strings, plus a brand-name allowlist (Recraft, Magnific, Freepik, Ideogram, ImageKit, Imgur, WebP) so vendor product names with canonical casing pass obsidian/ui/sentence-case cleanly | context-v/plans/2026-05-10_Final-ObsidianReviewBot-Cleanup-Round.md |
| 2026-05-17 | 0.2.2 | Marketplace-portal submission discipline — fresh build (pnpm build) of the 0.2.1 lint-pass commits against current master HEAD (the 0.2.1 release shipped build artifacts from before the final lint fixes, so the bot was scanning stale code); strict three-digit semver alignment across manifest.json / package.json / versions.json; plain tag without v prefix (the new portal rejects v0.2.2-style); release published with main.js, manifest.json, and styles.css attached as binary release assets | release commit 18f7c64 |
For the broader version history (the 0.1.x line — Ideogram added, Magnific rebrand support, UX parity pass, Brand Template prompt wrapping) see 0.1.1.md, the sibling release narrative in this same directory.
What's Next
User-facing items either deferred from this release or surfaced by it:
Canvas support for the Drop Gate. The current handler narrows on
info instanceof MarkdownViewand bails on canvas drops. A parallel handler that acceptsMarkdownFileInfowould extend the feature to Obsidian canvases. Held until someone using canvases asks for it.Per-file / per-folder
imagery_policy:frontmatter gate. Something likeimagery_policy: always-confirmin a note's frontmatter would let specific folders or files override the global policy mode without changing settings. Holding to see whether always-on is friction-light enough not to need it.Filename / preview thumbnail in the Drop Gate modal. Right now the modal shows file name, size, and type as text only. A thumbnail preview would help when dropping a batch of similar-looking screenshots. Cosmetic; no rush.
Fourth destination provider. The
DropGateDestinationinterface is intentionally small (a class plus a settings panel). S3, Bunny CDN, Cloudinary, or an internal SharePoint-of-doom would be straightforward additions if a user need shows up. Not blocking anything.
References
Release on GitHub: https://github.com/lossless-group/image-gin/releases/tag/0.2.2
Install from Obsidian: Settings → Community Plugins → Browse → "Image Gin"
Drop Gate feature changelog (the substance of 0.2.0):
changelog/2026-05-09_01.mdMarketplace-cleanup plan that drove 0.2.1 → 0.2.2:
context-v/plans/2026-05-10_Final-ObsidianReviewBot-Cleanup-Round.mdPrior release narrative (0.1.1 — Ideogram + UX parity):
0.1.1.mdSibling-plugin releases shipped in the same marketplace-portal pass:
cite-wide 0.2.0,perplexed 0.1.1Inspiration / interception pattern for the Drop Gate:
gavvvr/obsidian-imgur-plugin— MIT-licensed plugin that pioneered the drag-confirm pattern in Obsidian; Image Gin's Drop Gate generalizes it to three destinations with vault-first defaults