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: Bookmarks (URL, notes) are stored in a local SQLite database.
- Content Extraction: The main text content of the webpage is extracted using trafilatura.
- Semantic Embedding: The text and your note are converted into vector embeddings using a SentenceTransformer model.
- Vector Storage: Embeddings are stored in a local ChromaDB for efficient similarity search.
- Semantic Search: Your queries are also embedded, and LinkLoom returns the most semantically similar bookmarks.
Installation
LinkLoom can be installed in two ways:
- From PyPI (recommended for most users)
- From source (recommended for contributors)
Prerequisites
- Python 3.9+
git(only for source installation)
1. Create and Activate a Virtual Environment
It is strongly recommended to use a virtual environment.
python3 -m venv .venv
Activate it:
-
On Linux/macOS:
source .venv/bin/activate
-
On Windows:
.venv\Scripts\activate
2. Install from PyPI (Stable)
The easiest way is to install directly from PyPI:
pip install linkloom
3. Install from Source (Development)
If you want to contribute or run the latest changes:
git clone https://github.com/neirzhei/LinkLoom.git
cd LinkLoom
Install uv (fast build tool):
pip install uv
Then install in editable mode:
uv pip install -e .
Usage
Make sure your virtual environment is active (source .venv/bin/activate) before using the CLI.
Adding a Bookmark
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
lloom find "miyamoto's view on art"
Output:
https://neirzhei.github.io/article/art-in-weaponry.html
Metadata
Release files for linkloom 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| linkloom-0.0.2.tar.gz | 4.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| linkloom-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.2 kB
Release files / linkloom-0.0.2.tar.gz
| Download URL | linkloom-0.0.2.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c00742a4eb4dab3f3abac6e3728905a51ba3feb553e6e307c40787939642fd30
|
|
BLAKE2b-256 checksum How to use checksums |
f3edb2d28349c6846da26c0b164135abed4aa09a66665a73870ed261b426bb15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.2
|
Release files / linkloom-0.0.2-py3-none-any.whl
| Download URL | linkloom-0.0.2-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
969b31322c87cd0482a792cc46ee42346cba5fcfea7b54779979e2d51b346630
|
|
BLAKE2b-256 checksum How to use checksums |
85a13cc08e1ea5238406ffbc7b5d645ab8f5358dd648d37384a0bb1787551320
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.2
|