
Pull live Twitter/X profiles, tweets, followers, spaces, and trends through twitterapi.io scripts so your agent can research audiences and monitor distribution without manual copy-paste.
Overview
twitter is an agent skill most often used in Launch (also Idea, Grow) that retrieves Twitter/X users, tweets, and social graph data through twitterapi.io-backed Python scripts.
Install
npx skills add https://github.com/resciencelab/opc-skills --skill twitterWhat is this skill?
- Reads users, tweets, replies, followers, communities, spaces, and trends via twitterapi.io
- Ships Python CLI scripts (batch user lookup, follow-relationship checks, and shared API helpers)
- MIT-licensed opc-skills package with documented script usage patterns
- Fits agent workflows that need structured X data instead of browser scraping
Adoption & trust: 1.7k installs on skills.sh; 920 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need trustworthy X/Twitter facts in the agent loop but only have fragile scraping or manual tab switching.
Who is it for?
Indie builders automating X research, follower checks, or trend pulls inside Claude Code, Cursor, or Codex with a paid twitterapi.io key.
Skip if: Teams that need official X API enterprise contracts, bulk posting, or ad campaign management without a third-party API.
When should I use this skill?
When the user needs to search or retrieve Twitter/X content—user info, tweets, replies, followers, communities, spaces, or trends—via twitterapi.io.
What do I get? / Deliverables
After invoking twitter, your agent runs documented Python scripts against twitterapi.io and returns structured user and tweet data you can cite in research or distribution plans.
- Terminal output of users, tweets, or relationship checks
- Reusable Python script invocations for X data pulls
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Social distribution and listening sit in Launch, but the same API calls support earlier discovery and later content workflows, so Launch is the canonical shelf. Distribution is where builders track mentions, competitors on X, and outbound social signals—not generic backend plumbing.
Where it fits
Batch-fetch competitor founder accounts and recent tweets before you commit to a niche.
Pull trends and community posts to shape a launch thread calendar.
Verify follower relationships and reply threads when refining a content experiment.
How it compares
Use this skills.sh integration package instead of asking the model to invent tweets or scrape X without an API contract.
Common Questions / FAQ
Who is twitter for?
Solo builders and small teams who ship with AI coding agents and need scripted read access to Twitter/X for launch, audience, or content research.
When should I use twitter?
Use it in Idea when scanning competitors or voices on X, in Launch when tracking distribution and mentions, and in Grow when feeding content or lifecycle research—any time SKILL.md-style workflows need live tweet or follower data.
Is twitter safe to install?
Review the Security Audits panel on this Prism page for ingest findings; you must also guard twitterapi.io API keys and treat retrieved social data under your privacy policy.
SKILL.md
READMESKILL.md - Twitter
{ "name": "twitter", "version": "1.0.0", "description": "Search and retrieve content from Twitter/X. Get user info, tweets, replies, followers, communities, spaces, and trends via twitterapi.io.", "author": { "name": "ReScienceLab" }, "homepage": "https://github.com/ReScienceLab/opc-skills/tree/main/skills/twitter", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "keywords": [ "twitter", "X", "tweet" ], "skills": [ "./SKILL.md" ], "commands": [ "./scripts/" ] } #!/usr/bin/env python3 """ Batch get user info by user IDs Usage: python3 scripts/batch_get_users.py USER_ID1,USER_ID2,USER_ID3 """ import argparse from twitter_api import api_get, print_users_list def main(): parser = argparse.ArgumentParser(description="Batch get Twitter users by IDs") parser.add_argument("user_ids", help="Comma-separated user IDs") args = parser.parse_args() data = api_get("user/batch_info_by_ids", {"userIds": args.user_ids}) users = data.get("users") or data.get("data") or [] print(f"total: {len(users)}") print_users_list(users) if __name__ == "__main__": main() #!/usr/bin/env python3 """ Check follow relationship between two users Usage: python3 scripts/check_relationship.py USER1 USER2 """ import argparse from twitter_api import api_get def main(): parser = argparse.ArgumentParser(description="Check follow relationship") parser.add_argument("source", help="Source username") parser.add_argument("target", help="Target username") args = parser.parse_args() params = {"source_user_name": args.source, "target_user_name": args.target} data = api_get("user/check_follow_relationship", params) result = data.get("data") or data print(f"source: @{args.source}") print(f"target: @{args.target}") print(f"source_follows_target: {result.get('following', False)}") print(f"target_follows_source: {result.get('followed_by', False)}") if __name__ == "__main__": main() #!/usr/bin/env python3 """ Twitter API credential management. Reads from environment: TWITTERAPI_API_KEY """ import os def get_twitter_api_key() -> str | None: """Get TwitterAPI.io API key""" return os.environ.get("TWITTERAPI_API_KEY") def has_twitter_key() -> bool: """Check if API key is available""" return get_twitter_api_key() is not None #!/usr/bin/env python3 """ Get long-form article from tweet Usage: python3 scripts/get_article.py TWEET_ID """ import argparse import json from twitter_api import api_get def main(): parser = argparse.ArgumentParser(description="Get Twitter article") parser.add_argument("tweet_id", help="Tweet ID with article") parser.add_argument("--json", "-j", action="store_true", help="Output as JSON") args = parser.parse_args() data = api_get("article", {"tweet_id": args.tweet_id}) article = data.get("data") or data if args.json: print(json.dumps(article, indent=2)) return print(f"tweet_id: {args.tweet_id}") if article.get("title"): print(f"title: {article['title']}") if article.get("content"): print(f"---") print(article["content"][:2000]) if len(article.get("content", "")) > 2000: print(f"... (truncated, {len(article['content'])} chars total)") if __name__ == "__main__": main() #!/usr/bin/env python3 """ Get community members Usage: python3 scripts/get_community_members.py COMMUNITY_ID --limit 20 """ import argparse from twitter_api import api_get, print_users_list, print_pagination def main(): parser = argparse.ArgumentParser(description="Get community members") parser.add_argument("community_id", help="Community ID") parser.add_argument("--limit", "-l", type=int, default=20, help="Max members") parser.add_argument("--cursor", "-c", help="Pagination cursor") args = parser.parse_args() params = {"communityId": args.community_id, "cursor":