Teams writing documentation in Markdown handle the same chore on every screenshot: save the file, name it, move it into the repository, then type out the link. Screenshot-heavy docs also make repository history grow quickly. otak-paste reduces the workflow to a single paste and keeps PNG assets smaller by default with local, lossless optimization, no network access, and no data collection.
Quick Start
- Install from the VS Code Marketplace.
- Open a saved Markdown file.
- Copy a PNG, or take a screenshot.
- Paste with Ctrl+V (Cmd+V on macOS).
On Windows, otak-paste reads the image directly from the clipboard on Ctrl+V, optimizes the PNG when it can save space, writes the image next to your file, and inserts the link:

The image alt text is pre-selected, so you can type a real description right away.
Capabilities
- One-keystroke flow:
Ctrl+V / Cmd+V in a Markdown editor runs otak-paste first for clipboard PNGs, then falls back to VS Code's normal paste for text and other clipboard content.
- Local-first assets: images are written to an
assets/ folder beside the current file, never scattered across the workspace.
- Smaller Markdown repositories: pasted screenshots are losslessly recompressed before saving, which can reduce asset size and future Git diffs without changing the visible image.
- Unique filenames: each file receives a random 16-character hex name such as
4f8c9a01d2b3e4f5.png.
- Configurable optimization: keep the default
lossless mode, or choose none when you need byte-for-byte clipboard output.
- Undo-friendly cleanup: undoing the paste removes both the Markdown image link and the PNG file created for that paste.
- Editable alt text: the alt text is selected on paste, ready to describe.
- Non-intrusive: no success pop-ups; it stays out of your workflow.
- Localized interface: UI messages follow your VS Code display language.
How It Works
When a PNG is on your clipboard and the active editor is a saved Markdown file, otak-paste:
- Resolves the Markdown file's directory.
- Creates an
assets/ folder if one does not exist.
- Generates a random 16-character hex filename.
- Optimizes the PNG when
otakPaste.pngOptimization allows it and the result is smaller.
- Writes the pasted PNG into
assets/.
- Inserts the Markdown image link at the cursor.
Anything outside those conditions is handed back to VS Code's default paste behavior. otak-paste only handles the specific case it was built for.
Undo Behavior
When you undo a paste with Ctrl+Z (Cmd+Z on macOS), VS Code removes both parts of the same paste operation:
- the Markdown image link inserted in the editor
- the PNG file that otak-paste created for that paste
The assets/ folder itself may remain if it was created for the first paste. otak-paste does not scan for or delete unrelated orphaned images, so files from older paste operations or manually edited links are left alone.
Settings
PNG optimization is enabled by default because documentation screenshots often contain compressible metadata or under-compressed image data. otak-paste only keeps the optimized result when it is smaller; otherwise it writes the original PNG bytes.
| Setting |
Default |
Values |
otakPaste.pngOptimization |
lossless |
lossless recompresses PNG data and removes non-visual metadata while preserving pixels; none saves the bytes exactly as received from VS Code |
Supported Scenarios
| otak-paste handles |
Handed back to VS Code's default |
A saved, local .md file is active |
Untitled, virtual, or remote-only documents |
| The clipboard holds PNG image data |
Non-PNG data such as JPEG, GIF, or WebP |
| Direct paste into a Markdown editor |
Copied image files rather than image data |
Only local file: Markdown documents are supported in v1.
Security & Privacy
otak-paste is designed to run safely inside locked-down, regulated, and air-gapped environments.
- 100% local processing: images are handled entirely on your machine.
- Local optimization only: PNG recompression runs inside the extension host and never uploads image data.
- Zero network access: it never uploads images or transmits clipboard data anywhere.
- No telemetry: no analytics, usage tracking, or external calls of any kind.
- No account or API key: nothing to sign in to, nothing to provision.
- Scoped file writes: it only writes PNGs into the
assets/ folder beside the active file.
- Open source, MIT-licensed: the full implementation is auditable on GitHub.
- Settings-safe: it never changes your VS Code configuration on your behalf.
Language Support
The interface follows your VS Code display language:
English · 日本語 · 简体中文 · 繁體中文 · 한국어 · Tiếng Việt · Español · Português (BR) · Français · Deutsch · हिन्दी · Bahasa Indonesia · Italiano · Русский · العربية · Türkçe
Requirements
- VS Code 1.125.0 or newer
- A saved, local Markdown file
- PNG image data on the clipboard
Installation
Install from the VS Code Marketplace, or run:
ext install odangoo.otak-paste
Build from source (VSIX)
npm install
npm run package
code --install-extension otak-paste-0.3.0.vsix
Reload VS Code afterwards if the Markdown editor was already open.
Troubleshooting
- Nothing happens when I paste: confirm the file is saved and the clipboard holds PNG image data.
- VS Code's built-in paste takes over: set
"markdown.editor.filePaste.enabled": "never" in that workspace and try again. otak-paste does not change this setting for you.
- The image was saved in an unexpected location: the
assets/ folder is created next to the active Markdown file, not at the workspace root.
- A JPEG / GIF / WebP was not handled: v1 handles PNG clipboard data only.
More VS Code extensions by odangoo:
| Extension |
Description |
| otak-proxy |
One-click proxy switching for VS Code, Git, npm, and integrated terminals |
| otak-monitor |
Real-time CPU, memory, and disk usage in the status bar |
| otak-committer |
AI-assisted commit messages, pull requests, and issues |
| otak-clipboard |
Copy a folder or the current tab to your clipboard in two clicks |
| otak-clock |
Dual time-zone clock for the status bar |
| otak-pomodoro |
A Pomodoro focus timer built into VS Code |
| otak-restart |
Quick Extension Host and window restart from the status bar |
| otak-zen |
A calm, distraction-free Zen mode for VS Code |
| otak-lsp |
Japanese morphological analysis with grammar checks, semantic highlights, and hovers |
| otak-usage |
At-a-glance usage statistics for VS Code |
License
Released under the MIT License.