Siftly
Local Twitter/X bookmark organizer with AI categorization and mindmap visualization
Install / Use
/learn @viperrcrypto/SiftlyREADME
What is Siftly?
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.
It runs a 4-stage AI pipeline on your bookmarks:
📥 Import (built-in bookmarklet or console script — no extensions needed)
↓
🏷️ Entity Extraction — mines hashtags, URLs, mentions, and 100+ known tools from raw tweet data (free, zero API calls)
↓
👁️ Vision Analysis — reads text, objects, and context from every image/GIF/video thumbnail (30–40 visual tags per image)
↓
🧠 Semantic Tagging — generates 25–35 searchable tags per bookmark for AI-powered search
↓
📂 Categorization — assigns each bookmark to 1–3 categories with confidence scores
After the pipeline runs, you get:
- AI search — find bookmarks by meaning, not just keywords ("funny meme about crypto crashing")
- Interactive mindmap — explore your entire bookmark graph visually
- Filtered browsing — grid or list view, filter by category, media type, and date
- Export tools — download media, export as CSV / JSON / ZIP
Quick Start
Prerequisites
- Node.js 18+
- npm (comes with Node.js)
That's it. If you have Claude Code CLI installed and signed in, AI features work automatically — no API key needed.
Option A — One command (recommended)
git clone https://github.com/viperrcrypto/Siftly.git
cd Siftly
./start.sh
start.sh installs dependencies, sets up the database, checks for Claude CLI auth, and opens http://localhost:3000 automatically.
Option B — Using Claude Code
If you're using Claude Code to set up the project, it will read CLAUDE.md and know exactly how to get started. Just open the project folder:
git clone https://github.com/viperrcrypto/Siftly.git
claude Siftly/
Claude Code will handle setup and start the app using your existing Claude subscription — no extra configuration needed.
Option C — Manual setup
git clone https://github.com/viperrcrypto/Siftly.git
cd Siftly
npm install
npx prisma generate
npx prisma migrate dev --name init
npx next dev
AI Authentication
Siftly automatically detects the best available auth method — no configuration needed in the most common case.
Priority order
| # | Method | How |
|---|--------|-----|
| 1 | Claude Code CLI (zero config) | Already signed in? Siftly reads your session from the macOS keychain automatically |
| 2 | API key in Settings | Open Settings in the app and paste your key |
| 3 | ANTHROPIC_API_KEY env var | Set in .env.local or your shell environment |
| 4 | Local proxy | Set ANTHROPIC_BASE_URL to any Anthropic-compatible endpoint |
Claude Code CLI (no API key needed)
If you use Claude Code, you're already signed in. Siftly detects your session from the macOS keychain and uses your Claude subscription (Free/Pro/Max) automatically.
The Settings page shows a green "Claude CLI detected — no API key needed" badge with your subscription tier when this is active.
Note: This works on macOS. On Linux/Windows, add an API key in Settings instead.
Getting an API key (if needed)
- Go to console.anthropic.com
- Create a new API key
- Open Siftly → Settings → paste it in
New accounts include $5 free credit — enough for thousands of bookmarks at Haiku pricing (~$0.00025/bookmark).
Importing Your Bookmarks
Siftly has built-in import tools — no browser extensions required. Go to the Import page and choose either method:
Method A — Bookmarklet (Recommended)
- Go to Import in the Siftly sidebar
- Drag the "Export X Bookmarks" link to your browser's bookmark bar (or right-click the bookmark bar → Add Bookmark → paste the URL)
- Go to x.com/i/bookmarks while logged in to X
- Click "Export X Bookmarks" in your bookmark bar — a purple button appears on the page
- Click "▶ Auto-scroll" — the tool scrolls through and captures all your bookmarks automatically
- When complete, click the purple "Export N bookmarks" button —
bookmarks.jsondownloads - Back in Siftly → Import → drop or upload the file
Method B — Browser Console Script
- Go to x.com/i/bookmarks while logged in to X
- Open DevTools: press
F12(Windows/Linux) or⌘⌥J(Mac), then go to the Console tab - Copy the console script from the Siftly Import page, paste it into the console, and press Enter
- Click "▶ Auto-scroll" and wait for all bookmarks to be captured
- Click the export button —
bookmarks.jsondownloads automatically - Back in Siftly → Import → upload the file
Re-importing
Re-import anytime — Siftly automatically skips duplicates and only adds new bookmarks.
AI Categorization
Categorization starts automatically as soon as you import. You can also trigger it manually from:
- The Import page (after upload)
- The Mindmap page (when bookmarks are uncategorized)
- The Categorize page in the sidebar
The 4-Stage Pipeline
| Stage | What it does | |-------|-------------| | Entity Extraction | Mines hashtags, URLs, @mentions, and 100+ known tool/product names from stored tweet JSON — free, zero API calls | | Vision Analysis | Analyzes every image, GIF, and video thumbnail — OCR text, objects, scene, mood, meme templates, 30–40 visual tags per image | | Semantic Tagging | Generates 25–35 precise search tags per bookmark by combining tweet text + image context. Also extracts sentiment, people, and company names. | | Categorization | Assigns 1–3 categories per bookmark with confidence scores using all enriched data |
The pipeline is incremental — if interrupted, it picks up where it left off. Use "Re-run everything (force all)" to re-analyze bookmarks that were already processed.
Features
🔍 AI Search
Natural language queries across all bookmark data:
- "funny meme about crypto crashing"
- "react hooks tutorial"
- "bitcoin price chart"
- "best AI coding tools"
Searches tweet text, image OCR, visual tags, semantic tags, and categories simultaneously using a full-text search index (FTS5) + Claude semantic reranking. Results are ranked by relevance with AI-generated explanations for each match.
🗺️ Mindmap
Interactive force-directed graph showing all bookmarks organized by category:
- Expand/collapse any category to reveal its bookmarks
- Click a bookmark node to open the original tweet on X
- Color-coded legend by category
- If bookmarks aren't categorized yet, an inline AI Categorize button starts the pipeline without leaving the page
📚 Browse & Filter
- Grid view (masonry layout) or List view
- Filter by category, media type (photo / video), or search text
- Sort by newest or oldest
- Pagination with 24 items per page
- Active filter chips — removable individually or all at once
- Hover any card to download media or jump to the original tweet
⚙️ Categories
8 default categories pre-seeded with AI-readable descriptions:
| Category | Color | |----------|-------| | Funny Memes | Amber | | AI Resources | Violet | | Dev Tools | Cyan | | Design | Pink | | Finance & Crypto | Green | | Productivity | Orange | | News | Indigo | | General | Slate |
Create custom categories with a name, color, and optional description. The description is passed directly to the AI during categorization — the more specific, the more accurate the results.
📤 Export
- CSV — spreadsheet-compatible with all fields
- JSON — full structured data export
- ZIP — exports a category's bookmarks + all media files with a
manifest.csv
⌨️ Command Palette
Press Cmd+K (Mac) or Ctrl+K (Windows/Linux) to search across all bookmarks from anywhere in the app.
Configuration
All settings are manageable in the Settings page at /settings or via environment variables:
| Setting | Env Var | Description |
|---------|---------|-------------|
| Anthropic API Key | ANTHROPIC_API_KEY | Optional if Claude CLI is signed in — otherwise required for AI features |
| API Base URL | ANTHROPIC_BASE_URL | Custom endpoint for proxies or local Anthropic-compatible models |
| AI Model | Settings page only | Haiku 4.5 (default, fastest/cheapest), Sonnet 4.6, Opus 4.6 |
| OpenAI Key | Settings page only | Alternative provider if no Anthropic key is set |
| Database | DATABASE_URL | SQLite file path (default: file:./prisma/dev.db) |
Custom API Endpoint
Point Siftly at any Anthropic-compatible server:
ANTHROPIC_BASE_URL=http://localhost:8080
Architecture
siftly/
├── app/
│ ├── api/
│ │ ├── analyze/images/ # Batch image vision analysis (GET progress, POST run)
│ │ ├
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
90.0kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
review-duplication
99.7kUse this skill during code reviews to proactively investigate the codebase for duplicated functionality, reinvented wheels, or failure to reuse existing project best practices and shared utilities.
