Skip to main content

Super fast bookmark manager with semantic full text search'

Project description

bkmr

Generalized Semantic Search

Ultrafast Bookmark Manager and Launcher

New Feature: Semantic Search (AI Embeddings)

Elevating Bookmark Management with AI-Driven Semantic Search

Features:

  • semantic search using OpenAI embeddings (requires OpenAI API key)
  • full-text search with semantic ranking (FTS5)
  • fuzzy search --fzf (CTRL-O: copy to clipboard, CTRL-E: edit, CTRL-D: delete, Enter: open)
  • tags for classification
  • can handle HTTP URLs, directories, files (e.g. Office, Images, ....)
  • can execute URI strings as shell commands via protocol prefix: 'shell::' URI-Example: shell::vim +/"## SqlAlchemy" $HOME/document.md
  • automatically enriches URLs with title and description from Web
  • manages statistics about bookmark usage

bkmr search --fzf is a great way to open bookmarks very fast.

Usage

bkmr --help

A Bookmark Manager and Launcher for the Terminal

Usage: bkmr [OPTIONS] [NAME] [COMMAND]

Commands:
  search      Searches Bookmarks
  sem-search  Semantic Search with OpenAI
  open        Open/launch bookmarks
  add         Add a bookmark
  delete      Delete bookmarks
  update      Update bookmarks
  edit        Edit bookmarks
  show        Show Bookmarks (list of ids, separated by comma, no blanks)
  surprise    Opens n random URLs
  tags        Tag for which related tags should be shown. No input: all tags are printed
  create-db   Initialize bookmark database
  backfill    Backfill embeddings for bookmarks
  load-texts  Load texts for semantic similarity search
  help        Print this message or the help of the given subcommand(s)

Arguments:
  [NAME]  Optional name to operate on

Examples

# FTS examples (https://www.sqlite.org/fts5.htm)
bkmr search '"https://securit" *'
bkmr search 'security NOT keycloak'

# FTS combined with tag filtering
bkmr search -t tag1,tag2 -n notag1 <searchquery>

# Search by any tag and sort by bookmark age ascending
bkmr search -T tag1,tag2 -O

# Give me the 10 oldest bookmarks
bkmr search -O --limit 10

# Adding URI to local files
bkmr add /home/user/presentation.pptx tag1,tag2 --title 'My super Presentation'

# Adding shell commands as URI
bkmr add "shell::vim +/'# SqlAlchemy' sql.md" shell,sql,doc --title 'sqlalchemy snippets'

# JSON dump of entire database
bkmr search --json

# Semantic Search based on OpenAI Embeddings
bkmr --openai sem-search "python security"  # requires OPENAI_API_KEY

Tags must be separated by comma without blanks.

Installation

  1. cargo install bkmr
  2. initialize the database: bkmr create-db db_path
  3. export "BKMR_DB_URL=db-path", location of created sqlite database must be known
  4. add URLs

More configuration options can be found at documentation page.

Upgrade to 1.x.x

A database migration will be performed on the first run of the new version. This will add two columns to the bookmarks table for the OpenAI embeddings. No destructive changes are made to the database.

Semantic Search

bkmr provides now full semantic search of generalized bookmarks using OpenAI's Embeddings.

You can find more information on the documentation page.

Benchmarking

  • ca. 20x faster than the Python original twbm after warming up Python.
time twbm search 'zzz*' --np
0. zzzeek : Asynchronous Python and Databases [343]
   https://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/
   async, knowhow, py


Found: 1
343

real    0m0.501s
user    0m0.268s
sys     0m0.070s



time bkmr search 'zzz*' --np
1. zzzeek : Asynchronous Python and Databases [343]
   https://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/
   async knowhow py


real    0m0.027s
user    0m0.008s
sys     0m0.016s

sysid blog: bkmr

Project details


Download files

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

Source Distribution

bkmr-2.0.1.tar.gz (234.2 kB view details)

Uploaded Source

Built Distributions

bkmr-2.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

bkmr-2.0.1-cp312-cp312-manylinux_2_34_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.34+ x86-64

bkmr-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

bkmr-2.0.1-cp312-cp312-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

bkmr-2.0.1-cp312-cp312-macosx_10_12_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

bkmr-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

bkmr-2.0.1-cp311-cp311-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

bkmr-2.0.1-cp311-cp311-macosx_10_12_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

bkmr-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

bkmr-2.0.1-cp310-cp310-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

bkmr-2.0.1-cp310-cp310-macosx_10_12_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10 macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: bkmr-2.0.1.tar.gz
  • Upload date:
  • Size: 234.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for bkmr-2.0.1.tar.gz
Algorithm Hash digest
SHA256 89323c9afa09aae26731de7e467a1044d959bfa3b970aa91fe9d5cc1119baaff
MD5 749f4f50c3335c456a68953586d2cad6
BLAKE2b-256 52aaa5e82de5379ff04de98b5e333181fefdb1ac5acdf2df4c90e80b9a771318

See more details on using hashes here.

File details

Details for the file bkmr-2.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-2.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f2340cd9365949c1eece549cea57a0f5359037753c5e272a37e064768018c0bf
MD5 3db6ff69cf37c486307bd040b5d72d28
BLAKE2b-256 4d979f2d606dc156e8f361f49c7026a50ac930a1dabfcd20d5f16cf6b800ca2f

See more details on using hashes here.

File details

Details for the file bkmr-2.0.1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bkmr-2.0.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e68fd03646a626186a6605e047d8b8409f0d9ec38e019e7c889f1d0028a86fc4
MD5 63367e7f86af39a09d4b0d9046d413a1
BLAKE2b-256 801a06551ef4c72ade6b736de78f5c36ce958d6445c69aa34ec0bca3ff558fbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6dee5e97a7bc05de148377cbd66d7ef574b7d8508a3874e5dc92c41bd5bbf7a2
MD5 af9304316f0b7866eb8dcf9c9942ccee
BLAKE2b-256 6888a75c07ed5f0129261c02d123c193bd8cf1ffa217f97f2afcaef88934d3dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 38922935637ba2d85f93f233e1909c2040d9a6ed58cbf27ec50805815a7731bc
MD5 a5a60d0f16fbcab4b3b28af915833c37
BLAKE2b-256 694ada69b275d741245f2f57311933c9ae8299be953fd163630b0a28c956f860

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e3f30249837c4d4135da5c32085f6a497d7fa63dd52f1739757a6dcad10a0af5
MD5 a36ab6fc7198830a2f84cfae7d3757fd
BLAKE2b-256 790cb81176f140519315d2b0cc8bcac202e299ca163899eacf1c3da4bc205970

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8dd44665127348522f81ed33cce578a5076e3615d9a8b55b0717abe50f0c5063
MD5 a812cd59add8593d4ac4e73c0bd7232f
BLAKE2b-256 64393f4f76a4803824471794b705a73c39a2b89392ad0a5669a68d90d39dccbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9382a7f7a4f51fa80a3346131c0250c8aca7e9e8f6b59e1737d55036639fa04
MD5 f6caf25a26960750aa56801d3fcc0dcb
BLAKE2b-256 e892fe7bf382ddf7472b94864a72b00711dd0773b96cf2d4ddb9f725f8392e2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9bdbdfa7a2cfff2c2e4458597a146ad2142c3097371f5eefc23e52ff614ba8d9
MD5 a0f6258e2e8f266fc1fb1c6adbeda853
BLAKE2b-256 5f7e6eeeb21eb8212e8974874f0f47eb019c7bbe0fc9d0c47d78ebf508526a97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a49ac156f6fdd0e6a16a32e4da9ce7ecb89eba46327970467bc58b80eb26aeb
MD5 0b2eff760ca9ae554daa7890a60585d9
BLAKE2b-256 ed76fcf587cd0bc701c4fb285d3afe834c3663d86ece53c1ed5b530ab732f93a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0313e517808c6fb6a9e2092372d8026beba80e019554de4c2169e7c3764ae29b
MD5 aa3758362cbbbb4a6f2f4e1613876bcc
BLAKE2b-256 12384da10d6bf6ec0e7a6001a08bb06fc2b4d7bd9560461a122ac9dda2d245bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bkmr-2.0.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d69fb22b695dc3978443bb3fdb8ae973933cf478227ce9c93e2ae04fb54011d5
MD5 c8cdbc84b1927d201d79f9f69c1048e8
BLAKE2b-256 cb14a84abaab2faf4dc1626a912e8c6f3a2efaea308843ac3c111e7237fb4514

See more details on using hashes here.

Supported by

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