twitter-cards — Claude Code skill: what it does, how to install
Sets up and audits Twitter and X Card metadata for link previews in social feeds.
npx skills add kostja94/marketing-skills --skill twitter-cards -a claude-codeWhat twitter-cards does
The skill generates and audits Twitter Card metadata for link previews on X. It selects the card format, such as summary_large_image or player, and writes tags including twitter:card, twitter:title, twitter:description, and twitter:image:alt.
It provides code snippets for standard HTML and Next.js App Router metadata. The public Twitter Card Validator is retired. Previews require testing against live rendered HTML or inside X itself. Image tags require absolute HTTPS URLs with at least 300×157 pixels and a 2:1 aspect ratio.
What it helps with
- Implement summary_large_image tags for Next.js or generic HTML
- Add accessible twitter:image:alt descriptions up to 420 characters
- Replace relative image paths with absolute HTTPS URLs
- Audit link previews without relying on the retired Card Validator
Example prompts for the agent
- Add summary_large_image tags for my blog page using Next.js App Router.
- Audit Twitter Card meta tags in index.html and replace relative image URLs with HTTPS.
- Generate X preview metadata with twitter:site, creator, and image alt text.
How to install twitter-cards
1Skills CLI (Vercel)
npx skills add kostja94/marketing-skills --skill twitter-cards -a claude-code2Manually: put the files in place
~/.claude/skills/twitter-cards/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/twitter-cards/
1Skills CLI (Vercel)
npx skills add kostja94/marketing-skills --skill twitter-cards -a codex2Manually: put the files in place
.agents/skills/twitter-cards/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add kostja94/marketing-skills --skill twitter-cards -a cursor2Manually: put the files in place
.cursor/skills/twitter-cards/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install kostja94/marketing-skills twitter-cards2Manually: put the files in place
.github/skills/twitter-cards/SKILL.md1Skills CLI (Vercel)
npx skills add kostja94/marketing-skills --skill twitter-cards -a gemini-cli2Platform CLI
gemini skills install https://github.com/kostja94/marketing-skills --path skills/seo/on-page/twitter-cardsManually: put the files in place
.devin/skills/twitter-cards/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add kostja94/marketing-skills --skill twitter-cards -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about twitter-cards
How to install twitter-cards in Claude Code?
Run npx skills add kostja94/marketing-skills --skill twitter-cards -a claude-code in your terminal.
What does twitter-cards do?
It sets up X link preview metadata, enforces the 2:1 image ratio, and formats tags for Next.js or HTML.
Can I test tags with Twitter Card Validator?
No, that tool is retired. The skill advises inspecting initial HTML directly or checking a test draft inside X.
Source text
SKILL.md · MIT
---
name: twitter-cards
description: When the user wants to add, audit, implement, or optimize Twitter Card metadata for X link previews, including twitter:card, twitter:title, twitter:description, twitter:image, or X previews. For a full metadata lifecycle use page-metadata; for broader social previews use open-graph.
metadata:
version: 2.0.0
---
# SEO On-Page: Twitter Cards
Owns X/Twitter Card writing and implementation rules. **page-metadata** owns the full-page lifecycle and release verification. Platforms may use Open Graph fallbacks, so define X-specific copy only when it adds value.
**When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output.
## Scope (Social Sharing)
- **Twitter Cards**: X-specific meta tags; control how links appear when shared on X/Twitter
## Card Types
| Type | Use case |
|------|----------|
| **summary** | Small card with thumbnail |
| **summary_large_image** | Large prominent image (recommended; 1200×675px) |
| **app** | Mobile app promotion |
| **player** | Video/audio content |
## Recommended Tags (summary_large_image)
```html
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Your Title">
<meta name="twitter:description" content="Your description">
<meta name="twitter:image" content="https://example.com/image.jpg">
<meta name="twitter:site" content="@yourusername">
<meta name="twitter:creator" content="@authorusername">
<meta name="twitter:image:alt" content="Alt text for image">
```
| Tag | Guideline |
|-----|-----------|
| **twitter:card** | Required; `summary_large_image` for most pages |
| **twitter:title** | Concise social title; same page identity as SEO/OG copy, not necessarily identical text |
| **twitter:description** | Accurate social summary without unsupported claims |
| **twitter:image** | Absolute URL; unique per page |
| **twitter:site** | @username of website |
| **twitter:creator** | @username of content creator |
| **twitter:image:alt** | Alt text; max 420 chars; accessibility |
## Image Requirements
| Item | Guideline |
|------|-----------|
| **Aspect ratio** | 2:1 |
| **Minimum** | 300×157 px |
| **Recommended** | Use a high-resolution image suited to the selected card and verify current platform behavior |
| **Delivery** | Absolute HTTPS URL with a successful image response |
| **Format and size** | Verify against current X documentation when implementation depends on exact limits |
## Common Mistakes
- Missing Twitter Card tags (Twitter won't display images properly without them)
- Using relative image URLs instead of absolute https://
- Images too small or wrong aspect ratio
- Title/description too long (gets truncated)
- Mechanically copying SEO copy when the share context needs different wording
- Changing the product identity or promise between SEO, OG, and X metadata
## Implementation
### Next.js (App Router)
```tsx
export const metadata = {
twitter: {
card: 'summary_large_image',
title: '...',
description: '...',
images: ['https://example.com/twitter.jpg'],
site: '@yourusername',
creator: '@authorusername',
},
};
```
### HTML (generic)
```html
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Your Title">
<meta name="twitter:description" content="Your description">
<meta name="twitter:image" content="https://example.com/image.jpg">
<meta name="twitter:site" content="@yourusername">
<meta name="twitter:image:alt" content="Alt text">
```
## Testing
Inspect the deployed initial HTML and test an actual share/preview workflow available to the current X product. Do not depend on the retired public Card Validator as a release gate. Allow for cached previews.
## Related Skills
- **social-share-generator**: Share buttons use Twitter Cards for X previews when users share; Cards must be set for share buttons to show proper previews
- **open-graph**: OG tags; Twitter falls back to OG if Twitter tags missing
- **title-tag**, **meta-description**: Search copy; may differ while preserving page identity
- **page-metadata**: Full lifecycle, source-of-truth implementation, and production validation
- **twitter-x-posts**: X post copy and engagement (different from link previews)
- **twitter-card-image-generator**: Programmatic Twitter Card image generation — 1200×675px, 2:1 ratio, player card posters, dark mode adaptations for ~40% of X users, timeline-safe zone design for mobile 1:1 crop, all 6 visual styles from og-image-generator. This skill covers how to SET the twitter:image tag; twitter-card-image-generator covers how to CREATE the image.
© kostja94 · MIT · kostja94/marketing-skills