KBIntake is a Windows-first local vault importer designed to simplify the process of moving files and folders into a knowledge-base vault from PowerShell or via the Windows Explorer right-click menu. It automates file imports, tracks jobs in an auditable SQLite history, and supports multiple vault targets for organized storage.
Key Features:
Import Templates: Define custom templates with subfolders, tags, and frontmatter to streamline organization.
Watch Mode: Monitor directories for new files with debounce and extension filters for automatic importing.
TUI Settings: Access interactive settings via a text-based user interface (TUI) for easy configuration.
Obsidian Integration: Directly import files into Obsidian vaults and auto-open notes post-import for seamless workflows.
SQLite Job History: Track all imports with detailed records, enabling auditing and batch management.
Ideal for individuals who collect and organize notes, PDFs, screenshots, and reference materials throughout the day. KBIntake saves time by automating file imports, reducing manual copying, and ensuring files are stored in a consistent, organized manner. It is particularly beneficial for users of Obsidian or those managing multiple knowledge vaults.
KBIntake can be installed via winget once the package is available through Microsoft's Winget repository.
README
KBIntake
KBIntake is a Windows-first local vault importer. It lets you send files and folders into a knowledge-base vault from PowerShell or from the Windows Explorer right-click menu, while keeping an auditable SQLite job history.
KBIntake is built for people who collect notes, PDFs, screenshots, exports, and reference files throughout the day and want a repeatable way to move them into a local vault. Instead of manually copying files, checking for duplicates, renaming conflicts, and remembering where each file went, KBIntake records every import as a job and stores the resulting file manifest.
The default target is a local folder vault, such as:
C:\Users\\Documents\KBIntakeVault
KBIntake does not require a cloud service. Configuration, queue state, manifests, logs, and the default vault are local to your Windows profile.
Edit %LOCALAPPDATA%\kbintake\config.toml — add obsidian_vault to the target and enable auto-open:
[[targets]]
target_id = "obsidian"
name = "obsidian"
root_path = 'C:\Users\\Documents\YourVaultName'
status = "active"
obsidian_vault = "YourVaultName"
[import]
auto_open_obsidian = true
obsidian_vault must match the vault name shown in Obsidian's sidebar.
Usage
# Import and open in Obsidian
kbintake import note.md --process --open
# Import without opening
kbintake import note.md --process
# Import from clipboard
kbintake import --clipboard --process
On first run, KBIntake generates default templates. Imported .md files go to vault/notes/, PDFs to vault/documents/, code files to vault/snippets/, etc. See docs/CONFIGURATION.md for the full template list.
Features
Explorer cascading right-click menu with Import / Queue / Settings sub-items
Windows 11 native top-level context menu via COM DLL
no-console Explorer flow through kbintakew.exe
Windows toast notifications for success, duplicate, and failure cases
terminal import flow with optional immediate processing
SQLite-backed batches, items, manifests, and audit events
SHA-256 hashing and per-target duplicate detection
deterministic filename conflict handling without overwriting existing files
multiple vault targets with add/list/show/rename/remove/set-default commands
import template system with variable interpolation and conditional rendering
v2 multi-condition routing rules with template binding
per-target default subfolder configuration
Markdown frontmatter injection with template-defined fields
--tags quick tag injection merged with template tags
--clipboard import file paths from Windows clipboard
dry-run preview with table or JSON output
job list/show with table or JSON output
retry failed jobs
hash-safe undo for imported batches
per-target vault statistics
vault audit command for orphan, missing, duplicate, and malformed frontmatter detection
Watch Mode: monitor directories for new files with debounce and extension filters
TUI interactive settings (kbintake tui)
Obsidian URI integration with auto-open after import
zh-CN (Chinese) localization (CLI, toast, TUI, Explorer context menu)
Windows Service mode for background queue processing
release workflow that publishes installer and binary assets
winget manifest copy stored under installer/winget/
Common Commands
kbintake --version
kbintake version
kbintake doctor [--fix] [--migrate]
kbintake config show
kbintake config validate
kbintake config set-target [--name ]
kbintake config-show
kbintake targets list [--include-archived]
kbintake targets show
kbintake targets add
kbintake targets rename
kbintake targets remove [--force]
kbintake targets set-default
kbintake import [--target ] [--template ] [--tags "a,b"] [--clipboard] [--process] [--dry-run] [--json] [--open]
kbintake jobs list [--status ] [--limit ] [--json] [--table]
kbintake jobs show [--json] [--table]
kbintake jobs retry
kbintake jobs undo [--force]
kbintake vault stats [--target ] [--json]
kbintake vault audit [--target ] [--fix] [--json]
kbintake watch [--path ]
kbintake tui
kbintake obsidian open --vault
kbintake explorer install [--exe-path ] [--icon-path ] [--queue-only]
kbintake explorer uninstall
kbintake agent
kbintake service install
kbintake service start
kbintake service stop
kbintake service uninstall
kbintake service status
Configuration
Runtime state lives in %LOCALAPPDATA%\kbintake by default:
For terminal use, kbintake import --process queues and processes immediately.
For passive background processing, install the Windows Service from an elevated Administrator PowerShell:
kbintake service install
kbintake service start
kbintake service status
To remove it:
kbintake service stop
kbintake service uninstall
Service mode is implemented and validated for install/start/queue processing/logging/stop/uninstall. Reboot-resume validation remains a release-checklist manual item.
Troubleshooting
Start with:
kbintake doctor
Common fixes:
Missing target directory: kbintake doctor --fix
Wrong vault target: kbintake config set-target
Explorer menu missing: kbintake explorer install
Schema needs migration: kbintake doctor --migrate
kbintake not found after install: open a new PowerShell window
Service install/start access denied: use Administrator PowerShell
Build From Source
Install Rust from , then from the repository root:
cargo build --release --locked --bins
To build the installer locally, install NSIS and run from the repository root: