Agent skill
twitter-bookmarks
Automated Twitter bookmark processor with YAML-configurable categories and smart routing
Install this agent skill to your Project
npx add-skill https://github.com/mbelinky/clawdis-skills/tree/main/twitter-bookmarks
Metadata
Additional technical details for this skill
- clawdis
-
{ "emoji": "\ud83d\udd16", "requires": { "bins": [ "bird" ] } }
SKILL.md
Twitter Bookmarks Processor
Automated Twitter bookmark processing inspired by Alex Hillman's JFDI system. Checks bookmarks periodically, categorizes via LLM, and routes to configured destinations.
Quick Start
# Build
go build -o twitter-bookmarks
# Process bookmarks
./twitter-bookmarks process
# Check status
./twitter-bookmarks status
How It Works
- Fetch - Get new bookmarks via
bird bookmarks - Analyze - Read full tweet + thread context
- Classify - Send to Gemini with your category definitions from YAML config
- Route - Execute action based on category mapping (save, summarize, notify, discard)
- Track - Update state to avoid reprocessing
Configuration
Create ~/.twitter-bookmarks-config.yaml:
categories:
# Define categories with descriptions and keywords (guides LLM classification)
work:
description: "Work-related tools, articles, and research"
keywords: [enterprise, b2b, productivity, saas]
personal:
description: "Personal interests, hobbies, random finds"
keywords: [hobby, interest, fun, learn]
routing:
# Map categories to actions
work:
action: save_obsidian # Options: save_obsidian, summarize, notify, save_file, unbookmark
path: "Work/Research" # Relative to Obsidian vault
notify: true # Send Telegram notification
personal:
action: summarize # Extract & summarize URLs
notify: true
Available Actions
| Action | Description | Config |
|---|---|---|
save_obsidian |
Save to Obsidian vault | path: relative path in vault |
summarize |
Extract URL content, summarize, send via Telegram | N/A |
notify |
Send Telegram notification only | N/A |
save_file |
Append to text file | path: absolute file path |
unbookmark |
Remove bookmark after processing | N/A |
codex |
Create Codex prompt in ~/.codex-prompts/ |
N/A |
razor |
Auto-implement or save to Obsidian | path: Obsidian path |
Environment Variables
Required:
GEMINI_API_KEY- For LLM classification
Optional:
TWITTER_BOOKMARKS_CONFIG- Config file path (default:~/.twitter-bookmarks-config.yaml)TWITTER_BOOKMARKS_STATE- State file (default:~/.twitter-bookmarks-state.json)TWITTER_BOOKMARKS_OBSIDIAN- Obsidian vault path (if usingsave_obsidian)BIRD_BIN- bird CLI path (default:bird)SUMMARIZE_BIN- summarize CLI path (optional)TWITTER_BOOKMARKS_QUIET_START- Quiet hours start (default:23:00)TWITTER_BOOKMARKS_QUIET_END- Quiet hours end (default:08:00)
Automation
Cron (every 20 minutes)
*/20 * * * * cd /path/to/twitter-bookmarks && ./twitter-bookmarks process
Clawdis Cron
from clawdis_cron import add_job
add_job({
'id': 'twitter-bookmarks',
'schedule': '*/20 * * * *',
'command': 'cd /path/to/twitter-bookmarks && ./twitter-bookmarks process'
})
Example Workflows
Workflow 1: Research Collection
categories:
research:
description: "Academic papers, research tools, datasets"
keywords: [research, paper, study, dataset, academic]
routing:
research:
action: save_obsidian
path: "Research/Papers"
notify: true
Workflow 2: Auto-discard spam
categories:
spam:
description: "Unwanted promotional content"
keywords: [crypto, nft, airdrop, presale]
routing:
spam:
action: unbookmark # Remove automatically
Workflow 3: Recipe collection
categories:
recipes:
description: "Cooking recipes and food content"
keywords: [recipe, cook, bake, ingredient]
routing:
recipes:
action: save_file
path: "/Users/you/recipes.md"
notify: false
State Tracking
File: ~/.twitter-bookmarks-state.json
{
"lastProcessed": "2026-01-04T02:20:00Z",
"processedIds": ["1234567890", "9876543210"],
"categories": {
"work": 15,
"personal": 8,
"spam": 3
}
}
Integration with Clawdis
When running as a Clawdis skill, the processor can:
- Send notifications to configured Telegram accounts
- Save to Obsidian vault (if path configured)
- Create Codex prompts for AI-assisted implementation
- Trigger other Clawdis skills based on content
Requirements
- bird CLI (https://github.com/steipete/bird) - Authenticated Twitter access
- Gemini API key - For LLM classification
- Obsidian vault (optional) - Only if using
save_obsidian - summarize CLI (optional) - For URL content extraction
- Telegram bot (optional) - For notifications
Tips
- Start with 3-5 categories max, refine based on actual bookmarks
- Use
discardcategory +unbookmarkaction to auto-clean spam - Set
notify: falsefor high-volume categories - Keywords guide LLM but aren't strict filters
- Check
./twitter-bookmarks statusto see category distribution
Inspired by Alex Hillman's JFDI system
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
chill-putio
Automate chill.institute torrent/magnet ingestion into put.io. Use when asked to search, scan, or fetch torrent/magnet links from chill.institute and add them to put.io, or when troubleshooting the chill/put.io ingestion pipeline (cookies, profiles, put.io token).
eufy
Manage Eufy Security (HomeBase S380 + SoloCam S340/E340) from the `eufy` CLI—capture snapshots, forward alarms to the Tuya hub, and change guard/alarm modes through eufy-security-ws.
gh
GitHub CLI for repos, PRs, issues, and Actions.
tailscale
Manage Tailscale VPN, Serve, and Funnel from the CLI.
dashlane
Dashlane CLI for vault access and automation.
tuya
Control Tuya devices via local Home Assistant (tuya-local) or Tuya Cloud using the tuya-hub Go CLI.
Didn't find tool you were looking for?