Frank Wang7 downloadsCopy notes with attachments between vaults, repair pasted math and tables, and copy local file paths.
Copy notes across vaults, with attachments and links intact. Repair pasted math and tables.
跨库复制,附件随行、链接保留;粘贴公式与表格,自动修复。
English | 简体中文 · GitHub repository · Downloads · Report an issue
NoteParcel helps you reuse your research in Obsidian: copy selected notes and their attachments to another vault, update links between copied files, and turn math and tables from ChatGPT or the web into readable Markdown. Copy a local file path whenever you need to reference a note in another app.
NoteParcel 让研究资料更方便地复用:将选中的笔记连同附件复制到另一个 Vault,自动更新已复制文件之间的链接;把 ChatGPT 或网页中的公式、表格转为可读的 Markdown;需要在其他应用引用文件时,右键即可复制本地路径。
Desktop only · Obsidian 1.7.2+ · Chinese interface · All processing stays local. No API key, account, telemetry, or uploads.
仅桌面端 · Obsidian 1.7.2 及以上 · 中文界面 · 全部在本地处理。 无需 API 密钥或账号,不采集遥测、不上传内容。
Cross-window drag-and-drop is experimental. Use the context-menu copy workflow if it does not work in your setup.
跨窗口拖拽仍为实验性功能;如无法正常工作,请使用右键菜单复制。
Install NoteParcel from Settings → Community plugins → Browse, or open the community listing and select Add to Obsidian.
在“设置 → 第三方插件 → 浏览”中搜索 NoteParcel 并安装,或打开社区插件页面,点击 Add to Obsidian。详细中文操作步骤请见完整中文指南。
For manual installation from GitHub / 从 GitHub 手动安装:
vault-bridge-toolkit-0.2.4.zip from Releases. Do not use the automatically generated Source code archive.vault-bridge-toolkit folder into your vault's .obsidian/plugins/ directory.main.js, manifest.json, and styles.css are directly inside .obsidian/plugins/vault-bridge-toolkit/.To upgrade, replace the plugin files and keep your existing data.json. Reload the plugin or restart Obsidian. Upgrading does not modify existing notes.
Name change / 更名说明: Formerly VaultBridge Toolkit, renamed in 0.2.3. The plugin ID vault-bridge-toolkit, installation folder, saved settings, command IDs, and GitHub repository remain the same; 0.2.2 users can update in place. 本项目原名“库桥工具箱”,现为“笔记包裹”;插件标识及安装目录保持不变,0.2.2 用户可直接升级并保留设置和快捷键。
Upgrading from 0.2.1 or earlier: the old vault-bridge ID belongs to a different author's community plugin. This project now uses vault-bridge-toolkit; its GitHub repository stays the same. Disable this project's old installation, install the new folder, and optionally copy your own old data.json into the new folder before enabling it. Do not enable both copies. Reassign custom hotkeys to the new plugin commands. Do not install the unrelated community entry named “Vault Bridge” as an update to this project. Existing note and attachment paths are unchanged.
Right-click a file or folder and choose 复制本地绝对路径 (Copy local absolute path). For the active note, use 复制当前文件本地路径 in the command palette. The copied path includes the file extension and uses your operating system's native format.
If a vault is missing, open it once with Obsidian or expand the manual-add section. Destination vaults must have a default .obsidian configuration folder.
Copying a folder preserves its name, hierarchy, internal attachments, and empty folders. Local attachments referenced outside the selected content are collected into _attachments/vault-bridge/ under the destination folder. Shared attachments are copied once. Conflicts become name (1).ext, name (2).ext, and so on.
Wiki links, embeds, aliases, image widths, heading/block references, PDF page fragments, and ordinary/reference-style Markdown links are supported. Copied wiki links use full paths within the destination vault; Markdown links use relative paths. Links to other notes are not followed recursively. Uncopied links are left intact and reported; they may resolve to a different same-named note in the target vault.
The source is never deleted or changed. Existing destination files are never overwritten. A failed copy attempts to remove only the files and empty folders created by that operation. Forced termination or disk errors can prevent complete rollback.
Enable NoteParcel in both vaults (drag support was introduced in VaultBridge 0.2.0). Drag notes, a folder, or multiple selected items from the source file explorer into the destination vault's file explorer:
Only dropping into the other vault's file explorer triggers copying. Merely leaving the source window does not. Same-vault dragging keeps Obsidian's normal behavior. Disable cross-vault dragging in settings if needed.
This feature depends on Obsidian's file explorer structure and desktop drag behavior. Simulated events have been tested; real cross-window operation has not been verified. Use the context-menu workflow if dragging does not work.
Normal editor paste automatically recognizes:
\(x^2\) → $x^2$.\[...\] → a display-math block with standalone $$ delimiters.[ \boxed{...} ], (P(\theta)), or (P(D)), when balanced brackets contain clear mathematical syntax.For content already in a note, run 修复当前笔记的公式 (Repair math in current note). For selected text, run 修复选中的公式和表格 (Repair selected math and tables). Each conversion uses one editor change and can be undone once. Automatic conversion can be disabled in settings.
Code blocks, inline code, frontmatter, and existing dollar-delimited math are protected. File/image pastes and paste events already handled by another plugin are left alone.
No network requests, payments, accounts, or API keys are required by the plugin. It has no telemetry.
To discover your vaults, NoteParcel reads Obsidian's application-level obsidian.json registry outside the current vault. It does not scan your disk. It also reads the selected source files and attachments, lists folders in the chosen destination vault, and writes copies there. Personal paths and destination preferences are saved only in the plugin's local data.json, which is excluded from this repository.
The registry is an internal Obsidian format; if it changes, use manual entry. Source files outside the source vault, symbolic links, configuration folders, .git, and .trash are excluded from copying.
Use Node.js 22 and the pnpm version specified in package.json:
corepack enable
pnpm install --frozen-lockfile
pnpm check
pnpm package
pnpm dev watches source changes. pnpm check runs TypeScript checking, tests, and a build. pnpm package creates the installable ZIP in dist/.
Source modules separate event integration, UI, vault discovery, dragging, copy planning/execution, and content conversion. File-copy tests use temporary vaults, not personal notes.
Created by Yanlu Wang / FrankWangTHU.
MIT License. Bundled dependency licenses are included in THIRD_PARTY_NOTICES.md and the built JavaScript.