{"id":"3409654c-96e7-408a-9f64-22f4f01347de","shortId":"5eSMgf","kind":"skill","title":"x-post","tagline":"Post to X (Twitter) from the command line. Text, images, and video.","description":"Post to X using the CLI tool at `~/.claude/skills/x-post/x-post.py`.\n\n## Setup\n\nRequires Python packages: `pip install xdk requests_oauthlib`\n\nCredentials file at `~/.claude/skills/x-post/x.key` (JSON):\n```json\n{\n  \"api_key\": \"...\",\n  \"api_secret\": \"...\",\n  \"access_token\": \"...\",\n  \"access_token_secret\": \"...\"\n}\n```\n\n## Commands\n\n**Post text:**\n```bash\npython ~/.claude/skills/x-post/x-post.py post \"Your tweet text\"\n```\n\n**Post with image:**\n```bash\npython ~/.claude/skills/x-post/x-post.py post \"Your tweet text\" --media /path/to/image.jpg\n```\n\n**Post with video:**\n```bash\npython ~/.claude/skills/x-post/x-post.py post \"Your tweet text\" --media /path/to/video.mp4\n```\n\n**Check profile:**\n```bash\npython ~/.claude/skills/x-post/x-post.py me\n```\n\n## Rules\n\n- Always show the user the exact tweet text before posting and get confirmation\n- Never post without explicit user approval\n- Video uploads use chunked upload (INIT/APPEND/FINALIZE) and may take a minute for processing\n- The script auto-detects media type from file extension","tags":["post","claude","code","startup","skills","rameerez","agent","agent-skills","agentic-ai","agentic-workflow","ai-agents","ai-tools"],"capabilities":["skill","source-rameerez","skill-x-post","topic-agent","topic-agent-skills","topic-agentic-ai","topic-agentic-workflow","topic-ai-agents","topic-ai-tools","topic-anthropic","topic-anthropic-claude","topic-claude","topic-claude-ai","topic-claude-api","topic-claude-code"],"categories":["claude-code-startup-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/rameerez/claude-code-startup-skills/x-post","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add rameerez/claude-code-startup-skills","source_repo":"https://github.com/rameerez/claude-code-startup-skills","install_from":"skills.sh"}},"qualityScore":"0.460","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 21 github stars · SKILL.md body (1,035 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-23T13:02:41.491Z","embedding":null,"createdAt":"2026-04-18T23:05:42.151Z","updatedAt":"2026-04-23T13:02:41.491Z","lastSeenAt":"2026-04-23T13:02:41.491Z","tsv":"'/.claude/skills/x-post/x-post.py':24,54,64,76,87 '/.claude/skills/x-post/x.key':37 '/path/to/image.jpg':70 '/path/to/video.mp4':82 'access':44,46 'alway':90 'api':40,42 'approv':108 'auto':125 'auto-detect':124 'bash':52,62,74,85 'check':83 'chunk':112 'cli':21 'command':10,49 'confirm':102 'credenti':34 'detect':126 'exact':95 'explicit':106 'extens':131 'file':35,130 'get':101 'imag':13,61 'init/append/finalize':114 'instal':30 'json':38,39 'key':41 'line':11 'may':116 'media':69,81,127 'minut':119 'never':103 'oauthlib':33 'packag':28 'pip':29 'post':3,4,16,50,55,59,65,71,77,99,104 'process':121 'profil':84 'python':27,53,63,75,86 'request':32 'requir':26 'rule':89 'script':123 'secret':43,48 'setup':25 'show':91 'skill' 'skill-x-post' 'source-rameerez' 'take':117 'text':12,51,58,68,80,97 'token':45,47 'tool':22 'topic-agent' 'topic-agent-skills' 'topic-agentic-ai' 'topic-agentic-workflow' 'topic-ai-agents' 'topic-ai-tools' 'topic-anthropic' 'topic-anthropic-claude' 'topic-claude' 'topic-claude-ai' 'topic-claude-api' 'topic-claude-code' 'tweet':57,67,79,96 'twitter':7 'type':128 'upload':110,113 'use':19,111 'user':93,107 'video':15,73,109 'without':105 'x':2,6,18 'x-post':1 'xdk':31","prices":[{"id":"b7a60995-eae0-4404-8c4e-08771a7f65fd","listingId":"3409654c-96e7-408a-9f64-22f4f01347de","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"rameerez","category":"claude-code-startup-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T23:05:42.151Z"}],"sources":[{"listingId":"3409654c-96e7-408a-9f64-22f4f01347de","source":"github","sourceId":"rameerez/claude-code-startup-skills/x-post","sourceUrl":"https://github.com/rameerez/claude-code-startup-skills/tree/main/skills/x-post","isPrimary":false,"firstSeenAt":"2026-04-18T23:05:42.151Z","lastSeenAt":"2026-04-23T13:02:41.491Z"}],"details":{"listingId":"3409654c-96e7-408a-9f64-22f4f01347de","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"rameerez","slug":"x-post","github":{"repo":"rameerez/claude-code-startup-skills","stars":21,"topics":["agent","agent-skills","agentic-ai","agentic-workflow","ai","ai-agents","ai-tools","anthropic","anthropic-claude","claude","claude-ai","claude-api","claude-code","claude-skills","cursor","cursor-ai"],"license":"mit","html_url":"https://github.com/rameerez/claude-code-startup-skills","pushed_at":"2026-02-23T17:18:34Z","description":"Claude Code skills for building and running actual software startups, apps, SaaS, and businesses","skill_md_sha":"796a7a54ebae70572d8d5db72664ef0e39bd4ef0","skill_md_path":"skills/x-post/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/rameerez/claude-code-startup-skills/tree/main/skills/x-post"},"layout":"multi","source":"github","category":"claude-code-startup-skills","frontmatter":{"name":"x-post","description":"Post to X (Twitter) from the command line. Text, images, and video."},"skills_sh_url":"https://skills.sh/rameerez/claude-code-startup-skills/x-post"},"updatedAt":"2026-04-23T13:02:41.491Z"}}