Back to Skills
    šŸ¦ž

    twitter-bookmark-sync

    Automatically ranks your Twitter bookmarks

    By @tunaissacoding
    View on GitHub
    SKILL.md
    ---
    name: twitter-bookmark-sync
    description: Automatically ranks your Twitter bookmarks daily and delivers a curated reading list
    ---
    
    # 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
    
    ```bash
    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:
    
    ```bash
    mkdir -p ~/.config/bird
    cat > ~/.config/bird/config.json5 << 'EOF'
    {
      authToken: "your_auth_token_here",
      ct0: "your_ct0_here"
    }
    EOF
    ```
    
    5. Test:
    ```bash
    bird whoami
    ```
    
    ---
    
    ## Installation
    
    ```bash
    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`:
    
    ```json5
    {
      "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):**
    ```json5
    {
      "notification_channel": "telegram"
    }
    ```
    
    **Gmail (via gog skill):**
    ```json5
    {
      "notification_channel": "gmail",
      "gmail_to": "your.email@gmail.com"
    }
    ```
    
    **Slack:**
    ```json5
    {
      "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:**
    ```bash
    cd ~/clawd/skills/twitter-bookmark-sync
    ./scripts/sync.sh
    ```
    
    **Change schedule:**
    ```bash
    # 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