Siftly: The Local AI Layer That Turns X Bookmarks Into a Searchable Knowledge Base
A self-hosted, multimodal bookmark engine that extracts meaning from text, images, and metadata, then keeps the whole thing private in SQLite.
- Siftly turns X bookmarks from a pile of saved links into a local knowledge base you can search by meaning, not just text.
- Its real trick is a staged pipeline that extracts entities, reads images, adds semantic tags, and writes the result into SQLite.
- The product is unusually specific on purpose: it is narrow enough to feel sharp, but deep enough to replace a generic bookmark manager.
- Claude Code CLI auth is the kind of weird detail that makes the tool feel built for people who already live in terminals.
Siftly is not trying to be a universal notes app. It is trying to rescue the one place where useful links go to die: X bookmarks.
The pitch is simple. Save something on X, and Siftly turns it into a searchable object instead of a dead-end URL. That means text, images, OCR, semantic labels, and categories all become part of the same local database.
Why X bookmarks become a graveyard
Bookmarks are easy to collect and easy to forget. The problem is rarely storage. It is retrieval, which is why so many saved posts end up as a private museum of almost-useful things.
Siftly attacks that failure mode by making the bookmark itself do more work. A saved post is not just preserved. It is processed, labeled, and made queryable later without depending on a cloud account or a browser extension to stay alive.
Siftly turns your Twitter/X bookmarks into a searchable, categorized, visual knowledge base — running entirely on your machine. No cloud, no subscriptions, no browser extensions required. Everything stays local except the AI API calls you configure.
What Siftly changes
The product shift is bigger than search. Siftly treats each bookmark as a structured knowledge object with extracted entities, visual tags, semantic tags, and a category assignment. The result is a local memory layer, not a flat archive.
That matters because X content is often multimodal. A useful post might be mostly text, mostly image, or some messy combination of both. If you only index the caption, you miss the point.
The pipeline that makes a bookmark searchable
This is the heart of the project. Siftly does not just send bookmarks to an LLM and hope for the best. It stages the work so deterministic extraction and multimodal inference each do their part, then writes the result to SQLite.
The first stage is raw entity extraction. That catches obvious structure like hashtags, URLs, mentions, and known products or tools without paying an AI tax on every record.
Then vision analysis reads the visual layer. Screenshots, memes, thumbnails, and image text can all contribute OCR text and visual concepts, which is how a post with weak caption text can still become searchable later.
Semantic tagging and categorization turn those signals into something the app can use consistently. The point is not to generate a single magical answer. It is to create several stable representations that survive indexing and retrieval.
// Simplified shape of the pipeline
const bookmark = await importBookmark(rawPost)
const entities = extractEntities(bookmark.raw)
const vision = await analyzeImages(bookmark.media)
const semanticTags = await buildSemanticTags({ entities, vision, text: bookmark.text })
const category = await categorize({ text: bookmark.text, tags: semanticTags })
await db.bookmark.upsert({ data: { ...bookmark, entities, vision, semanticTags, category } })
How search becomes semantic, not just keyword-based
Siftly’s search stack is a hybrid. Full-text search handles speed and recall. Intent detection and reranking handle meaning. That combination is what makes a query like “funny meme about coding” feel surprisingly specific.
In practice, this means the app does not require perfect literal overlap between the query and the saved post. If the text is thin but the image is rich, the visual tags still help. If the post is vague but the category is clear, the reranker can still surface it.
| Dimension | Keyword search | Siftly |
|---|---|---|
| Input signal | Exact text only | Text, OCR, visual tags, semantic tags |
| Speed | Fast | Fast first pass, smarter second pass |
| Best at | Known phrases | Intent and meaning |
| Failure mode | Misses context | Depends on pipeline quality |
| Storage model | Usually cloud or app-specific | SQLite, local-first |
That is the product thesis in miniature. Siftly is not trying to be broad. It is trying to be precise inside a narrow domain where precision matters.
The import trick that avoids a browser extension
One of the nicest details is that Siftly does not force a heavyweight extension-first workflow. It can use a bookmarklet or console-script approach to pull bookmarks from X, which keeps the setup lighter than a traditional browser extension path.
That choice comes with tradeoffs. Anything tied to internal platform endpoints can be brittle. But the payoff is real: less friction, fewer permissions, and a more developer-native way to get data out of the walled garden.
It runs a 4-stage AI pipeline on your bookmarks: 📥 Import... 🏷️ Entity Extraction... 👁️ Vision Analysis... 🧠 Semantic Tagging... 📂 Categorization
Why local-first changes the product
This is the philosophical center of Siftly. AI is treated as a processing utility, not the system of record. Once the bookmark is enriched, the durable asset is the local SQLite database, not an external SaaS index.
That changes the business logic of the tool. The model can change. The provider can change. The knowledge stays put. For people who already manage their own infrastructure, that is not a feature add-on. It is the reason to use the tool at all.
The Claude Code CLI auth path reinforces the same idea. Siftly tries to fit into the workflow you already have, instead of demanding a new account ritual for every layer of the stack.
How it compares
Siftly is narrow on purpose. That makes it easier to compare against broader knowledge tools and more generic bookmark managers.
| Tool type | Platform focus | Local-first | Multimodal | Import path | Best fit |
|---|---|---|---|---|---|
| Generic bookmark manager | Broad | Sometimes | Usually no | Extension or sync | Simple saving |
| Cloud knowledge base | Broad | Usually no | Sometimes | Managed ingestion | Teams that want SaaS |
| General AI note tool | Broad | Mixed | Sometimes | Manual or sync | Cross-domain notes |
| Siftly | X bookmarks only | Yes | Yes | Bookmarklet or console script | Power users who want ownership |
The table makes the tradeoff obvious. Other tools may be broader, but Siftly is deeper where it counts: one platform, one local database, and one pipeline that squeezes meaning out of messy social content.
Who this is for
Siftly is for power users, researchers, and developers who already understand the value of self-hosted tools. It is for people who want their saved X content to behave like a queryable archive instead of a garbage drawer.
It is not for someone who wants a polished SaaS with zero setup and no curiosity about internals. Siftly expects a little patience, and in return it gives you control.





