Skip to main content

Super fast bookmark manager with semantic full text search'

Project description

rsenv logo

Crates.io Crates.io Docs.rs Build Status

Combine any snippet (code, urls, markdown, text) with powerful search, interpolation and execution.

Beyond Bookmarks and Snippets: A CLI Knowledge Management System

bkmr reborn

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 immediate execution capabilities
  • Markdown documents with live rendering, incl. TOC
  • Plain text with Jinja template interpolation
  • Local files and directories integration
  • Semantic embeddings for AI-powered search

Centralize your data in bkmr's database (add) or keep it in your filesystem (import-files) (see).

Example:

  • bookmarks, links short snippets go into the database
  • large markdown documents or scripts stay where they are and only references go into DB

Both options provide the full benefits of bkmr.

Why bkmr?

  • 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

NEW: Editor Integrations!

  • Built-in LSP server: Use bkmr lsp for 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 Examples

# 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"

Screenshots

Bookmarks: bookmarks

Snippets: fzf-snippets

Demos:

Getting Started

Installation

# 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.

Initial Setup

# 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

First Use

# 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 Reference

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.

Smart Content Actions

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

Documentation

Comprehensive documentation is available in the bkmr Wiki:

Getting Started

Core Features

Advanced Topics

Reference

Editor Integrations

Access your snippets directly within your editor without context switching.

Neovim Plugin (Recommended)

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

Built-in LSP Server

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

IntelliJ Platform Plugin

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

Platform Compatibility

Linux Clipboard: Uses external tools for reliable clipboard persistence.

  • Wayland: Uses wl-copy from wl-clipboard package
  • X11: Uses xclip (preferred) or xsel as fallback
  • Auto-detection: Detects display server via WAYLAND_DISPLAY environment variable

Development

Building from Source

git clone https://github.com/sysid/bkmr.git
cd bkmr
cargo build --release

Running Tests

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.

Community and Contributions

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.

Project details


Release history Release notifications | RSS feed

This version

6.6.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bkmr-6.6.1.tar.gz (405.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bkmr-6.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

bkmr-6.6.1-cp313-cp313-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

bkmr-6.6.1-cp313-cp313-macosx_10_12_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

bkmr-6.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

bkmr-6.6.1-cp312-cp312-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

bkmr-6.6.1-cp312-cp312-macosx_10_12_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

bkmr-6.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

bkmr-6.6.1-cp311-cp311-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

bkmr-6.6.1-cp311-cp311-macosx_10_12_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

bkmr-6.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

bkmr-6.6.1-cp310-cp310-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

bkmr-6.6.1-cp310-cp310-macosx_10_12_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file bkmr-6.6.1.tar.gz.

File metadata

  • Download URL: bkmr-6.6.1.tar.gz
  • Upload date:
  • Size: 405.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.12.6

File hashes

Hashes for bkmr-6.6.1.tar.gz
Algorithm Hash digest
SHA256 f621a920c9aa297444a61f0c8d78502787cf39a98a576b23fe5bc51f6edb8a23
MD5 c7176e746eece78930b19def09850d4c
BLAKE2b-256 38727d34fa202fb81e80e3f1d0b8a8f81fb4debc0d3f7c4785d23462822c9c30

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a5991a86d359579534d273b44b9a3bdf6927163d9668c0a69b8320f20f9aa2e
MD5 b874b9313f198e91ba6e120bc49e7c24
BLAKE2b-256 c00cb07a4db6e0bb3211ee2083d419c9cd395e9b13629dc783086cd1cc6d07dd

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f7ad129b01cf030be53d66b73db2c6e5b993188806323990ccd36a249f53434
MD5 b9c2f919df3326fcf07b70824c9a806b
BLAKE2b-256 95590ee7920be0ae1e43ee8dbde7bbf523023070f1200f98b9d83eb1ac345ea7

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d21bcfa6a115c24337c7bf62e04d16db25a1a0d61cdc143452fc773dddb71475
MD5 35ed95639e9cc6d5ec7a00fa16a4ee83
BLAKE2b-256 d925b6a3e836ac27a4d98ece06573f642fb6fd1d94678389ccb5161609a800f1

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2ce596be28118ece8ad07d844a36d33381352fd364d9f54ed4959924cb32fb7
MD5 db3603f57a3ecf428700549699bce6bd
BLAKE2b-256 e137597cc76d9d14b109f38048bca3165dd89afbe8d95eb764c240d1e4f96c37

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0bc1b8cc7dd52dc01bb0d7ac3dc76b1b4b9402560c7ce607ce74beda71d7e7a
MD5 dfaed64fad54210866bba72f7c056fb4
BLAKE2b-256 48a5f275ce3fd2e4c2f04633a510b42d77df64a4ca02fc049cecc24508b3cf61

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 056d2ad2477afe4d0fb4d1596ba77ef11a33783b042435ad636088d4edc0b38b
MD5 0c3ef2e72615954f93882c8e9ce650f4
BLAKE2b-256 e333b73fd067a367fd80dcff1241d2e3e3b22383d76cff349ee7d9b37d5a9b2d

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b4b9c30383995fb608e570e5d642c0e2dc2376f5cf7ad2e69ab29a7fb59520a
MD5 1a4e085d564defee932432ea00b60046
BLAKE2b-256 f49bb73695fbe1f905cb08f588a344729708c0b8ae21d808086e3890fcbd89e3

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3cc929f37614de790bd0460fe83fe437c3480177e3549ba0fbe0e6a68780bab2
MD5 690df5a1ab0c676d734e6d027383cb6c
BLAKE2b-256 48a20376c7796795fb2622277881a497dac2d5ddcf7d5fafb62b44521318c799

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1870b05af01b1183bb7e10906ccbd70d908bfcebc372b1798c141f830b17363f
MD5 65e64804b27091c598cbb2682c89c817
BLAKE2b-256 7c4b0459984601cf9aa2574e77b03da33749d927c0e4bbbe7d90602f563a5f2c

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ae781106e3eee56c6199df75242d52e014ca6357e81edeb0382259870762978
MD5 99487456e7621e781499539618daf36e
BLAKE2b-256 0ed0e8057c56d64eeb8aa2c68fa93c827c421c3adea9d33c9564b5423caa6449

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc9aca149d7c92ec7809ad4316ef7c9d7bd4f7be2d61278d9d76c21b4469591f
MD5 66b6220ae8468883f5244aadd55d290d
BLAKE2b-256 720216b9f59d9d824da573adfbdefeca1dc639f1eda94a5597e40aa4c1bd9734

See more details on using hashes here.

File details

Details for the file bkmr-6.6.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-6.6.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 106bf01210260abd3f879728ca202f869da0c43777ab81e4c5c266810cbe2ce7
MD5 b44d37653251a5e359329c66ef693017
BLAKE2b-256 8be7c04361e7a53d11aeadd58390fac71a1d7661d3179528198969f610963145

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page