| Crates.io | bkmr |
| lib.rs | bkmr |
| version | 6.5.0 |
| created_at | 2023-02-08 06:43:46.961699+00 |
| updated_at | 2026-01-24 10:40:44.264156+00 |
| description | A Unified CLI Tool for Bookmark, Snippet, and Knowledge Management |
| homepage | https://github.com/sysid/bkmr |
| repository | https://github.com/sysid/bkmr |
| max_upload_size | |
| id | 779423 |
| size | 1,424,584 |
Combine any snippet (code, urls, markdown, text) with powerful search, interpolation and execution.
bkmr - selected crate of the week 482 - is a fast, feature-rich command-line tool that extends bookmark management, snippet handling, markdown rendering, script execution and more.
Organize, find, and apply your various content types:
Centralize your data in bkmr's database (add) or keep it in your filesystem
(import-files) (see).
Example:
Both options provide the full benefits of bkmr.
bkmr lsp for VS Code, Vim, Emacs - automatic snippet completion with language-aware filteringSee Editor Integration for complete documentation.
# Quick fuzzy search with interactive selection
bkmr search --fzf
# Add URL with automatic metadata extraction
bkmr add https://example.com tag1,tag2
# Store code snippet
bkmr add "SELECT * FROM users" sql,_snip_ --title "User Query"
# Shell script with interactive execution
bkmr add "#!/bin/bash\necho 'Hello'" utils,_shell_ --title "Greeting"
# Render markdown in browser with TOC
bkmr add "# Notes\n## Section 1" docs,_md_ --title "Project Notes"
# Import files with frontmatter
bkmr import-files ~/scripts/ --base-path SCRIPTS_HOME
# AI-powered semantic search
bkmr --openai sem-search "containerized application security"
Bookmarks:

Snippets:

Demos:
# Via cargo
cargo install bkmr
# Via pip/pipx/uv
pip install bkmr
# Via brew
brew install bkmr
See Installation Guide for detailed instructions and troubleshooting.
# Generate configuration
bkmr --generate-config > ~/.config/bkmr/config.toml
# Create database
bkmr create-db ~/.config/bkmr/bkmr.db
# Optional: Configure location
export BKMR_DB_URL=~/path/to/db
# Add your first bookmark
bkmr add https://github.com/yourusername/yourrepo github,project
# Search and find
bkmr search github
# Interactive fuzzy search
bkmr search --fzf
Quick Start Guide: See the Quick Start for a 5-minute tutorial.
| Command | Description |
|---|---|
search |
Search across all content with full-text and tag filtering |
sem-search |
AI-powered semantic search using OpenAI embeddings |
add |
Add new content (URLs, snippets, files, shell commands, etc.) |
open |
Launch or interact with stored items (supports script arguments) |
edit |
Smart editing: auto-detects file-imported bookmarks |
import-files |
Import files/directories with frontmatter parsing |
tags |
View and manage your tag taxonomy |
set-embeddable |
Configure items for semantic search |
Complete command documentation: See Basic Usage for detailed examples.
bkmr intelligently handles different content types with appropriate actions:
| Content Type | Default Action | System Tag |
|---|---|---|
| URLs | Open in browser | (none) |
| Snippets | Copy to clipboard | _snip_ |
| Shell Scripts | Interactive edit then execute | _shell_ |
| Environment Variables | Print for sourcing in shell | _env_ |
| Markdown | Render in browser with TOC | _md_ |
| Text Documents | Copy to clipboard | _imported_ |
| Local Files | Open with default application | (none) |
Learn more: Content Types | Core Concepts
Comprehensive documentation is available in the bkmr Wiki:
Access your snippets directly within your editor without context switching.
bkmr-nvim provides visual interface with zero configuration.
{
"sysid/bkmr-nvim",
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
require("bkmr").setup() -- Zero config required!
end,
}
Features: Visual snippet browser, in-editor editing, automatic LSP setup, custom commands
Compatible with VS Code, Vim, Emacs, Sublime, and any LSP-compatible editor.
# Start LSP server
bkmr lsp
# Disable template interpolation if needed
bkmr lsp --no-interpolation
Features: Automatic completion, language-aware filtering, universal snippets, template interpolation
bkmr-intellij-plugin for all JetBrains IDEs.
Features: Seamless LSP integration, Tab navigation, works in IntelliJ IDEA, PyCharm, WebStorm, CLion, RustRover, and all JetBrains IDEs
Complete documentation: Editor Integration
Linux Clipboard: Uses external tools for reliable clipboard persistence.
wl-copy from wl-clipboard packagexclip (preferred) or xsel as fallbackWAYLAND_DISPLAY environment variablegit clone https://github.com/sysid/bkmr.git
cd bkmr
cargo build --release
IMPORTANT: All tests must be run single-threaded:
# Run tests (REQUIRED: single-threaded)
cargo test -- --test-threads=1
# Or use Makefile
make test
Why single-threaded? Tests share SQLite database and environment variables. Parallel execution causes race conditions.
See Development for complete contributor guide.
We welcome contributions! Please check our Contributing Guidelines to get started.
Resources:
For developers: Remember to always run tests with --test-threads=1 to avoid database conflicts.