Jason O'Donnell16 downloadsSync projects from your BYOK writing device into your vault.
Sync writing from your Bring Your Own Keyboard (BYOK) device into your Obsidian vault.
When you run a sync with the BYOK connected in disk mode, the plugin finds the device and copies each project's documents into a folder in your vault. Each project becomes a subfolder, and each document becomes a note.
BYOK device Your vault
Projects/Foo/Bar.txt ──▶ BYOK/Foo/Bar.md
BYOK by default).The plugin only syncs when you ask it to. It doesn't watch for the device or sync on startup.
| Setting | Description |
|---|---|
| Target folder | Vault folder that projects are synced into. Defaults to BYOK. |
| Sync all projects | Turn off to pick which projects to sync. The list shows the projects found on your device. |
| Convert indentation | The BYOK saves each tab as 5 spaces. When on, leading spaces are converted to match your editor's indentation settings (Settings → Editor → Indent using tabs and Tab indent size). |
| Note extension | Save documents as Markdown notes (.md) or plain text (.txt). |
| Mount path override | Full path to the mounted device, if automatic detection doesn't find it. |
Sync is one-way, from the device to your vault. The plugin never writes to the device.
Name (BYOK <date time>).md.The plugin looks for a mounted volume that contains a Projects folder and a Sync/library.json file, which is how the BYOK lays out its storage. It checks these locations:
/Volumes/*/media/<user>/*, /run/media/<user>/*, and /mnt/*D: through Z:If your device is mounted somewhere else, set Mount path override.
Projects folder. It only reads from the device and never modifies it. This is required because the BYOK appears as a separate USB drive, outside your vault.Desktop only (macOS, Windows, Linux). The plugin uses Node.js file system APIs, which aren't available on mobile.
make install # install dependencies
npm run dev # watch and rebuild main.js
make build # type-check and build for production
make lint
make deploy VAULT="/path/to/vault" # build and install into a vault
Write the release notes in a Markdown file, then run:
make release VERSION=1.0.1 NOTES=notes.md
This checks that main is clean and in sync with origin/main. It then sets the version in manifest.json, versions.json, and package.json, lints and builds, commits, and pushes main along with an annotated 1.0.1 tag containing the notes. Pushing the tag runs the release workflow, which builds the plugin and publishes the GitHub release with main.js and manifest.json attached. If you leave out NOTES, the release notes are just "Release 1.0.1".
Don't create releases by hand on GitHub. If one already exists for the tag, the workflow attaches the files to it, but it doesn't update its notes.