
Instagram Content Generation
- 974 installs
- 28 repo stars
- Updated April 21, 2026
- eachlabs/skills
instagram-content-generation is a social-content skill that generates on-brand Instagram carousels, reel scripts, captions, and image prompts for developers and marketers who need consistent Instagram content without man
About
instagram-content-generation is an eachlabs/skills content generator for producing consistent, on-brand Instagram assets including carousel layouts, reels scripts, captions, and image prompts. The eachlabs ecosystem exposes a streaming each::sense `/v1/chat/completions` API with 18 documented SSE event types—including thinking_delta for streamed AI reasoning—supporting real-time content generation workflows. Developers and technical marketers reach for this skill when automating Instagram content pipelines, maintaining brand voice across posts, or generating engagement-focused copy without spending hours in design tools. The skill targets Instagram-specific formats rather than generic social copy.
- Streams 18 distinct SSE event types including thinking_delta, text_response and status updates for real-time visibility
- Delivers structured thinking, status messages with tool parameters, and final text responses in one unified flow
- Optimized for portrait, product and lifestyle visual content with cinematic and mood-specific prompts
- Compatible with any frontend that consumes OpenAI-compatible chat/completions streams
Instagram Content Generation by the numbers
- 974 all-time installs (skills.sh)
- +25 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #466 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/eachlabs/skills --skill instagram-content-generationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 974 |
|---|---|
| repo stars | ★ 28 |
| Security audit | 2 / 3 scanners passed |
| Last updated | April 21, 2026 |
| Repository | eachlabs/skills ↗ |
How do you generate on-brand Instagram content automatically?
Generate consistent, on-brand Instagram carousels, reels scripts, captions and image prompts that drive engagement without spending hours in Canva or ChatGPT.
Who is it for?
Developers or technical marketers automating Instagram content pipelines who need consistent brand voice across carousels, reels, and captions.
Skip if: Developers building backend APIs or code-review workflows with no social-media content requirement.
When should I use this skill?
The user wants Instagram carousels, reel scripts, captions, image prompts, or on-brand social content generated automatically.
What you get
Instagram carousel layouts, reel scripts, captions, and image generation prompts
- Instagram carousel content
- Reel scripts
- Captions and image prompts
By the numbers
- each::sense API documents 18 SSE event types for streaming content generation
Files
Instagram Content Generation
Generate engaging Instagram content using each::sense. This skill creates images and videos optimized for Instagram's various placements, formats, and visual best practices.
Features
- Feed Posts: Square 1:1 images for maximum compatibility
- Stories & Reels: Vertical 9:16 content for immersive full-screen experiences
- Carousel Posts: Multiple cohesive images for storytelling
- Quote Graphics: Typography-focused content for engagement
- Product Showcases: E-commerce and product-focused visuals
- Behind-the-Scenes: Authentic, candid-style content
- Announcement Graphics: Event and launch promotional content
- Lifestyle Flat Lays: Curated product arrangements
- Brand Aesthetic Grid: Cohesive visual identity across posts
Quick Start
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Instagram feed post for a coffee brand showing a latte with beautiful latte art, morning light, cozy cafe vibes"}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'Instagram Formats & Sizes
| Placement | Aspect Ratio | Recommended Size | Use Case |
|---|---|---|---|
| Feed Post | 1:1 | 1080x1080 | Standard feed posts, maximum compatibility |
| Feed Post | 4:5 | 1080x1350 | Vertical feed posts, more screen real estate |
| Stories | 9:16 | 1080x1920 | Full-screen temporary content |
| Reels | 9:16 | 1080x1920 | Full-screen video content |
| Reel Cover | 9:16 | 1080x1920 | Thumbnail for Reels |
| Carousel | 1:1 | 1080x1080 | Multi-image swipeable posts |
Use Case Examples
1. Feed Post (1:1 Square)
Classic square format for Instagram feed with maximum compatibility across all placements.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 square Instagram feed post for a sustainable fashion brand. Show a model in casual earth-toned clothing against a natural outdoor background. Warm, authentic aesthetic with soft natural lighting. Clean composition suitable for a curated Instagram grid."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'2. Story (9:16 Vertical)
Full-screen vertical content optimized for Instagram Stories.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 9:16 Instagram Story for a yoga studio. Show a serene meditation scene with a person in lotus position, soft morning light streaming through windows, calming pastel colors. Leave safe zones at top and bottom for Instagram UI elements and swipe-up area."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'3. Reel Cover Image
Eye-catching thumbnail that represents the Reel content and encourages clicks.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 9:16 Reel cover image for a cooking tutorial. Show an appetizing finished dish (pasta with fresh basil) from above, vibrant colors, food photography style. The image should be eye-catching and make viewers want to watch the full Reel. Leave space at bottom for the Reel title overlay."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'4. Carousel Post (Multiple Images)
Create cohesive multi-image posts that tell a story or showcase multiple products.
# First carousel image - Cover slide
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 carousel image 1 of 5 for a skincare brand. This is the cover slide showing all 5 products arranged beautifully with soft pink and white aesthetic, clean minimal background, soft shadows. Premium feel."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "skincare-carousel-001",
"mode": "max"
}'
# Second carousel image - Product detail
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create carousel image 2 of 5. Show the cleanser product close-up with water droplets and fresh ingredients like cucumber slices. Same aesthetic and lighting as the first image."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "skincare-carousel-001",
"mode": "max"
}'
# Third carousel image - Another product
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create carousel image 3 of 5. Show the moisturizer with a soft texture swatch, dewy fresh feel. Maintain visual consistency with previous images."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "skincare-carousel-001",
"mode": "max"
}'5. Quote Graphics
Typography-focused content that drives engagement and shares.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Instagram quote graphic with the text: \"Success is not final, failure is not fatal: it is the courage to continue that counts.\" Use a minimalist design with elegant serif typography on a soft gradient background (light beige to warm cream). Add subtle decorative elements like thin lines or small botanical illustrations. Suitable for a motivational or business coaching account."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'6. Product Showcase Post
E-commerce focused content that highlights products in lifestyle context.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 4:5 Instagram product showcase for wireless headphones. Show the headphones being worn by a stylish person in an urban setting, walking through a modern city. Lifestyle photography style with natural lighting, premium aspirational feel. The product should be clearly visible but feel natural in the scene."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'7. Behind-the-Scenes Content
Authentic, candid-style content that builds connection with the audience.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 behind-the-scenes Instagram post for a bakery. Show a baker in the kitchen early morning, hands covered in flour, kneading dough. Warm golden lighting, authentic and candid feel - not overly polished. Capture the passion and craft of artisan baking. Documentary photography style."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'8. Announcement Graphics
Event launches, sales, and promotional announcement content.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Instagram announcement graphic for a summer sale. Bold, eye-catching design with tropical vibes - palm leaves, bright colors (coral, turquoise, sunny yellow). Leave clear space for text overlay that will say \"SUMMER SALE - UP TO 50% OFF\". Modern, fresh, energetic aesthetic suitable for a fashion brand."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'9. Lifestyle Flat Lay
Curated overhead product arrangements popular for lifestyle and product brands.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Instagram flat lay for a travel brand. Overhead shot of travel essentials arranged aesthetically: passport, sunglasses, straw hat, camera, map, coffee cup, and small succulent. Marble or light wood surface background. Clean, organized, Pinterest-worthy composition with soft natural lighting. Wanderlust aesthetic."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'10. Brand Aesthetic Grid
Create cohesive visuals that contribute to a unified Instagram grid aesthetic.
# First grid image
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Instagram post for a minimalist home decor brand. Show a clean, modern living room corner with a simple plant, neutral tones (white, beige, light gray), lots of negative space. This is part of a cohesive grid aesthetic - keep colors muted and style consistent. Scandinavian interior design influence."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "home-decor-grid",
"mode": "max"
}'
# Second grid image - maintaining consistency
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create another 1:1 post for the same minimalist home decor brand. Show a bedroom detail - perhaps a textured throw on a bed with a small nightstand. Same color palette and aesthetic as the previous image to maintain grid cohesion."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "home-decor-grid",
"mode": "max"
}'
# Third grid image
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a third 1:1 post continuing the grid aesthetic. Show a close-up of a ceramic vase with dried pampas grass. Same minimalist, neutral, Scandinavian-inspired style."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "home-decor-grid",
"mode": "max"
}'Best Practices
Feed Posts
- Grid Planning: Consider how individual posts look together in your profile grid
- Consistent Editing: Maintain consistent color grading and style across posts
- 1:1 vs 4:5: Use 1:1 for maximum compatibility, 4:5 for more visual impact
- Focal Point: Place key elements in the center for thumbnail cropping
Stories
- Safe Zones: Keep important content away from top 15% and bottom 20% for UI elements
- Vertical Thinking: Design specifically for vertical, not cropped horizontal
- Interactive Areas: Leave space for polls, questions, and stickers
- Bold and Clear: Content should be readable quickly
Carousels
- Hook First: Make the first image compelling enough to encourage swiping
- Visual Flow: Create a narrative or logical progression
- Consistent Style: Maintain same filters, fonts, and aesthetic throughout
- End with CTA: Use the last slide for call-to-action or summary
Reels Covers
- Thumbnail Appeal: Design for small preview in the Reels tab
- Clear Subject: Avoid busy backgrounds that get lost at small sizes
- Text Readable: If using text, ensure it is legible at thumbnail size
Prompt Tips for Instagram Content
When creating Instagram content, include these details in your prompt:
1. Format: Specify aspect ratio (1:1, 4:5, 9:16) 2. Content Type: Feed post, Story, Reel cover, carousel slide number 3. Brand/Niche: What type of account is this for? 4. Aesthetic: Minimalist, bold, vintage, modern, etc. 5. Color Palette: Specific colors or general mood (warm, cool, neutral) 6. Composition: Flat lay, portrait, lifestyle, close-up, etc. 7. Text Space: If you need room for captions or overlay text
Example Prompt Structure
"Create a [aspect ratio] Instagram [content type] for a [brand/niche].
Show [visual description] with [aesthetic/mood].
[Color and style preferences].
[Additional requirements like text space, grid consistency, etc.]"Mode Selection
Ask your users before generating:
"Do you want fast & cheap, or high quality?"
| Mode | Best For | Speed | Quality |
|---|---|---|---|
max | Final content, portfolio posts, important campaigns | Slower | Highest |
eco | Quick drafts, content planning, A/B testing concepts | Faster | Good |
Multi-Turn Content Iteration
Use session_id to iterate on content and maintain visual consistency:
# Initial concept
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Instagram post for a jewelry brand, elegant and minimal"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "jewelry-content"
}'
# Iterate based on feedback
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Make it more luxurious, add soft bokeh background with golden tones"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "jewelry-content"
}'
# Request Story version
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Now create a 9:16 Story version of this same visual style"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "jewelry-content"
}'Content Calendar Batch Generation
Generate multiple pieces of content for planning:
# Monday motivation
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 motivational Monday post for a fitness brand - energetic gym scene, morning workout vibes"}],
"model": "eachsense/beta",
"stream": true,
"mode": "eco"
}'
# Wednesday product feature
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 product showcase for the same fitness brand - protein shake in a gym bag flat lay"}],
"model": "eachsense/beta",
"stream": true,
"mode": "eco"
}'
# Friday lifestyle
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 lifestyle post for the same fitness brand - friends laughing after a workout, feel-good Friday vibes"}],
"model": "eachsense/beta",
"stream": true,
"mode": "eco"
}'Error Handling
| Error | Cause | Solution |
|---|---|---|
Failed to create prediction: HTTP 422 | Insufficient balance | Top up at eachlabs.ai |
| Content policy violation | Prohibited content | Adjust prompt to comply with content policies |
| Timeout | Complex generation | Set client timeout to minimum 10 minutes |
Related Skills
each-sense- Core API documentationmeta-ad-creative-generation- Meta (Facebook & Instagram) ad creativesproduct-photo-generation- E-commerce product shotstiktok-ad-creative-generation- TikTok content creation
SSE Event Reference
Detailed documentation for all Server-Sent Events (SSE) returned by the each::sense /v1/chat/completions endpoint.
Event Format
Events are wrapped in OpenAI chat.completion.chunk format with an eachlabs extension field:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","choices":[{"delta":{"content":""}}],"eachlabs":{"type":"event_type",...}}\n\nStream ends with:
data: [DONE]\n\n---
Event Types (18 Total)
thinking_delta
AI reasoning streamed in real-time. Use this to show users what the AI is thinking.
{
"type": "thinking_delta",
"content": "Let me find the best model for portrait generation..."
}| Field | Type | Description |
|---|---|---|
content | string | Incremental thinking text |
---
text_response
Assistant message content (explanations, answers, plans).
{
"type": "text_response",
"content": "I'll create a stunning portrait for you with cinematic lighting and a warm mood."
}| Field | Type | Description |
|---|---|---|
content | string | Text response content |
---
status
Current operation being executed. Shows tool usage and parameters.
{
"type": "status",
"message": "Searching for image generation models...",
"tool_name": "search_models",
"parameters": {"use_case": "text to image portrait"}
}| Field | Type | Description |
|---|---|---|
message | string | Human-readable status message |
tool_name | string | Internal tool being used |
parameters | object | Tool parameters (optional) |
---
tool_call
Details of a tool being called. Useful for debugging and transparency.
{
"type": "tool_call",
"name": "execute_model",
"input": {
"model_name": "flux-2-max",
"inputs": {
"prompt": "A beautiful woman portrait...",
"aspect_ratio": "1:1"
}
}
}| Field | Type | Description |
|---|---|---|
name | string | Tool name |
input | object | Tool input parameters |
---
message
Informational message from the agent.
{
"type": "message",
"content": "Your video is being processed. This typically takes 2-3 minutes."
}| Field | Type | Description |
|---|---|---|
content | string | Message content |
---
progress
Progress update with percentage completion.
{
"type": "progress",
"message": "Generating image...",
"percent": 65
}| Field | Type | Description |
|---|---|---|
message | string | Progress description |
percent | number | Completion percentage |
---
generation_response
Generated media URL (image, video, audio). This is the primary output event.
{
"type": "generation_response",
"url": "https://storage.eachlabs.ai/outputs/abc123.png",
"generations": ["https://storage.eachlabs.ai/outputs/abc123.png"],
"model": "flux-2-max",
"execution_time_ms": 8500
}| Field | Type | Description |
|---|---|---|
url | string | Primary output URL |
generations | array | All generated URLs |
model | string | Model used for generation |
execution_time_ms | number | Processing time in milliseconds |
---
clarification_needed
AI needs more information to proceed. Present options to the user.
{
"type": "clarification_needed",
"question": "What type of edit would you like to make to this image?",
"options": [
"Remove the background",
"Apply a style transfer",
"Upscale to higher resolution",
"Add or modify elements"
],
"context": "I can see you've uploaded an image, but I need to understand what changes you'd like.",
"requires_response": true
}| Field | Type | Description |
|---|---|---|
question | string | The question to ask the user |
options | array | Suggested options (can be displayed as buttons) |
context | string | Additional context about the clarification |
requires_response | boolean | Whether a response is required to proceed |
Handling: Display the question and options to the user. Send their response in a follow-up request with the same session_id.
---
web_search_query
Web search being executed.
{
"type": "web_search_query",
"query": "best AI video generation models 2024",
"recency": "month"
}| Field | Type | Description |
|---|---|---|
query | string | Search query |
recency | string | Time filter (day, week, month, year) |
---
web_search_citations
Citations from web search results.
{
"type": "web_search_citations",
"citations": [
{"title": "AI Video Comparison", "url": "https://example.com/ai-video", "snippet": "..."}
]
}| Field | Type | Description |
|---|---|---|
citations | array | Array of objects with title, url, snippet |
---
workflow_created
New workflow was created for complex multi-step generation.
{
"type": "workflow_created",
"workflow_id": "wf_abc123",
"version_id": "v1",
"steps_count": 5
}| Field | Type | Description |
|---|---|---|
workflow_id | string | Unique workflow identifier |
version_id | string | Workflow version |
steps_count | number | Number of steps in workflow |
---
workflow_fetched
Existing workflow was loaded (when workflow_id is provided in request).
{
"type": "workflow_fetched",
"workflow_name": "Product Video Generator",
"existing_steps": 3,
"existing_definition": {}
}| Field | Type | Description |
|---|---|---|
workflow_name | string | Name of the workflow |
existing_steps | number | Number of existing steps |
existing_definition | object | Current workflow definition |
---
workflow_built
Workflow definition was constructed.
{
"type": "workflow_built",
"steps_count": 4,
"definition": {
"version": "v1",
"input_schema": {},
"steps": []
}
}| Field | Type | Description |
|---|---|---|
steps_count | number | Number of steps |
definition | object | Full workflow definition |
---
workflow_updated
Workflow was pushed to the EachLabs API.
{
"type": "workflow_updated",
"success": true,
"workflow_id": "wf_abc123",
"version_id": "v1",
"definition": {}
}| Field | Type | Description |
|---|---|---|
success | boolean | Whether update succeeded |
workflow_id | string | Workflow identifier |
version_id | string | Version identifier |
definition | object | Updated definition |
---
execution_started
Workflow execution has begun.
{
"type": "execution_started",
"execution_id": "exec_xyz789",
"workflow_id": "wf_abc123"
}| Field | Type | Description |
|---|---|---|
execution_id | string | Unique execution identifier |
workflow_id | string | Workflow being executed |
---
execution_progress
Progress update during workflow execution.
{
"type": "execution_progress",
"step_id": "step2",
"completed_steps": 2,
"total_steps": 5
}| Field | Type | Description |
|---|---|---|
step_id | string | Current step identifier |
completed_steps | number | Steps completed so far |
total_steps | number | Total steps in workflow |
---
execution_completed
Workflow execution finished.
{
"type": "execution_completed",
"execution_id": "exec_xyz789",
"output": "https://storage.eachlabs.ai/outputs/final.mp4",
"all_outputs": {
"step1": "https://storage.eachlabs.ai/outputs/step1.png",
"step2": "https://storage.eachlabs.ai/outputs/step2.png",
"step3": "https://storage.eachlabs.ai/outputs/final.mp4"
},
"total_time_ms": 45000
}| Field | Type | Description |
|---|---|---|
execution_id | string | Execution identifier |
output | string | Final output URL |
all_outputs | object | All step outputs keyed by step_id |
total_time_ms | number | Total execution time in milliseconds |
---
complete
Final event with summary. Always sent when stream completes.
{
"type": "complete",
"task_id": "chat_1708345678901",
"status": "ok",
"generations": ["https://storage.eachlabs.ai/outputs/abc123.png"],
"model": "flux-2-max"
}| Field | Type | Description |
|---|---|---|
task_id | string | Unique task identifier |
status | string | Final status (ok, error, clarification_needed) |
generations | array | All generated output URLs |
model | string | Primary model used |
Status values:
ok- Completed successfullyclarification_needed- Waiting for user clarificationerror- An error occurred
---
error
An error occurred during processing.
{
"type": "error",
"message": "Failed to generate image: Invalid aspect ratio",
"error_code": "INVALID_INPUT",
"details": {}
}| Field | Type | Description |
|---|---|---|
message | string | Error message |
error_code | string | Error code identifier |
details | object | Additional error details |
---
Event Flow Examples
Simple Image Generation
thinking_delta → "I'll create a beautiful portrait..."
status → "Searching for models..."
status → "Getting model details..."
text_response → "Here's your generated image..."
generation_response → {url: "https://...", model: "flux-2-max", execution_time_ms: 8500}
complete → {status: "ok", generations: [...]}
[DONE]Clarification Flow
thinking_delta → "I see an image, but need to know what edit..."
clarification_needed → {question: "What edit?", options: [...]}
complete → {status: "clarification_needed"}
[DONE]Workflow Execution
thinking_delta → "Creating a multi-step workflow..."
status → "Searching for models..."
workflow_created → {workflow_id: "wf_123", steps_count: 5}
execution_started → {execution_id: "exec_456"}
execution_progress → {completed_steps: 1, total_steps: 5}
execution_progress → {completed_steps: 2, total_steps: 5}
execution_progress → {completed_steps: 3, total_steps: 5}
execution_progress → {completed_steps: 4, total_steps: 5}
execution_completed → {output: "https://...", all_outputs: {...}, total_time_ms: 45000}
complete → {status: "ok"}
[DONE]Web Search
thinking_delta → "Let me search for current information..."
web_search_query → {query: "best AI models 2024"}
status → "Searching the web..."
web_search_citations → {citations: [{title, url, snippet}, ...]}
text_response → "Based on current information..."
complete → {status: "ok"}
[DONE]Related skills
FAQ
What Instagram assets does instagram-content-generation produce?
The instagram-content-generation skill outputs carousels, reels scripts, captions, and image prompts designed for consistent on-brand Instagram posting without manual design-tool work.
How does instagram-content-generation stream generation progress?
The eachlabs each::sense API returns 18 SSE event types including thinking_delta, which streams AI reasoning in real time during Instagram content generation through the `/v1/chat/completions` endpoint.
Is Instagram Content Generation safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.