sm-saver

Save and digest resources from social media posts (X/Twitter, LinkedIn) or any URL. Use when the user shares a tweet URL, a LinkedIn post, or any link they want to keep and understand. Extracts linked resources, fetches their content, and appends a structured entry to the resource log.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "sm-saver" with this command: npx skills add spideystreet/sm-saver

SM Saver

Extracts, summarizes, and logs resources from social media posts or direct URLs.

Output log

Append all saved entries to ~/workspace/resources.md (create if missing).

Workflow

1. Detect source type

PatternType
x.com/* or twitter.com/*Twitter/X post
linkedin.com/*LinkedIn post
Anything elseDirect URL

2. Fetch content

Twitter/X — use xurl:

{
  "tool": "exec",
  "command": "xurl read <tweet_url>"
}

Parse the JSON response:

  • Extract data.text (tweet body)
  • Extract data.entities.urls[].expanded_url (linked resources, skip t.co self-references and pic.twitter.com)
  • Extract data.author_id or author handle if available

LinkedIn / Direct URL — skip to step 3 directly with the URL itself as the resource.

3. Summarize each resource

For each extracted URL (or the URL itself if direct):

{
  "tool": "exec",
  "command": "summarize \"<url>\" --length short"
}

If summarize is not installed, fall back to:

{
  "tool": "exec",
  "command": "python3 -c \"\nimport urllib.request, sys\nreq = urllib.request.Request('<url>', headers={'User-Agent': 'Mozilla/5.0'})\nwith urllib.request.urlopen(req, timeout=10) as r:\n    html = r.read().decode('utf-8', errors='ignore')\nimport re\ntitle = re.search(r'<title>(.*?)</title>', html, re.I)\nprint(title.group(1).strip() if title else '<url>')\n\""
}

If a URL is inaccessible (auth wall, timeout), note it as [inaccessible] and continue.

4. Append to resources.md

Format — strict, no deviation:

## {YYYY-MM-DD} · {source_label}
> {tweet text or first sentence of post — max 120 chars, truncate with …}

{For each resource:}
- [{title}]({url}) — {1-line summary, max 80 chars}

---

source_label:

  • Twitter: @{handle} if extractable, else X
  • LinkedIn: LinkedIn
  • Direct: domain name (e.g. github.com)

5. Confirm to user

Respond with exactly:

💾 {N} resource(s) saved · {source_label}
{title of first resource, truncated to 60 chars}

If nothing was extractable: ⚠️ No resources found in this link.

Examples

User saysSource typeResult
"https://x.com/karpathy/status/123456"Twitter/XExtract tweet text + linked URLs, summarize each, append to resources.md
"https://linkedin.com/posts/someone-123"LinkedInFetch page, summarize, append to resources.md
"Save this: https://github.com/anthropics/claude-code"Direct URLFetch title + summary, append to resources.md
"https://x.com/elonmusk/status/789 garde ça"Twitter/XExtract tweet + linked resources, summarize, append to resources.md

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

SERP Outline Extractor

Turn a target keyword or query into a search-informed content outline with likely subtopics, questions, and comparison angles. Useful for SEO briefs, blog pl...

Registry SourceRecently Updated
General

Multi-Model Response Comparator

Compare responses from multiple AI models for the same task and summarize differences in quality, style, speed, and likely cost. Best for model selection, ev...

Registry SourceRecently Updated
General

API Pricing Comparator

Compare AI API or model pricing across providers and produce a structured summary for product pages, blog posts, or buyer guides. Works with OpenAI-compatibl...

Registry SourceRecently Updated