Agent Social Reader
Empower your AI agent to read and summarize specific public web or social media links from TikTok, Instagram, X (Twitter), YouTube, Facebook, Reddit, LinkedIn, Threads, Pinterest, Bluesky, Twitch, Snapchat, Kick, Lemon8, Douyin, Xiaohongshu, Weibo, Bilibili, Kuaishou, Xigua, Zhihu, WeChat Official
Rank
62
Safety
84
Downloads
979
Updated
Oct 11, 2026
Version
2.0.1
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 979 downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 979 downloadsadoption · observed Oct 11, 2026
- Latest release
- 2.0.1release · observed Jul 14, 2026
- Handshake status
- UNKNOWNsecurity
What changed
Newest first. Only changes that point at a source are listed.
Release 2.0.1release
**agent-social-reader 2.0.1** - Changed: Skill now only acts when the user explicitly asks to read, summarize, analyze, or save a specific public URL; no background detection or auto-triggering. - Clarified: Will only save, archive, or export content to Notion, Obsidian, or ima if the active user request includes that exact destination. - Security: Emphasized not to enumerate arbitrary environment variables or user home directories; only reference explicit variables and config paths. - User privacy: Local config file is used only if the user explicitly approves plaintext storage, and never for arbitrary credentials. - Temp media: Cleanup now always previews matching files before deletion, and only deletes after the user confirms. - Docs: Removed general-purpose triggers and shortened the skill summary to reflect strict "user-initiated only" operations. Removed the `skill-card.md` file.
Observed Jul 14, 2026 · source
Install and run
Setup complexity: low.
clawhub skill install s178kw7jyc12a88r6yr75atxa189wwvf:agent-social-reader- Install using `clawhub skill install s178kw7jyc12a88r6yr75atxa189wwvf:agent-social-reader` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/hermiod99-vibe/agent-social-reader before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-hermiod99-vibe-agent-social-reader/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
147,107 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
--- name: agent-social-reader version: 2.0.1 description: > Empower your AI agent to read and summarize specific public web or social media links from TikTok, Instagram, X (Twitter), YouTube, Facebook, Reddit, LinkedIn, Threads, Pinterest, Bluesky, Twitch, Snapchat, Kick, Lemon8, Douyin, Xiaohongshu, Weibo, Bilibili, Kuaishou, Xigua, Zhihu, WeChat Official Accounts, WeChat Channels, general public web pages, and RSS feeds. The skill can save a specific retrieved item to Notion, Obsidian, or ima only when the current user request explicitly asks to save/archive it or confirms that exact destination. Trigger when: (1) the user asks to read, summarize, analyze, or extract content from a specific public URL, (2) the user asks what a specific linked video/post/article says, (3) the user asks to subscribe to or inspect a specific RSS feed, or (4) the user asks to save the current retrieved item to Notion, Obsidian, or ima. Triggers: "read this link", "summarize this URL", "what does this video say", "extract this post", "save this to Notion", "save this to Obsidian", "save this to ima". metadata: openclaw: homepage: "https://github.com/hermiod99-vibe/Agent-Social-Reader" requires: bins: - curl - python3 optional_bins: - ffmpeg - yt-dlp envVars: - AGENT_LENS_API_KEY - OPENAI_API_KEY - NOTION_TOKEN - NOTION_DATABASE_ID - OBSIDIAN_VAULT_PATH - IMA_CLIENT_ID - IMA_API_KEY - IMA_KNOWLEDGE_BASE_ID --- # Agent-Social-Reader — Skill Guide ## ⚠️ Workspace Rules **CRITICAL: Never create or modify files directly inside the agent's default workspace unless the user explicitly asks for a workspace artifact.** - Use `/tmp/` for all temporary outputs and transient cache. - Prefer platform secret storage, existing authenticated connectors, or environment variables for secrets. - Use `~/.agent-social-reader/config.json` only after the user explicitly agrees to local plaintext configuration. - Never print, log, summarize, archive, or commit full API keys/tokens. - Only write to Notion, Obsidian, or ima after the current user request asks for that destination or confirms that exact destination for the current item. - Use this skill only when the user explicitly asks to read, summarize, analyze, or save a specific URL. ### Configuration Lookup Order When a credential or path is needed, check in this order: 1. Current runtime connectors or MCP tools already authenticated by the user. 2. Environment variables: `AGENT_LENS_API_KEY`, `OPENAI_API_KEY`, `NOTION_TOKEN`, `NOTION_DATABASE_ID`, `OBSIDIAN_VAULT_PATH`, `IMA_CLIENT_ID`, `IMA_API_KEY`, `IMA_KNOWLEDGE_BASE_ID`. 3. Local config file: `~/.agent-social-reader/config.json` only if the user previously approved local plaintext storage. 4. Ask the user for the missing value, explain what it is used for, and ask whether it should be saved locally. Do not enumerate arbitrary environment variables or scan the user's home directory. Read only the explicit variables and config paths named in this docume
README.md
# 👁️ Agent-Social-Reader <p align="center"> <strong>Ask your agent to read a specific social link → AI summarizes → Save that item to Notion / Obsidian / ima when you request it<br/> No social login. No cookies. Lower account risk.<br/><br/> Reads content from X, Instagram, YouTube, Xiaohongshu, and more — with optional per-item archiving to your personal knowledge base</strong> </p> <p align="center"> <a href="#-quick-overview">Quick Overview</a> · <a href="#-what-it-does">What It Does</a> · <a href="#-supported-platforms">Supported Platforms</a> · <a href="#-quick-start">Quick Start</a> · <a href="docs/README_cn.md">中文</a> </p> --- ## 🎯 Quick Overview As a knowledge worker, product manager, or heavy AI agent user, the moment you drop an X (Twitter), Reddit, WeChat article, or Xiaohongshu link into your AI, you hit walls: login barriers, anti-scraping blocks, IP bans, or HTML garbage. On top of that, you're stuck maintaining a separate tool for every single platform. **The problem this Skill solves:** ❌ Before: ``` You: drop a Twitter/Reddit/Xiaohongshu link into your agent Agent: "I can't access that" / returns garbled HTML You: resort to manual copy-paste, screenshots, or give up ``` ✅ Now: ``` You: ask your agent to read a specific social media link Agent: reads it → summarizes it You: optionally say "save this to Notion / Obsidian / ima" → content neatly filed in your knowledge base ``` **Core value**: - ✅ **Complete loop**: Read → Summarize → Archive — end-to-end in one workflow - ✅ **Broad coverage**: 20+ global social platforms (TikTok, Instagram, X, YouTube, Reddit, Douyin, Xiaohongshu, Bilibili...) - ✅ **Lower account risk**: No need to log in to personal social accounts, no cookie required — reduces risk of suspension from cookie-based access - ✅ **Flexible cost**: Free tools first; optional paid enhancements from $2.90/month > 💡 **Design philosophy**: Use free tools wherever possible; reach for the most cost-effective paid option only when free tools won't do. You decide which tier to use. > ❤️ **Special thanks to** [Agent-Reach](https://github.com/Panniantong/Agent-Reach) by [@Panniantong](https://github.com/Panniantong). Agent-Reach proved that getting an AI agent to read web content was achievable — this project is a personal iteration on the same idea, with a tighter focus on social content reading and knowledge base archiving. --- ## ✨ What It Does After installing this Skill, your agent gains the following capabilities (no code required): | Content Source | Tool | Cost | | :--- | :--- | :--- | | General web pages | Jina Reader (r.jina.ai) | ✅ Free, no API key required | | Public X/Twitter posts | FxTwitter API | ✅ Free, no API key or cookie required | | YouTube (with subtitles) | youtube-transcript-api | ✅ Free, no API key required | | Weibo | Jina Reader (r.jina.ai) | ✅ Free, bypasses login wall | | WeChat public accounts | Camoufox | ✅ Free, headless browser handles JS rendering<br/>(falls back to Age
_meta.json
{
"ownerId": "kn7dct92yfrktj1r1p84kvtdpn89xcqf",
"slug": "agent-social-reader",
"version": "2.0.1",
"publishedAt": 1784021829386
}references/save-scripts.md
# Save Scripts
Built-in fallback scripts for archiving content to Notion and Obsidian. These are used when no native Notion/Obsidian tool is available in the current runtime.
For the ima OpenAPI (Scene 2 & 3), see `references/tool-details.md` §9.
Use these scripts only after the current user request explicitly asks to save or archive the current item. Do not run them during read-only summarization. Confirm the target destination for the current item before writing.
Credential helpers in this file read only the explicit environment variables and config paths named below. They must not enumerate arbitrary environment variables or scan the user's home directory. Prefer platform secret storage or environment variables; read local plaintext config only if the user previously approved local config storage.
---
## Save to ima (Scene 2 & 3 — OpenAPI)
**When to use**: User says "save to ima" and no native ima skill is available (i.e., not running inside ima). Use this after completing the scene detection in SKILL.md.
Before writing, confirm the target ima scenario and knowledge base for the current item.
### Scene Detection Function
```python
import os
from pathlib import Path
def detect_ima_scene():
"""
Detect which ima write path to use.
Returns: "ima-native" | "workbuddy" | "external-api" | None
"""
# Scene 1: ima native skills — check via runtime skill discovery
# (ima-knowledge and ima-note are skills, not shell commands;
# implementation varies by runtime: check <available_skills>, skill registry,
# or platform-specific tool list. If you can call use_skill("ima-knowledge")
# and it succeeds → return "ima-native".)
# TODO: replace with actual runtime skill discovery when running inside ima.
# For now, fall through to check env vars / config files below.
# Scene 2: WorkBuddy — requires platform-specific signal, not just env vars.
# IMA_CLIENT_ID + IMA_API_KEY only mean OpenAPI is configured; they are present
# in ALL OpenAPI environments (WorkBuddy, OpenClaw, Claude Code, etc.).
# Use WorkBuddy-specific indicators: runtime tool/connector presence, or ask user.
# If you detect WorkBuddy-specific runtime tools or connectors → return "workbuddy"
# If only env vars are present but no WorkBuddy signal → return "external-api"
if os.environ.get("IMA_CLIENT_ID") and os.environ.get("IMA_API_KEY"):
# These env vars alone only prove OpenAPI is configured.
# Do NOT assume WorkBuddy without a platform-specific signal.
return "external-api"
# Scene 3: External agent — read only the documented config files
# after the user has approved local plaintext config storage.
config_dir = Path.home() / ".config" / "ima"
if config_dir.exists():
client_id_file = config_dir / "client_id"
api_key_file = config_dir / "api_key"
if client_id_file.exists() and api_key_file.exists():
return "external-api"
# Also check Opreferences/tool-details.md
# Platform Tool Details
When the Routing Map in SKILL.md routes to a specific tool, read this file for the exact commands, API parameters, and error handling.
## Service Boundaries
Only call a service when the current user request requires that service. Do not send the same content to every listed service.
- AgentLens receives a URL only when AgentLens is needed for the current read request.
- OpenAI Whisper receives audio only if the user chooses API transcription.
- Notion and ima receive archive content only when the user asks to save the current item and confirms the target destination.
- Obsidian writes to the user's local vault path.
- Credential examples read only the explicit variables and config paths shown here. Prefer platform secret storage or environment variables; use local plaintext files only after user approval.
---
## 1. General Web Pages — r.jina.ai
**Tool**: r.jina.ai
**API key**: None (free)
**Command**:
```bash
curl -L -s "https://r.jina.ai/{url}"
```
Returns clean Markdown. Works for most public web pages.
**Note**: `{url}` must include the full `https://` prefix:
```bash
curl -L -s "https://r.jina.ai/https://example.com/article"
```
**Fallback**: If Jina returns empty content, the page likely requires JS rendering. Try Camoufox or AgentLens.
---
## 2. X / Twitter — FxTwitter API
**Tool**: FxTwitter API
**API key**: None (free, no login or cookie required)
**Code**:
```python
import urllib.request, urllib.error, re, json
def fetch_tweet(url):
pattern = r'(?:x\.com|twitter\.com)/([a-zA-Z0-9_]{1,15})/status/(\d+)'
match = re.search(pattern, url)
if not match:
return {"error": f"Cannot parse tweet URL: {url}"}
username, tweet_id = match.group(1), match.group(2)
api_url = f"https://api.fxtwitter.com/{username}/status/{tweet_id}"
req = urllib.request.Request(api_url, headers={"User-Agent": "Mozilla/5.0"})
try:
with urllib.request.urlopen(req, timeout=30) as resp:
data = json.loads(resp.read().decode())
except urllib.error.HTTPError as e:
return {"error": f"FxTwitter HTTP {e.code}: could not fetch tweet (may be deleted or private)"}
except Exception as e:
return {"error": f"FxTwitter error: {e}"}
if data.get("code") != 200:
return {"error": f"FxTwitter error: {data.get('message')}"}
tweet = data["tweet"]
return {
"text": tweet.get("text", ""),
"author": tweet.get("author", {}).get("name", ""),
"screen_name": tweet.get("author", {}).get("screen_name", ""),
"likes": tweet.get("likes", 0),
"retweets": tweet.get("retweets", 0),
"views": tweet.get("views", 0),
"replies": tweet.get("replies", 0),
"created_at": tweet.get("created_at", ""),
"media": tweet.get("media", {}).get("all", []),
"quote": tweet.get("quote", {})
}
```
**Fallback**: AgentLens API (use when FxTwitter returns NOT_FOUND or rate-limit error)
**Limitation**: Thread replies, usAionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
- Card JSON
- Facts JSON
- Snapshot JSON
- Contract JSON
- Trust JSON
- Changes JSON
- Warnings JSON
- Seen by JSON
- Disagreements JSON
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/hermiod99-vibe/skills/agent-social-reader",
"sourceUrl": "https://clawhub.ai/hermiod99-vibe/skills/agent-social-reader",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T23:07:56.015Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-hermiod99-vibe-agent-social-reader/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-hermiod99-vibe-agent-social-reader/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T23:07:56.015Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "979 downloads",
"href": "https://clawhub.ai/hermiod99-vibe/agent-social-reader",
"sourceUrl": "https://clawhub.ai/hermiod99-vibe/agent-social-reader",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T23:07:56.015Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "2.0.1",
"href": "https://clawhub.ai/hermiod99-vibe/agent-social-reader",
"sourceUrl": "https://clawhub.ai/hermiod99-vibe/agent-social-reader",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-07-14T09:37:09.386Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-hermiod99-vibe-agent-social-reader/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-hermiod99-vibe-agent-social-reader/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 2.0.1",
"description": "**agent-social-reader 2.0.1** - Changed: Skill now only acts when the user explicitly asks to read, summarize, analyze, or save a specific public URL; no background detection or auto-triggering. - Clarified: Will only save, archive, or export content to Notion, Obsidian, or ima if the active user request includes that exact destination. - Security: Emphasized not to enumerate arbitrary environment variables or user home directories; only reference explicit variables and config paths. - User privacy: Local config file is used only if the user explicitly approves plaintext storage, and never for arbitrary credentials. - Temp media: Cleanup now always previews matching files before deletion, and only deletes after the user confirms. - Docs: Removed general-purpose triggers and shortened the skill summary to reflect strict \"user-initiated only\" operations. Removed the `skill-card.md` file.",
"href": "https://clawhub.ai/hermiod99-vibe/agent-social-reader",
"sourceUrl": "https://clawhub.ai/hermiod99-vibe/agent-social-reader",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-07-14T09:37:09.386Z",
"isPublic": true
}
]
}Record generated Oct 12, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust, changes, warnings, seen by, disagreements.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-hermiod99-vibe-agent-social-reader/run-check
