loganjuhl14 downloadsAdds a native header button that copies the entire note's Markdown to the clipboard.
Copy All Note adds one native, icon-only action to every Obsidian Markdown view header. It copies the current note's raw Markdown—including a valid empty unsaved buffer—for quick pasting into agents, terminals, prompts, and other apps. It also registers Copy entire note as a command.
Copy All Note is available in Obsidian Community. Version 0.1.1 is also available on GitHub for manual installation.
You can also open the Community listing and select Add to Obsidian to open the plugin in the app, then install and enable it.
For manual installation, download main.js, manifest.json, and styles.css from GitHub release 0.1.1 and place them in:
<Vault>/.obsidian/plugins/copy-all-note/
Alternatively, extract the release ZIP so those three files end up in the same copy-all-note folder. Then reload Obsidian, open Settings → Community plugins, and enable Copy All Note.
Node.js 22.22.2 or newer is required for the development toolchain.
npm ci
npm run release:prepare
Copy the generated dist/copy-all-note/ folder to <Vault>/.obsidian/plugins/, reload Obsidian, and enable the plugin.
The plugin copies Markdown, not rendered HTML or preview text. It uses the current view buffer whenever it is a string—even when that string is empty—so unsaved deletions are never replaced with stale disk content.
Copying an empty payload requires the modern Clipboard API. If that API is unavailable or rejects the request, the plugin reports a copy failure and leaves the clipboard unchanged; the legacy fallback cannot reliably copy empty text.
Obsidian may normalize on-disk CRLF line endings to LF and remove a leading byte-order mark (BOM) before providing that buffer. Copy All Note works with the text Obsidian supplies; it does not guarantee preservation of the original file bytes. When adding a title, it uses the supplied buffer's line-ending style.
Copied note after success.copy): use a non-empty Lucide icon name. Invalid names fall back to a clipboard icon.When Prepend title and Include frontmatter are both enabled, the YAML block remains at the start of the copied Markdown and the H1 is inserted after its closing delimiter. The copied frontmatter therefore remains valid when pasted as a new note.
The action uses Obsidian's native .clickable-icon.view-action header slot and inherits the active theme's size, spacing, hover treatment, and mobile touch target. It does not add a document toolbar or modify the editor, inline title, Properties, or note body.
Native visibility rules still apply. If a theme hides the whole view header, use the command, a hotkey, or the mobile toolbar. For Cupertino, the plugin places its own action at the beginning of the native action row so the theme's positional mode-switcher rules remain stable.
Copy All Note does not transmit or persist note text. When you invoke a copy action, it processes the current note locally and copies it to the clipboard. If the modern Clipboard API is unavailable or rejected, the plugin temporarily places nonempty text in an off-screen textarea in the current Obsidian window to invoke the browser's copy operation, then immediately removes it.
Clipboard contents and note text can be sensitive. Redact both before attaching diagnostics to a public issue. See SECURITY.md for private vulnerability reporting.
npm ci
npm run dev
Before opening a pull request or preparing a release, run:
npm run check
check runs the Obsidian-oriented ESLint rules, TypeScript, automated tests, a minified production build, and release-metadata validation. The tests cover empty unsaved buffers, CRLF/frontmatter formatting, Reading view commands, split panes, pop-outs, clipboard fallback cleanup, action ownership after reload, debounced settings persistence, and Cupertino ordering.
See CONTRIBUTING.md for the manual test matrix and docs/RELEASING.md for the draft-release process.
Use GitHub Issues for reproducible bugs and focused feature requests. Do not include private note or clipboard contents.
MIT © 2026 Logan McKinley Juhl