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:
- Web URLs with automatic metadata extraction
- Code snippets for quick access and reuse
- Shell commands with execution capabilities
- Markdown documents with live rendering
- Plain text with template interpolation
- Local files and directories
- Semantic embeddings for AI-powered search
- Developer-focused: Integrates seamlessly with your workflow and toolchain
- Multifunctional: Handles many content types with context-aware actions
- Intelligent: Full-text and semantic search capabilities
- Privacy-focused: Local database, no cloud dependencies unless enabled
- Fast: 20x faster than similar Python tools
- Built-in LSP server: Use
bkmr lspfor VS Code, Vim, Emacs - automatic snippet completion with language-aware filtering - Neovim Plugin: Visual interface with Telescope integration and zero configuration
- IntelliJ Plugin: JetBrains Marketplace plugin for all IDEs
See 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"Demos:
# Via cargo
cargo install bkmr
# Via pip/pipx/uv
pip install bkmr
# Via brew
brew install bkmrSee 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 --fzfQuick 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:
- Home - Wiki overview and navigation
- Quick Start - 5-minute introduction
- Installation - Installation methods and troubleshooting
- Core Concepts - Understanding tags, system tags, and bookmarks
- Basic Usage - Common daily operations
- Search and Discovery - FTS, tags, fuzzy finder, semantic search
- Content Types - URLs, snippets, shell scripts, markdown, environment variables
- Shell Scripts - Interactive execution and shell function stubs
- Configuration - Complete configuration reference
- Template Interpolation - Jinja2 dynamic content
- File Import and Editing - Frontmatter, base paths, smart editing
- Semantic Search - OpenAI-powered AI search
- Editor Integration - LSP server and editor plugins
- Advanced Workflows - Power user techniques
- Troubleshooting - Common issues and solutions
- Development - Contributing and building from source
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-interpolationFeatures: 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
Wayland Support: Native Wayland clipboard support for modern Linux desktops.
- Supported compositors: Hyprland, Sway, and other compositors supporting
wlr-data-control-unstable-v1 - Automatic detection: Falls back to X11/XWayland if unavailable
- Compatibility: Check your compositor at wayland.app
git clone https://github.com/sysid/bkmr.git
cd bkmr
cargo build --releaseIMPORTANT: All tests must be run single-threaded:
# Run tests (REQUIRED: single-threaded)
cargo test -- --test-threads=1
# Or use Makefile
make testWhy 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:
- GitHub: https://github.com/sysid/bkmr
- Issues: https://github.com/sysid/bkmr/issues
- Wiki: https://github.com/sysid/bkmr/wiki
- Discussions: https://github.com/sysid/bkmr/discussions
For developers: Remember to always run tests with --test-threads=1 to avoid database conflicts.

