{"id":"2d1bd566-bc42-462d-ae56-3a475508e341","shortId":"UY9Hp8","kind":"skill","title":"twitter-automation","tagline":"Automate Twitter/X tasks via Rube MCP (Composio): posts, search, users, bookmarks, lists, media. Always search tools first for current schemas.","description":"# Twitter/X Automation via Rube MCP\n\nAutomate Twitter/X 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://rube.app/mcp` 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/posts\n\n**Tool sequence**:\n1. `TWITTER_USER_LOOKUP_ME` - Get authenticated user info [Prerequisite]\n2. `TWITTER_UPLOAD_MEDIA` / `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/delete\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/GIFs; 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`/`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/member/followed 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/unlike 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` / `-is:retweet` - Include/exclude retweets\n- `is:reply` / `-is:reply` - Include/exclude 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/GIF)\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/month)\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.","tags":["twitter","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-twitter-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/twitter-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34460 github stars · SKILL.md body (9,044 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:52:03.692Z","embedding":null,"createdAt":"2026-04-18T21:46:36.762Z","updatedAt":"2026-04-22T06:52:03.692Z","lastSeenAt":"2026-04-22T06:52:03.692Z","tsv":"'-100':385,818 '/mcp':78 '0':453 '1':98,145,164,337,487,615,728,817,856,992,1045,1072 '10':384 '100':594 '2':110,174,321,348,496,625,738,866,1006 '23':1054 '280':227,269,1035 '3':118,185,359,469,507,634,750,881,1012 '4':133,196,519,598,644,761 '5':209,712,773 '500':1073 '6':784,838 '7':345,418 '8601':395 'academ':356,431 'accept':592 'access':357,435,464,1061 'account':583 'action':1310 'activ':50,123,138 'add':75,92,636,1211,1214 'alway':17,60,308 'api':88 'applic':1304 'archiv':351,355,422,428,1143,1147 'array':233,1022 'ask':1348 'attach':239 'auth':127 'authent':170,317,493,621,688,699,734,862 'autom':3,4,25,29,1101 'avail':49,103 'basic':1064 'batch':525,550 'bookmark':14,600,611,627,631,639,640,648,651,664,670,685,694,1205,1207,1212,1217,1221,1225 'boundari':1356 'call':61,111,309 'case':565 'case-insensit':564 'charact':229,271,273,1031,1037,1040,1055 'check':466,1075 'clarif':1350 'clear':1323 'client':85 'combin':975 'comma':401,545 'comma-separ':400,544 'common':925 'complet':130 'composio':10,33 'condit':982 'configur':86 'confirm':105,134 'connect':45,52,56,114,120,135 'contain':945,953,957 'content':225 'core':143 'count':274,363,366,452,1041,1050,1151,1155 'cover':414 'creat':146,156,191,287,1094,1110 'creation':187,1025,1086,1113 'criteria':334,1359 'current':22,68 'data':456 'day':346,419 'dedupl':1098 'delet':157,212,216,582,1118,1122 'describ':1311,1327 'descript':557 'detail':793,1289 'duplic':288,1090 'e.g':1071 'either':981 'empti':448,587 'en':972 'end':392 'endpoint':94,462,829,906 'enterpris':434,1066 'environ':1339 'environment-specif':1338 'error':585 'etc':560 'exact':947,949 'execut':1306 'expand':410 'expans':406 'expert':1344 'field':399,403,457,553,554 'filter':974 'find':330,479 'first':20,65,313 'fix':1052 'flow':991 'follow':124,778,781,1279,1285 'free':1063,1067 'full':350,354,421,427,1146 'get':67,72,169,315,364,492,620,733,740,752,763,769,775,780,791,861,877,1007,1252,1262,1272,1282 'group':988 'handl':535 'hashtag':944,946 'header':468,1081 'id':202,215,232,236,245,247,253,255,258,260,291,320,512,517,524,538,541,543,548,574,591,595,623,655,657,666,668,691,736,790,797,799,805,807,821,824,835,864,876,891,893,899,901,909,1009,1015,1021,1125,1126,1135,1136,1175,1180,1181,1184,1189,1190,1210,1219,1228,1235,1247,1248,1258,1268,1278,1287,1295,1297 'idempot':282,1084,1089 'imag':307,999 'implement':1097 'includ':405,570 'include/exclude':963,969 'info':172 'input':1353 'insensit':566 'inspect':481 'integ':297,579 'interact':839 'iso':394 'key':89,220,370,531,653,795,889,1108 'known':1029 'lang':971 'languag':973 'larg':180,299,1003,1201 'last':344,417 'length':1053 'level':465 'like':848,852,871,878,896,914,924,1236,1242 'like/unlike':905 'limit':267,459,1032,1057,1070,1079,1315 'link':128,956,958 'list':15,630,663,714,725,745,746,748,756,758,768,771,779,782,786,789,792,801,803,804,806,810,820,828,895,1204,1250,1257,1259,1266,1270,1277,1280,1286,1288,1291,1294,1296 'logic':1099 'look':159,203,470,502,513,526,1127 'lookup':167,199,311,490,499,510,522,551,589,618,660,731,787,811,859,912,1132,1161,1169,1178,1187,1292 'lookup/delete':262 'manag':55,113,148,599,713,723 'mani':923 'match':332,367,950,1324 'max':226,379,593,673,812 'may':917 'mcp':9,28,39,42,74,81,101 'media':16,177,181,183,230,231,235,290,300,305,445,952,954,989,994,998,1004,1008,1014,1019,1020,1192,1195,1196,1202,1203 'membership':757,759,1260,1267 'mention':942 'meta.result':451 'metric':559 'miss':1361 'multipl':528 'must':43,292,568 'name':1166 'need':90 'new':193 'next':386,682,710 'none':1163 'numer':294,539,576,826,834 'oauth':132 'object':408,870,1241 'older':425 'one':278 'oper':31,378,437,930 'option':184,208,219,358,369,495,506,518,530,643,652,749,760,772,783,794,880,888 'output':1333 'overview':1314 'own':744,747,1249,1256 'owned/member/followed':802 'page':383,677,683,816 'pagin':388,678,705,707,916 'param':1109 'paramet':221,371,532,654,796,890 'parenthes':986 'pass':1013 'pattern':926 'per':382,596,676,815 'permiss':1354 'phrase':948 'pin':767,770,1269,1276 'pitfal':263,411,561,684,819,904,1030 'post':11,149,190,194,198,201,207,211,214,218,223,259,264,279,289,323,632,637,642,649,841,853,869,879,884,887,897,915,933,1028,1034,1085,1091,1102,1111,1116,1119,1121,1124,1129,1131,1134,1215,1226,1230,1233,1237,1240 'posts/month':1074 'prefix':537,572,983 'prerequisit':40,173,624,737,865 'privat':696 'pro':1065 'profil':484,1158 'provid':874,1245 'public':558 'queri':368,372,374,436,928,1142,1149,1156 'quick':1103 'quot':251,257 'rang':397 'rate':458,1056,1078 'recent':339,342,361,412,1137,1140,1153 'refer':1104 'relat':407 'remain':1080 'remov':610,646,650,1220,1223 'repli':240,242,249,938,966,968,970 'request':597 'requir':195,347,430,633,686,830,907,1352 'research':432 'respond':109 'respons':467,1011,1083 'result':380,381,449,588,674,675,813,814 'retri':283,1096 'return':126,450,556,584,868,1239 'retweet':443,447,960,962,964 'review':1345 'rube':8,27,38,41,46,54,62,73,100,106,112 'rube.app':77 'rube.app/mcp':76 'run':140 'safeti':1355 'save':607 'schema':23,70 'scope':1326 'search':12,18,47,63,107,322,340,341,352,353,362,373,377,413,423,429,927,1138,1141,1144,1148,1150,1154 'see':702 'separ':402,546 'sequenc':163,336,486,614,727,855 'server':82 'setup':71 'shorten':1048 'show':137 'signific':1059 'skill':1302,1318 'skill-twitter-automation' 'slow':919 'slug':1107 'source-sickn33' 'space':976 'specif':206,333,809,1340 'standard':1033 'start':390 'status':136 'stop':1346 'string':237,295,542,577,827,1017 'substitut':1336 'success':1358 'suspend':580 'syntax':929 'task':6,1105,1322 'test':1342 'text':222,224,265,1117 'tier':1062,1068 'time':391,393,396 'timeout':285 'token':387,389,679,680,708,711 'tool':19,48,64,69,108,162,335,485,613,726,854,1106 'toolkit':36,58,116 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':1331 'tweet':244,246,252,254,331,343,365,398,426,612,665,667,898,900,1218,1227,1234 'tweets/posts':161 'twitter':2,35,51,59,117,131,165,175,178,186,197,210,338,349,360,376,482,488,497,508,520,534,616,626,635,645,724,729,739,751,762,774,785,857,867,882,996,1001,1024,1112,1120,1130,1139,1145,1152,1159,1167,1176,1185,1193,1199,1206,1213,1222,1231,1238,1251,1261,1271,1281,1290 'twitter-autom':1 'twitter/x':5,24,30 'unbookmark':672 'unicod':1039 'unlik':849,883,885,903,1229,1232 'upload':176,179,182,298,304,990,993,997,1002,1191,1194,1197,1200 'url':1046 'use':152,326,375,420,475,603,706,717,844,1300,1316 'user':13,153,166,171,310,318,327,472,476,483,489,494,498,509,516,521,529,540,547,552,573,604,617,622,629,656,659,689,700,718,730,735,742,754,765,776,798,823,832,845,858,863,875,892,908,911,921,935,940,943,1160,1164,1168,1173,1177,1182,1186,1209,1246,1254,1264,1274,1283 'usernam':439,441,501,505,533,562,693,837,932,937,941,1171,1172 'valid':1341 'vari':460,1058 'verifi':99 'via':7,26,37,53 'video':1198 'video/gif':1005 'videos/gifs':303 'view':608,721,851 'want':154,328,477,605,719,846 'weight':228,270,1036 'without':536 'work':97 'workflow':142,144,1308 'x':1077 'x-rate-limit-remain':1076","prices":[{"id":"dd3f3f78-0f0c-46d6-853a-93b0f4bba128","listingId":"2d1bd566-bc42-462d-ae56-3a475508e341","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:46:36.762Z"}],"sources":[{"listingId":"2d1bd566-bc42-462d-ae56-3a475508e341","source":"github","sourceId":"sickn33/antigravity-awesome-skills/twitter-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/twitter-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:46:36.762Z","lastSeenAt":"2026-04-22T06:52:03.692Z"}],"details":{"listingId":"2d1bd566-bc42-462d-ae56-3a475508e341","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"twitter-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34460,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"834c76b20018fd9b9e906e7fa9c8061ce9fddb55","skill_md_path":"skills/twitter-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/twitter-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"twitter-automation","description":"Automate Twitter/X tasks via Rube MCP (Composio): posts, search, users, bookmarks, lists, media. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/twitter-automation"},"updatedAt":"2026-04-22T06:52:03.692Z"}}