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

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.7.0.tar.gz (406.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.7.0-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.7.0-cp313-cp313-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

bkmr-6.7.0-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.7.0-cp312-cp312-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

bkmr-6.7.0-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.7.0-cp311-cp311-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

bkmr-6.7.0-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.7.0-cp310-cp310-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

bkmr-6.7.0-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.7.0.tar.gz.

File metadata

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

File hashes

Hashes for bkmr-6.7.0.tar.gz
Algorithm Hash digest
SHA256 83689b8ed6f7dedb1ff5ac01d19c2824cb5dbcc117d1ca97d350fa28985df723
MD5 abd8ccd04b2a3a0b9cabbe4fcaaddbec
BLAKE2b-256 7a83b77104b6457f3d73e49daaf2356eff6c26f439c8610a1fe4adcc761f53c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0de737dfe1e3cfbe4cdb2e6a980772080950e60805b0b84e2ece5a4324d7febd
MD5 3f51d812fa3e783a1bfb6b1d0b20051d
BLAKE2b-256 6ac34692705d167604e21db7ac08cf305aacf113e06565780271af0c9722dca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3407313f09d23347f527893da04c86e761a8fc5c9c2b38e97ee3710806b550b4
MD5 166082affda62167a530f833dba692cb
BLAKE2b-256 e321e3d14eed703e5321d86a0d1084c2b7466788a235eadbe6a76b40eb246a62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a4af71566886a25fec39e966143262ada0d594994b51515e141d232bf3d354a4
MD5 3202566a33e187dc0cf0b4c98b52b367
BLAKE2b-256 45a3d8040b21dfd10afbab50bd3a63a5fa02f7176fa68b821918eb865696b3f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b60ce28f92503c89ad2dc64c37fd16c84f6d45e39d509ab242f1cd3cf6fe0c9
MD5 135f18a674ce10a3b61eaf677b304e37
BLAKE2b-256 40b8806ee11b19b42f98fe15b2377351d72af8b335040170afc1e25c0aeef1fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc7a1721d1c78909ed4e8d80ca97d67b60419898a3fb9ab5c79253ee249175c9
MD5 55dba57056647bd2a879f6cecbf8b735
BLAKE2b-256 8b9da9027706c560c65a38d9d77381515c1d44e94350bafbc560281470f4c9cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a8c295e97e4c0e59aa7f61e51b64002d0c7288087f5d89bb4ebb3b7b727457bf
MD5 cb75e82b228fa92fe710a1f6574d461f
BLAKE2b-256 b7d273ee2fe7693eb1c1800439feb02d58f2276141e55032aecaae72adecd7d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e0ca8bc1eddd4d6a92ab3004effba60b43c3cbefd7594c026d3653924947da2
MD5 288d1cfc19200536aebebd63a1c5a0c5
BLAKE2b-256 9a712c5836084274bb48d347861df893c0b251b5bcefcb49a1f1fd2c52230653

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 635c52844da9294ac6720ceaa9532e52a0a306f80746fcfa139e3fe2bc380c77
MD5 ebb9dc0a257ea366d5fe7f0adb66ee08
BLAKE2b-256 f2e8042f50d44dfbd97ef0623c016e9756864539310730d89dec7ae099728144

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f3cbe966feb06fd08ff8542b88185c2d97e49c99003f0fa077fcec9f19793e1a
MD5 2dc4cdb94a3a329e3e3f29624b1d6f82
BLAKE2b-256 54e003c146019786d75369807980ea0b28c98dfd51d0d8d3bd74498dfb61c52e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f8741431b7cc5e05b1585b2eae83e6135013da53660e169874579db2efd7353
MD5 29dc3371f768bb7ce34586e92f8dfbbb
BLAKE2b-256 1177078e7bc1ff52f92895a1f647d50045fb8959d8370a4131849287527da3e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98f162d38ef50ea515287388232a61766db2ae807113abb1e54ff6a2c6116756
MD5 e9e7cbdf2f697e22011a78b49dcc3d45
BLAKE2b-256 264d692b9c8291435c904147419d33f2de6c3afccb007323a75cd29e949ba377

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-6.7.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3623f054f696494a6b7d0b53213fc4a5a1f0b7d574db5b7d64835a035ff22291
MD5 b1fbfbc6c8ef66db00006fbb54717a62
BLAKE2b-256 826b2920685dcd8753fd6da355bad919182836af650e1f94c06bd9b3b505029b

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