LinkLoom is a command-line bookmark manager that allows you to save and find your bookmarks using natural language queries. Instead of searching by tags or keywords, you can search by meaning.
Project description
LinkLoom is a command-line bookmark manager that allows you to save and find your bookmarks using natural language queries. Instead of searching by tags or keywords, you search by meaning.
Forget trying to remember the exact title of an article you saved three months ago. With LinkLoom, you can just ask: lloom find "that article about black hole information paradox" and get relevant results instantly.
How It Works
LinkLoom operates by understanding the semantic meaning of your bookmarks, not just their text.
-
Storage: When you add a URL, its metadata (URL, notes) is stored in a local SQLite database.
-
Content Extraction: The main text content of the webpage is intelligently extracted using trafilatura.
-
Semantic Embedding: The extracted text and your personal note are converted into a numerical representation (a vector embedding) using a SentenceTransformer model. This vector captures the meaning and context of the content.
-
Vector Storage: These embeddings are stored and indexed in a local ChromaDB vector database for efficient similarity search.
-
Semantic Search: When you search, your query is also converted into an embedding. The system then performs a vector search to find the most semantically similar bookmarks in your database, providing highly relevant results that keyword-based search could never find.
Installation
Follow these instructions precisely to get LinkLoom running on your system.
Prerequisites
-
Python 3.9+
-
git
Step-by-Step Guide
- Clone the Repository:
git clone https://github.com/neirzhei/LinkLoom.git
cd LinkLoom
- Install the Build Tool (uv):
This project uses uv as a fast, modern build tool. If you don't have it, you need to install it. It's a single, simple command.
pip install uv
- Create and Activate a Virtual Environment:
python3 -m venv .venv
Now, activate the virtual environment.
On Linux or macOS:
source .venv/bin/activate
On Windows:
venv\Scripts\activate
- Install LinkLoom: With your virtual environment active, install the project in "editable" mode. The -e flag means any changes you make to the code are immediately available when you run the lloom command, without needing to reinstall.
uv pip install -e .
This command reads the pyproject.toml file, installs all the necessary dependencies (like torch, typer, and chromadb), and makes the lloom command available in your terminal.
Usage
Make sure your virtual environment is active (source .venv/bin/activate) every time you open a new terminal.
Adding a Bookmark
Use the add command. The --note option is highly recommended as it adds your own context to the search which gets prioritized when searching for a link later.
lloom add "https://neirzhei.github.io/article/art-in-weaponry.html" --note "might check out miyamoto musashi's book"
Output:
Saved: id=1
Finding a Bookmark
Use the find command with a natural language query. You can optionally specify the number of results to return with -k.
lloom find "miyamoto's view on art"
Output:
https://neirzhei.github.io/article/art-in-weaponry.html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linkloom-0.0.1.tar.gz.
File metadata
- Download URL: linkloom-0.0.1.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6aef6991442ca2875a484884e92a408b791139520886c2dea4ad3fea6160e300
|
|
| MD5 |
97655f19862605556c661aacccb80851
|
|
| BLAKE2b-256 |
3e5e2b2c7f5afde5f5956d14e814e31f6f20f3ac6db989cc9d4b9426bccacdb8
|
File details
Details for the file linkloom-0.0.1-py3-none-any.whl.
File metadata
- Download URL: linkloom-0.0.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99d16387bbce40cf35a2798147526a67c7e02a98417c2891be92d5dc42a57259
|
|
| MD5 |
bb07058d3b432ef168ea4e8f94fe5572
|
|
| BLAKE2b-256 |
7d3285bc4e760b5b9b355aff0e8092c6cc3ab6d59d99a9c39690fcdbf106145c
|