[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M72AMCCVEEGP2D47JZP1QMA2":3,"skill-same:01M72AMCCVEEGP2D47JZP1QMA2":46},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":13,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M72AMCCVEEGP2D47JZP1QMA2","twitter-automation",null,"Automate Twitter\u002FX tasks via Rube MCP (Composio): posts, search, users, bookmarks, lists, media. Always search tools first for current schemas.","Sansar35\u002Fclaude-agent","Sansar35","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F145020281?v=4","01M724CQ2SCC86MGNSD87D0D4K","01M724CQ3965G9WJ3QXE3AJ5YY",1,"MIT","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fantigravity\u002Ftwitter-automation\u002FSKILL.md",[],[],"2026-11-10 18:39:20",false,"---\nname: twitter-automation\ndescription: \"Automate Twitter\u002FX tasks via Rube MCP (Composio): posts, search, users, bookmarks, lists, media. Always search tools first for current schemas.\"\nrisk: critical\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Twitter\u002FX Automation via Rube MCP\n\nAutomate Twitter\u002FX operations through Composio's Twitter toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Twitter connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `twitter`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `twitter`\n3. If connection is not ACTIVE, follow the returned auth link to complete Twitter OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create and Manage Posts\n\n**When to use**: User wants to create, delete, or look up tweets\u002Fposts\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user info [Prerequisite]\n2. `TWITTER_UPLOAD_MEDIA` \u002F `TWITTER_UPLOAD_LARGE_MEDIA` - Upload media [Optional]\n3. `TWITTER_CREATION_OF_A_POST` - Create a new post [Required]\n4. `TWITTER_POST_LOOKUP_BY_POST_ID` - Look up a specific post [Optional]\n5. `TWITTER_POST_DELETE_BY_POST_ID` - Delete a post [Optional]\n\n**Key parameters**:\n- `text`: Post text content (max 280 weighted characters)\n- `media__media_ids`: Array of media ID strings for attachments\n- `reply__in_reply_to_tweet_id`: Tweet ID to reply to\n- `quote_tweet_id`: Tweet ID to quote\n- `id`: Post ID for lookup\u002Fdelete\n\n**Pitfalls**:\n- Post text is limited to 280 weighted characters; some characters count as more than one\n- Posting is NOT idempotent; retrying on timeout will create duplicate posts\n- Media IDs must be numeric strings, not integers\n- UPLOAD_LARGE_MEDIA is for videos\u002FGIFs; UPLOAD_MEDIA for images\n- Always call USER_LOOKUP_ME first to get the authenticated user's ID\n\n### 2. Search Posts\n\n**When to use**: User wants to find tweets matching specific criteria\n\n**Tool sequence**:\n1. `TWITTER_RECENT_SEARCH` - Search recent tweets (last 7 days) [Required]\n2. `TWITTER_FULL_ARCHIVE_SEARCH` - Search full archive (Academic access) [Optional]\n3. `TWITTER_RECENT_SEARCH_COUNTS` - Get tweet count matching query [Optional]\n\n**Key parameters**:\n- `query`: Search query using Twitter search operators\n- `max_results`: Results per page (10-100)\n- `next_token`: Pagination token\n- `start_time`\u002F`end_time`: ISO 8601 time range\n- `tweet__fields`: Comma-separated fields to include\n- `expansions`: Related objects to expand\n\n**Pitfalls**:\n- RECENT_SEARCH covers only the last 7 days; use FULL_ARCHIVE_SEARCH for older tweets\n- FULL_ARCHIVE_SEARCH requires Academic Research or Enterprise access\n- Query operators: `from:username`, `to:username`, `is:retweet`, `has:media`, `-is:retweet`\n- Empty results return `meta.result_count: 0` with no `data` field\n- Rate limits vary by endpoint and access level; check response headers\n\n### 3. Look Up Users\n\n**When to use**: User wants to find or inspect Twitter user profiles\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user [Optional]\n2. `TWITTER_USER_LOOKUP_BY_USERNAME` - Look up by username [Optional]\n3. `TWITTER_USER_LOOKUP_BY_ID` - Look up by user ID [Optional]\n4. `TWITTER_USER_LOOKUP_BY_IDS` - Batch look up multiple users [Optional]\n\n**Key parameters**:\n- `username`: Twitter handle without @ prefix\n- `id`: Numeric user ID string\n- `ids`: Comma-separated user IDs for batch lookup\n- `user__fields`: Fields to return (description, public_metrics, etc.)\n\n**Pitfalls**:\n- Usernames are case-insensitive but must not include the @ prefix\n- User IDs are numeric strings, not integers\n- Suspended or deleted accounts return errors, not empty results\n- LOOKUP_BY_IDS accepts max 100 IDs per request\n\n### 4. Manage Bookmarks\n\n**When to use**: User wants to save, view, or remove bookmarked tweets\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user ID [Prerequisite]\n2. `TWITTER_BOOKMARKS_BY_USER` - List bookmarked posts [Required]\n3. `TWITTER_ADD_POST_TO_BOOKMARKS` - Bookmark a post [Optional]\n4. `TWITTER_REMOVE_A_BOOKMARKED_POST` - Remove bookmark [Optional]\n\n**Key parameters**:\n- `id`: User ID (from USER_LOOKUP_ME) for listing bookmarks\n- `tweet_id`: Tweet ID to bookmark or unbookmark\n- `max_results`: Results per page\n- `pagination_token`: Token for next page\n\n**Pitfalls**:\n- Bookmarks require the authenticated user's ID, not username\n- Bookmarks are private; only the authenticated user can see their own\n- Pagination uses `pagination_token`, not `next_token`\n\n### 5. Manage Lists\n\n**When to use**: User wants to view or manage Twitter lists\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user ID [Prerequisite]\n2. `TWITTER_GET_A_USER_S_OWNED_LISTS` - List owned lists [Optional]\n3. `TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS` - List memberships [Optional]\n4. `TWITTER_GET_A_USER_S_PINNED_LISTS` - Get pinned lists [Optional]\n5. `TWITTER_GET_USER_S_FOLLOWED_LISTS` - Get followed lists [Optional]\n6. `TWITTER_LIST_LOOKUP_BY_LIST_ID` - Get list details [Optional]\n\n**Key parameters**:\n- `id`: User ID for listing owned\u002Fmember\u002Ffollowed lists\n- `list_id`: List ID for specific list lookup\n- `max_results`: Results per page (1-100)\n\n**Pitfalls**:\n- List IDs and User IDs are numeric strings\n- Lists endpoints require the user's numeric ID, not username\n\n### 6. Interact with Posts\n\n**When to use**: User wants to like, unlike, or view liked posts\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user ID [Prerequisite]\n2. `TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID` - Get liked posts [Optional]\n3. `TWITTER_UNLIKE_POST` - Unlike a post [Optional]\n\n**Key parameters**:\n- `id`: User ID for listing liked posts\n- `tweet_id`: Tweet ID to unlike\n\n**Pitfalls**:\n- Like\u002Funlike endpoints require user ID from USER_LOOKUP_ME\n- Liked posts pagination may be slow for users with many likes\n\n## Common Patterns\n\n### Search Query Syntax\n\n**Operators**:\n- `from:username` - Posts by user\n- `to:username` - Replies to user\n- `@username` - Mentions user\n- `#hashtag` - Contains hashtag\n- `\"exact phrase\"` - Exact match\n- `has:media` - Contains media\n- `has:links` - Contains links\n- `is:retweet` \u002F `-is:retweet` - Include\u002Fexclude retweets\n- `is:reply` \u002F `-is:reply` - Include\u002Fexclude replies\n- `lang:en` - Language filter\n\n**Combinators**:\n- Space for AND\n- `OR` for either condition\n- `-` prefix for NOT\n- Parentheses for grouping\n\n### Media Upload Flow\n\n```\n1. Upload media with TWITTER_UPLOAD_MEDIA (images) or TWITTER_UPLOAD_LARGE_MEDIA (video\u002FGIF)\n2. Get media_id from response\n3. Pass media_id as string in media__media_ids array to TWITTER_CREATION_OF_A_POST\n```\n\n## Known Pitfalls\n\n**Character Limits**:\n- Standard posts: 280 weighted characters\n- Some Unicode characters count as more than 1\n- URLs are shortened and count as fixed length (23 characters)\n\n**Rate Limits**:\n- Vary significantly by access tier (Free, Basic, Pro, Enterprise)\n- Free tier: very limited (e.g., 1,500 posts\u002Fmonth)\n- Check `x-rate-limit-remaining` header in responses\n\n**Idempotency**:\n- Post creation is NOT idempotent; duplicate posts will be created on retry\n- Implement deduplication logic for automated posting\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Create post | TWITTER_CREATION_OF_A_POST | text |\n| Delete post | TWITTER_POST_DELETE_BY_POST_ID | id |\n| Look up post | TWITTER_POST_LOOKUP_BY_POST_ID | id |\n| Recent search | TWITTER_RECENT_SEARCH | query |\n| Archive search | TWITTER_FULL_ARCHIVE_SEARCH | query |\n| Search counts | TWITTER_RECENT_SEARCH_COUNTS | query |\n| My profile | TWITTER_USER_LOOKUP_ME | (none) |\n| User by name | TWITTER_USER_LOOKUP_BY_USERNAME | username |\n| User by ID | TWITTER_USER_LOOKUP_BY_ID | id |\n| Users by IDs | TWITTER_USER_LOOKUP_BY_IDS | ids |\n| Upload media | TWITTER_UPLOAD_MEDIA | media |\n| Upload video | TWITTER_UPLOAD_LARGE_MEDIA | media |\n| List bookmarks | TWITTER_BOOKMARKS_BY_USER | id |\n| Add bookmark | TWITTER_ADD_POST_TO_BOOKMARKS | tweet_id |\n| Remove bookmark | TWITTER_REMOVE_A_BOOKMARKED_POST | tweet_id |\n| Unlike post | TWITTER_UNLIKE_POST | tweet_id |\n| Liked posts | TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID | id |\n| Owned lists | TWITTER_GET_A_USER_S_OWNED_LISTS | id |\n| List memberships | TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS | id |\n| Pinned lists | TWITTER_GET_A_USER_S_PINNED_LISTS | id |\n| Followed lists | TWITTER_GET_USER_S_FOLLOWED_LISTS | id |\n| List details | TWITTER_LIST_LOOKUP_BY_LIST_ID | list_id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","# Twitter\u002FX Automation via Rube MCP\n\nAutomate Twitter\u002FX operations through Composio's Twitter toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Twitter connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `twitter`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `twitter`\n3. If connection is not ACTIVE, follow the returned auth link to complete Twitter OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create and Manage Posts\n\n**When to use**: User wants to create, delete, or look up tweets\u002Fposts\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user info [Prerequisite]\n2. `TWITTER_UPLOAD_MEDIA` \u002F `TWITTER_UPLOAD_LARGE_MEDIA` - Upload media [Optional]\n3. `TWITTER_CREATION_OF_A_POST` - Create a new post [Required]\n4. `TWITTER_POST_LOOKUP_BY_POST_ID` - Look up a specific post [Optional]\n5. `TWITTER_POST_DELETE_BY_POST_ID` - Delete a post [Optional]\n\n**Key parameters**:\n- `text`: Post text content (max 280 weighted characters)\n- `media__media_ids`: Array of media ID strings for attachments\n- `reply__in_reply_to_tweet_id`: Tweet ID to reply to\n- `quote_tweet_id`: Tweet ID to quote\n- `id`: Post ID for lookup\u002Fdelete\n\n**Pitfalls**:\n- Post text is limited to 280 weighted characters; some characters count as more than one\n- Posting is NOT idempotent; retrying on timeout will create duplicate posts\n- Media IDs must be numeric strings, not integers\n- UPLOAD_LARGE_MEDIA is for videos\u002FGIFs; UPLOAD_MEDIA for images\n- Always call USER_LOOKUP_ME first to get the authenticated user's ID\n\n### 2. Search Posts\n\n**When to use**: User wants to find tweets matching specific criteria\n\n**Tool sequence**:\n1. `TWITTER_RECENT_SEARCH` - Search recent tweets (last 7 days) [Required]\n2. `TWITTER_FULL_ARCHIVE_SEARCH` - Search full archive (Academic access) [Optional]\n3. `TWITTER_RECENT_SEARCH_COUNTS` - Get tweet count matching query [Optional]\n\n**Key parameters**:\n- `query`: Search query using Twitter search operators\n- `max_results`: Results per page (10-100)\n- `next_token`: Pagination token\n- `start_time`\u002F`end_time`: ISO 8601 time range\n- `tweet__fields`: Comma-separated fields to include\n- `expansions`: Related objects to expand\n\n**Pitfalls**:\n- RECENT_SEARCH covers only the last 7 days; use FULL_ARCHIVE_SEARCH for older tweets\n- FULL_ARCHIVE_SEARCH requires Academic Research or Enterprise access\n- Query operators: `from:username`, `to:username`, `is:retweet`, `has:media`, `-is:retweet`\n- Empty results return `meta.result_count: 0` with no `data` field\n- Rate limits vary by endpoint and access level; check response headers\n\n### 3. Look Up Users\n\n**When to use**: User wants to find or inspect Twitter user profiles\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user [Optional]\n2. `TWITTER_USER_LOOKUP_BY_USERNAME` - Look up by username [Optional]\n3. `TWITTER_USER_LOOKUP_BY_ID` - Look up by user ID [Optional]\n4. `TWITTER_USER_LOOKUP_BY_IDS` - Batch look up multiple users [Optional]\n\n**Key parameters**:\n- `username`: Twitter handle without @ prefix\n- `id`: Numeric user ID string\n- `ids`: Comma-separated user IDs for batch lookup\n- `user__fields`: Fields to return (description, public_metrics, etc.)\n\n**Pitfalls**:\n- Usernames are case-insensitive but must not include the @ prefix\n- User IDs are numeric strings, not integers\n- Suspended or deleted accounts return errors, not empty results\n- LOOKUP_BY_IDS accepts max 100 IDs per request\n\n### 4. Manage Bookmarks\n\n**When to use**: User wants to save, view, or remove bookmarked tweets\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user ID [Prerequisite]\n2. `TWITTER_BOOKMARKS_BY_USER` - List bookmarked posts [Required]\n3. `TWITTER_ADD_POST_TO_BOOKMARKS` - Bookmark a post [Optional]\n4. `TWITTER_REMOVE_A_BOOKMARKED_POST` - Remove bookmark [Optional]\n\n**Key parameters**:\n- `id`: User ID (from USER_LOOKUP_ME) for listing bookmarks\n- `tweet_id`: Tweet ID to bookmark or unbookmark\n- `max_results`: Results per page\n- `pagination_token`: Token for next page\n\n**Pitfalls**:\n- Bookmarks require the authenticated user's ID, not username\n- Bookmarks are private; only the authenticated user can see their own\n- Pagination uses `pagination_token`, not `next_token`\n\n### 5. Manage Lists\n\n**When to use**: User wants to view or manage Twitter lists\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user ID [Prerequisite]\n2. `TWITTER_GET_A_USER_S_OWNED_LISTS` - List owned lists [Optional]\n3. `TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS` - List memberships [Optional]\n4. `TWITTER_GET_A_USER_S_PINNED_LISTS` - Get pinned lists [Optional]\n5. `TWITTER_GET_USER_S_FOLLOWED_LISTS` - Get followed lists [Optional]\n6. `TWITTER_LIST_LOOKUP_BY_LIST_ID` - Get list details [Optional]\n\n**Key parameters**:\n- `id`: User ID for listing owned\u002Fmember\u002Ffollowed lists\n- `list_id`: List ID for specific list lookup\n- `max_results`: Results per page (1-100)\n\n**Pitfalls**:\n- List IDs and User IDs are numeric strings\n- Lists endpoints require the user's numeric ID, not username\n\n### 6. Interact with Posts\n\n**When to use**: User wants to like, unlike, or view liked posts\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user ID [Prerequisite]\n2. `TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID` - Get liked posts [Optional]\n3. `TWITTER_UNLIKE_POST` - Unlike a post [Optional]\n\n**Key parameters**:\n- `id`: User ID for listing liked posts\n- `tweet_id`: Tweet ID to unlike\n\n**Pitfalls**:\n- Like\u002Funlike endpoints require user ID from USER_LOOKUP_ME\n- Liked posts pagination may be slow for users with many likes\n\n## Common Patterns\n\n### Search Query Syntax\n\n**Operators**:\n- `from:username` - Posts by user\n- `to:username` - Replies to user\n- `@username` - Mentions user\n- `#hashtag` - Contains hashtag\n- `\"exact phrase\"` - Exact match\n- `has:media` - Contains media\n- `has:links` - Contains links\n- `is:retweet` \u002F `-is:retweet` - Include\u002Fexclude retweets\n- `is:reply` \u002F `-is:reply` - Include\u002Fexclude replies\n- `lang:en` - Language filter\n\n**Combinators**:\n- Space for AND\n- `OR` for either condition\n- `-` prefix for NOT\n- Parentheses for grouping\n\n### Media Upload Flow\n\n```\n1. Upload media with TWITTER_UPLOAD_MEDIA (images) or TWITTER_UPLOAD_LARGE_MEDIA (video\u002FGIF)\n2. Get media_id from response\n3. Pass media_id as string in media__media_ids array to TWITTER_CREATION_OF_A_POST\n```\n\n## Known Pitfalls\n\n**Character Limits**:\n- Standard posts: 280 weighted characters\n- Some Unicode characters count as more than 1\n- URLs are shortened and count as fixed length (23 characters)\n\n**Rate Limits**:\n- Vary significantly by access tier (Free, Basic, Pro, Enterprise)\n- Free tier: very limited (e.g., 1,500 posts\u002Fmonth)\n- Check `x-rate-limit-remaining` header in responses\n\n**Idempotency**:\n- Post creation is NOT idempotent; duplicate posts will be created on retry\n- Implement deduplication logic for automated posting\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Create post | TWITTER_CREATION_OF_A_POST | text |\n| Delete post | TWITTER_POST_DELETE_BY_POST_ID | id |\n| Look up post | TWITTER_POST_LOOKUP_BY_POST_ID | id |\n| Recent search | TWITTER_RECENT_SEARCH | query |\n| Archive search | TWITTER_FULL_ARCHIVE_SEARCH | query |\n| Search counts | TWITTER_RECENT_SEARCH_COUNTS | query |\n| My profile | TWITTER_USER_LOOKUP_ME | (none) |\n| User by name | TWITTER_USER_LOOKUP_BY_USERNAME | username |\n| User by ID | TWITTER_USER_LOOKUP_BY_ID | id |\n| Users by IDs | TWITTER_USER_LOOKUP_BY_IDS | ids |\n| Upload media | TWITTER_UPLOAD_MEDIA | media |\n| Upload video | TWITTER_UPLOAD_LARGE_MEDIA | media |\n| List bookmarks | TWITTER_BOOKMARKS_BY_USER | id |\n| Add bookmark | TWITTER_ADD_POST_TO_BOOKMARKS | tweet_id |\n| Remove bookmark | TWITTER_REMOVE_A_BOOKMARKED_POST | tweet_id |\n| Unlike post | TWITTER_UNLIKE_POST | tweet_id |\n| Liked posts | TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID | id |\n| Owned lists | TWITTER_GET_A_USER_S_OWNED_LISTS | id |\n| List memberships | TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS | id |\n| Pinned lists | TWITTER_GET_A_USER_S_PINNED_LISTS | id |\n| Followed lists | TWITTER_GET_USER_S_FOLLOWED_LISTS | id |\n| List details | TWITTER_LIST_LOOKUP_BY_LIST_ID | list_id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n",{"name":5,"risk":23,"source":24,"date_added":25,"description":7},"critical","community","2026-02-27","main","d046d088ce5a79a083f0abc0fe1b7ded73bc5b1f","claude-config\u002Fskills\u002Fantigravity\u002Ftwitter-automation","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent","https:\u002F\u002Fgithub.com\u002FSansar35","2026-05-10 16:04:53",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add Sansar35\u002Fclaude-agent --skill twitter-automation",{"tool":38,"command":39},"bunx","bunx skills add Sansar35\u002Fclaude-agent --skill twitter-automation",{"tool":41,"command":42},"pnpm","pnpm dlx skills add Sansar35\u002Fclaude-agent --skill twitter-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fantigravity\u002Ftwitter-automation\u002FSKILL.md",true,[],[47,54,61,68,75,83],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":53,"publishedAt":18},"01M72DVAN1JYEA302MT0C5MGD6","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzustand-store-ts\u002FSKILL.md",[],[],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":18},"01M72DV8J5NBRRM4RPDFRV95N7","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzod-validation-expert\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":18},"01M72DV5EMHW0BHP9BZ167MDCB","zinc-database","Access ZINC (230M+ purchasable compounds). Search by ZINC ID\u002FSMILES, similarity searches, 3D-ready structures for docking, analog discovery, for virtual screening and drug discovery.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzinc-database\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":18},"01M72DV216QY0E693ZPEVQ0DBS","zarr-python","Chunked N-D arrays for cloud storage. Compressed arrays, parallel I\u002FO, S3\u002FGCS integration, NumPy\u002FDask\u002FXarray compatible, for large-scale scientific computing pipelines.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzarr-python\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":79,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":18},"01M72DTXQREMCRKA8NHCVKHN4W","zapier-workflows","Manage and trigger pre-built Zapier workflows and MCP tool orchestration. Use when user mentions workflows, Zaps, automations, daily digest, research, search, lead tracking, expenses, or asks to \"run\" any process. Also handles Perplexity-based research and Google Sheets data tracking.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-workflows\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-workflows\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":18},"01M72DTT17TBSJ0Y8J2XZ4C9TZ","zapier-make-patterns","No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity - these platforms have their own patterns, pitfalls, and breaking points.  This skill covers when to use which platform, how to build reliable automations, and when to graduate to code-based solutions. Key insight: Zapier optimizes for simplicity and integrations (7000+ apps), Make optimizes for power","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-make-patterns\u002FSKILL.md",[],[]]