pablostanley/efecto-plugin/social-media
Claude Code and agent skill by pablostanley/efecto-plugin
- community
Checking that the SKILL.md file is still in the repository.
Design social media assets with Efecto — Instagram posts, carousels, stories, YouTube thumbnails, TikTok covers, Twitter/X images, LinkedIn slides, Pinterest pins, and Facebook graphics. Use when asked to "design a post", "create a carousel", "make a thumbnail", "design social media", or any social content task. Requires Efecto MCP server.
Install
npx vskill@latest install pablostanley/efecto-plugin/social-mediaSKILL.md
Efecto — Social Media Design Guide
Design social media assets — Instagram, YouTube, TikTok, Twitter/X, LinkedIn, Pinterest, Facebook — using the Efecto design tool. Proper sizing, bold typography, and platform-specific best practices.
Setup
This skill requires the Efecto MCP server. Check if it's available by looking for tools like create_session, add_section, or get_document in your tool list.
If Efecto tools are NOT available, install the MCP server:
Claude Code
Cursor
Add to .cursor/mcp.json:
Windsurf / VS Code / Other MCP Clients
Once installed, you'll have access to 68 MCP tools, including image search and native animation authoring. The MCP server connects your agent to the Efecto design canvas at efecto.app.
How It Works
- Your agent creates an Efecto session via MCP (
create_session) - You open the returned design URL in your browser
- The agent pushes design commands — you see every change live
- Iterate with natural language until the design is perfect
Using Efecto Tools — Quick Reference
Session Workflow
Every design starts with a session:
Returns { sessionId, documentId, designUrl }. Tell the user to open the URL, then call wait_for_connection (blocks until paired). If the user already has an Efecto URL with ?session=..., call attach_session with that URL instead of creating a duplicate session. Never call create_session twice to "reconnect" — a paired session refuses overwrite without force: true. Use session_status to inspect routing ({ all: true } for the full session list).
Building Social Media Designs
The primary workflow is: create artboard → add sections with JSX → refine with updates.
All 68 Tools
| Category | Tools | |
|---|---|---|
| Session | create_session, attach_session, wait_for_connection, session_status, close_session | |
| Reading | get_document, get_selection, get_node_tree, list_artboards, find_nodes | |
| Creating | create_artboard, add_section, add_node | |
| Modifying | update_node, update_class, update_artboard, batch_update, replace_section | |
| Animation | list_animation_presets, apply_animation_plan, clear_animations | |
| Organizing | move_node, duplicate_node, duplicate_artboard, group_nodes, ungroup_node, reorder_node | |
| Selection | select_nodes, deselect_all, set_visibility, delete_nodes, delete_artboard | |
| Alignment | align_nodes, distribute_nodes | |
| Fill & Export | set_fill, export_image | |
| Viewport | zoom_to_artboard, zoom_to_fit, set_viewport, move_artboard | |
| Document | rename_document, new_document | |
| History | undo, redo | |
| Theme | get_theme, set_theme, set_theme_mode, reset_theme | |
| Quality | audit_design, repair_design |
Scoped reads (large docs). get_document returns the whole tree by default — on multi-artboard carousels that can blow past tool-result token caps. Prefer scoped modes: outline: true (one-line summary per top-level child), artboardId: "..." (single slide), maxDepth: N (cap descent; 0 = artboard header only, 1 = top-level children). Response includes an approx-token count so you can decide whether to widen. Drill into a subtree with get_node_tree after.
Routing inspection. session_status returns the legacy single-session shape by default (sessionId, paired, browserConnected, knownSessions). Pass { all: true } for the list shape — every session in this MCP process with isActive/paired flags. If this MCP process restarted, attach_session with the current browser URL makes that session active again.
JSX Format for add_section
Write standard HTML tags with Tailwind className. The tag determines the node type:
Icons: <svg icon="arrow-right" className="w-5 h-5 text-gray-600" />
Critical Gotchas
- Artboard `className` must include `flex flex-col` — without it, children overlap at (0,0)
- Artboard `backgroundColor` is a property, NOT a className — use
backgroundColor: "#111827", notclassName: "bg-gray-900" - Never use arbitrary hex in className —
bg-[#f9f9f9]silently fails. Use named colors (bg-gray-50) or inlinestyle - Use `grow` instead of `flex-1` —
flex-1doesn't work in Efecto - Buttons ignore children — use a flex container with
<span>+<svg>instead - Always add `w-full` on direct children of artboards
- For carousels: use
duplicate_artboardto create slides, thenbatch_updateto change content per slide
Required Structure and Quality Gate
- Name meaningful layers. Give every section, layout group, card, text block, control, image, and icon a concise semantic
nameattribute (for example,<section name="Carousel Hook">,<div name="Slide Copy">,<h1 name="Hook Headline">). Never ship generic names such asFrame,Text, orIcon; unnamed purely decorative leaves are the only exception. - Declare nested layout. Every frame with two or more children must explicitly include
flexorgridinclassName, including nested wrappers. Add the matching direction, alignment, gap, and wrapping classes; do not rely on implicit block flow. - Meet WCAG AA contrast. Normal text must reach 4.5:1 and large text 3:1. Evaluate text against its effective rendered background: use its own background when present, otherwise walk through ancestor frames to the artboard, including opacity/alpha compositing. Resolve semantic theme tokens in the active mode before judging contrast.
- Audit until clean. After building or editing, call
audit_design. Fix everycontrast-ratio,implicit-block-container, andgeneric-layer-namefinding withbatch_updateorreplace_section, then callaudit_designagain. If you userepair_design, inspect its changes and re-audit. Do not declare completion until all three finding types are zero, and useget_documentto confirm meaningful layers retain semantic names.
Images — Use Real Photos, Not Placeholders
Use search_images to find free, high-quality stock photos from Lummi. No session required — call it anytime.
Then apply images to your designs:
- Image node:
add_nodewithtype: "image",src: "<url>",alt: "...",className: "w-full h-full object-cover" - Background fill:
set_fillwithfill: { type: "image", url: "<url>", size: "cover" } - In JSX:
<img src="<url>" alt="..." className="w-full h-full object-cover" />
Tips for social media: Match orientation to the platform format — square for Instagram/LinkedIn posts, vertical for Stories/Reels/TikTok, horizontal for YouTube thumbnails/Twitter. Use luminance: "dark" for dramatic social content. Real photos make social media content feel authentic — avoid empty placeholder boxes.
Shader Nodes & Visual Effects
Make social media content stand out with shader nodes. Use add_node with type: "shader".
Generative Backgrounds
Eye-catching backgrounds without images — perfect for quote cards, carousels, and story slides:
Shader types: meshGradient (organic), liquidMetal (premium), chrome (bold), pulsar (energy), particles (ambient), fireworks (celebration).
Apply Effects to Photos
Process images with ASCII, dither, halftone, or glitch effects for scroll-stopping visuals:
Best effects for social: ascii-standard (tech/dev content), dither-atkinson (retro), halftone-mono (print/zine), glitch-vhs (nostalgic), art-kuwahara (painterly), glitch-digital (edgy).
Post-Processes
Add film grain, vignette, or scanlines for texture:
Native Animation
Social posts, stories, reels, and carousel slides can use native Efecto layer animations. Do not use Tailwind animate-*, transition-*, or duration-* classes.
Workflow: inspect the selected artboard or nodes, call list_animation_presets, then use apply_animation_plan. Animate the hook first: background/photo, hero headline, supporting line, swipe cue or CTA, then decorative details. For carousel/story motion, add exits only when the user asks for an outro or a video-style sequence.
Good defaults: 0.35-0.6s for the headline or hero image, 0.18-0.35s for badges/icons/details, 0.04-0.1s stagger. Use pop-spark, bounce-in, mask-in, fade-mask-in, slide-mask-in, or scale-mask-in when the brand needs thumb-stopping energy; set maskStyle to linear, diagonal, or iris and use maskDirection/maskOrigin when the reveal needs to feel intentional. Otherwise keep it to fade-in, slide-in, and scale-in.
Mindset: Think Poster, Not Website
When you design a website, you're writing for someone who stopped scrolling and is reading. On social media, you have 1-2 seconds to communicate before they scroll past. This changes everything:
- Type big. The canvas is 1080px wide but renders at ~375px on a phone screen. A
text-baseparagraph that's perfectly legible on a website becomes unreadable squished into an Instagram card. Default totext-xlortext-2xlwhere you'd normally usetext-base. - Write less. If a slide has more than 2-3 short lines, it has too much text. Cut ruthlessly. One idea per slide.
- Think like a billboard. Would you put a paragraph on a highway billboard? No. Same energy.
Typography for Social Media
Choose font sizes based on the role, not a formula. The canvas is large (1080px+) but the content is consumed small — so sizes need to be generous.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/social-media/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/pablostanley/efecto-plugin/social-media)