Marcus Breiden23 downloadsScheduled Vault Import / Export - Files Move. You don't have to. Local Filesystem <=> Vault - Import / Export — import voice memos / snippets / etc. into your inbox, export folders / tags / notes to external locations.
Scheduled file ferry between your Obsidian vault and local filesystem paths. Voice memos / snippets / captures land in your inbox; folders / tags / notes export out to disk. Local-first, no daemon, no network surface.
Part of the MiYo family. The plugin is referred to as MiYo Hakobi in the Obsidian community-plugin index and in the settings UI; "Hakobi" alone is used as a short form throughout this README and the source.
Most "ferry the files" tooling either (a) lives outside Obsidian and has to be told about your vault separately (Hazel, launchd, cron), or (b) lives inside Obsidian and brings a cloud API along for the ride (Dropbox SDK, Google Drive OAuth, S3 keys). Hakobi is built around a different default:
everyMinutes schedule.If you want voice memos, capture-app exports, or Hazel-bait folders to land in your vault on a schedule — and the reverse for tagged or foldered exports — without inviting a cloud API, daemon, or telemetry, Hakobi is for you. External MCP access for your vault is the job of MiYo Kado.
import (FS → vault) and export (vault → FS)folder (recursive vault subtree), tag (one or more tags with any / all match), note (single vault note)everyMinutes cadence; one timer per enabled rulemtime to stay quiet for stabilityCheckMs before picking it up; no half-written filesio-timeout) instead of force-materializedenabledOnThisDevice flag stored in a non-synced sibling filewould-write / would-skip / would-suffix decisions instead of touching files| Document | Audience | Content |
|---|---|---|
| Installation | Everyone | Community Plugins, BRAT, manual install |
| Configuration Guide | Vault owners | Settings UI walkthrough — General, Import, Export subtabs |
| Example Configurations | Vault owners | Common rule recipes — voice memos, daily journal, tag bundles |
| How It Works | Vault owners + contributors | Architecture, scheduler, audit log, lifecycle |
| Commands | Vault owners | The six command-palette entries and what they do |
| Audit Log | Vault owners | Format, retention, allowlist, NDJSON inspection examples |
| Per-device Enablement | Vault owners | Why your synced rule didn't run; cross-device coordination model |
| Troubleshooting / FAQ | Vault owners | Common issues with concrete fixes |
| Development Guide | Contributors | Build, test, lint, branching, architecture rules |
| Privacy Policy | Everyone | Network surfaces, local storage, audit-log allowlist, supply chain |
everyMinutes, choose copy / move and skip / suffix, saveeveryMinutes, plus a 3-second initial-run grace at plugin start)For ready-made recipes — voice memos, journal export, tag-bundle publish — see Example Configurations.
General subtab — header section (plugin identity + hanko) plus global settings (per-file IO timeout, audit retention / size, stability check window) and the audit-log inspect / purge buttons.
Import subtab — list of import rules. Each row shows the per-device toggle, name + summary, badges (every Nm · copy/move · skip/suffix · mirror/flatten), and an overflow ⋯ menu (Edit / Run now / Run dry-run / Delete).
Export subtab — same shape as Import. Source-type can be folder (recursive vault subtree), tag (one or more tags with any/all match), or note (single vault note).
These are ideas under consideration, not commitments:
Export via rule… entry on notes in the file explorer (PRD F12, deferred from v0.1).NodeFs → VaultIo → AuditLog + Rotation → RuleStore → DeviceStore
→ InFlightRegistry → ImportRunner + ExportRunner → StatusBar
→ Scheduler → SettingsTab → CommandRegistry
Layered, downward-only dependency flow. The domain layer (validation, sanitization) is pure — no obsidian import, no node:fs — so the entire validation model is testable without either runtime. See How It Works for the full architecture.
The following are explicitly out of scope for v0.1 and will probably never arrive:
isDesktopOnly: true.everyMinutes.Hakobi is part of MiYo, a small family of Obsidian-adjacent tools focused on giving you control over what your assistants and your filesystem can see and do. Hakobi is the file-ferry component — the piece that moves bytes between your vault and disk on a schedule. Sibling components handle different concerns:
Live issues live in GitHub Issues.
If MiYo Hakobi is useful to you and you want to help me keep building, you can support development via:
Issues and pull requests are also very welcome.
Contributions are welcome. The short version:
main. Use a descriptive branch name (e.g. fix/import-stability-check, feat/file-menu-export).npm run build, npm test, and npm run lint before pushing.feat:, fix:, docs:, refactor:. Release notes are generated from commit history.main and reference the issue. Small, reviewable diffs get merged fastest.For security issues, please do not open a public issue — email [email protected] instead.