twitter-bookmark-sync

34
5
Source

Automatically ranks your Twitter bookmarks daily and delivers a curated reading list

Install

mkdir -p .claude/skills/twitter-bookmark-sync && curl -L -o skill.zip "https://mcp.directory/api/skills/download/2498" && unzip -o skill.zip -d .claude/skills/twitter-bookmark-sync && rm skill.zip

Installs to .claude/skills/twitter-bookmark-sync

About this skill

twitter-bookmark-sync

Automated Twitter bookmark curation and notification

Never miss important bookmarks. Automatically rank your Twitter bookmarks based on your interests and get a curated reading list delivered daily.


What It Does

  • Learns what matters to you from your bookmarking patterns
  • Adapts ranking weights automatically (interests decay unless reinforced)
  • Categorizes bookmarks by topic and value type
  • Delivers personalized value statements every morning
  • Gets smarter the more you use it

Requirements

  • macOS 10.15 or later
  • Twitter account with bookmarks
  • bird CLI (brew install steipete/tap/bird)
  • Clawdbot (for scheduling and notifications)
  • Twitter auth cookies configured (see Getting Ready)

Getting Ready

Step 1: Install bird CLI

brew install steipete/tap/bird

Step 2: Configure Twitter Authentication

Extract your Twitter cookies from your browser:

  1. Open browser → https://x.com (logged in)

  2. DevTools (Cmd+Option+I) → Application → Cookies → https://x.com

  3. Copy these values:

    • auth_token
    • ct0
  4. Save to config:

mkdir -p ~/.config/bird
cat > ~/.config/bird/config.json5 << 'EOF'
{
  authToken: "your_auth_token_here",
  ct0: "your_ct0_here"
}
EOF
  1. Test:
bird whoami

Installation

clawdhub install twitter-bookmark-sync
cd ~/clawd/skills/twitter-bookmark-sync
./install.sh

The installer will:

  1. Detect your timezone automatically
  2. Set up daily cron jobs (fetch at midnight, notify at 8am)
  3. Create your config file

Configuration

Edit ~/clawd/twitter-bookmark-sync-config.json:

{
  "fetch_time": "00:00",           // When to learn & rank (24h format)
  "notification_time": "08:00",     // When to send results
  "lookback_hours": 24,             // How far back to check
  "notification_channel": "telegram", // or "gmail", "slack"
  "output_dir": "~/Documents"      // Where to save reading lists
}

Ranking criteria (self-evolving):
~/clawd/twitter-bookmark-sync-criteria.json

This file updates automatically based on your bookmarking patterns.
Do not edit manually — let it learn from your behavior.

Notification Channels

Telegram (default):

{
  "notification_channel": "telegram"
}

Gmail (via gog skill):

{
  "notification_channel": "gmail",
  "gmail_to": "[email protected]"
}

Slack:

{
  "notification_channel": "slack",
  "slack_channel": "#bookmarks"
}

How It Works

Daily Schedule

Midnight (00:00) - Learning Phase:

  1. Fetches bookmarks from last 24 hours
  2. Categorizes each (topic + value type)
  3. Updates ranking criteria:
    • Applies time decay (5% per day) to unused interests
    • Boosts weights for categories you're actively bookmarking
    • Discovers new patterns automatically
    • Normalizes all weights
  4. Ranks new bookmarks using evolved criteria
  5. Saves to ~/Documents/twitter-reading-YYYY-MM-DD.md

Morning (08:00) - Notification:

  1. Analyzes WHY each bookmark matters to you
  2. Sends value statements (not summaries)
  3. Links to full reading list

Example notification:

📚 Twitter Reading List Ready!

**1. @someuser** (Score: 120)
💡 Career growth pathway • Investment strategy
🔗 https://x.com/...

**2. @another** (Score: 110)  
💡 Direct crypto insights • London transition
🔗 https://x.com/...

Self-Learning System

On first install:

  • Initializes from USER.md profile
  • Creates twitter-bookmark-sync-criteria.json
  • 11 value categories with initial weights (0-100)

Every midnight:

  • Categorizes your new bookmarks
  • Updates category weights based on usage
  • Old interests decay 5% per day
  • Active interests stay strong
  • New patterns emerge automatically

Example evolution:

Day 1:  crypto_insights: 100, relationships: 90
Day 10: crypto_insights: 100 (active), relationships: 60 (decaying)
Day 30: crypto_insights: 100, AI_tools: 75 (discovered), relationships: 35

Why this matters:

  • Adapts to your changing interests
  • No manual keyword management
  • Gets better at predicting what you'll value
  • Reflects YOUR actual behavior, not generic defaults

Manual Usage

Run immediately:

cd ~/clawd/skills/twitter-bookmark-sync
./scripts/sync.sh

Change schedule:

# Edit config
nano ~/clawd/twitter-bookmark-sync-config.json

# Reload cron jobs
./install.sh

Troubleshooting

"No bookmarks found"

  • Check bird authentication: bird whoami
  • Verify you have bookmarks: bird bookmarks -n 5

"Permission denied"

  • Check bird config: ~/.config/bird/config.json5
  • Verify cookies are valid (they expire)

"Notification not sent"

  • Check Clawdbot is running: clawdbot status
  • Verify notification channel in config
  • Check logs: ~/clawd/logs/twitter-bookmark-sync.log

License

MIT

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

1,6851,430

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

1,2691,335

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

1,5441,153

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

1,359809

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

1,264728

pdf-to-markdown

aliceisjustplaying

Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.

1,492684