Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Index videos with TwelveLabs multimodal AI, then search them by natural language, reference images, or tracked entities to find relevant segments with timestamps and AI-generated summaries.
npx claudepluginhub twelvelabs-io/twelve-labs-claude-code-plugin --plugin twelvelabsDeprecated alias for /twelvelabs:sync-analyze
Upload, list, or delete TwelveLabs assets (reference images and video uploads)
Asynchronously analyze a video from a URL, local file, asset ID, or base64 — no prior indexing required
Create video embeddings or check embedding task status
Manage entity collections and entities for video search
Upload, list, or delete TwelveLabs assets — generic reference files (images or videos) used by entities and async-analyze. Triggers on "upload this image", "upload this video as an asset", "delete that asset", or any explicit asset-management request.
Asynchronously analyze a video — by URL, local file path (auto-uploaded), asset ID, or base64 — no prior indexing required. Use for URL inputs, videos over 1 hour, time-based metadata extraction, multimodal prompting with reference images, structured JSON output, or when the user asks to check/list/delete async analysis tasks.
Create, check, and retrieve video embeddings. Use when user wants to generate embeddings from a video, check embedding status, or retrieve embeddings for a video.
Set up and search for specific people or objects in videos using entity search. Use when the user wants to find a specific person, track someone across videos, or set up face/object recognition. Triggers on phrases like "find this person", "set up entity search", "track this person in my videos", "who is in this video".
Search videos using an image combined with text for refined results. Use when the user wants to search with a reference image, says "find videos matching this image", "search with this picture", or wants to combine visual reference with text description.
Requires secrets
Needs API keys or credentials to function
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Turn videos into a sequence of relevant still frames + transcript + a self-contained HTML report so Claude can view them as images, hear the audio, and write its analysis back into the report. Pass a local path, an http(s) URL, or pipe video bytes on stdin.
Process videos using VideoDB Python SDK. Upload, search, edit, generate subtitles, transcode, capture, and stream — all via natural language.
Let Claude watch a video. Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls captions or falls back to Whisper, and hands frames + transcript to Claude so it can answer questions about the video.
Claude Code plugin for video analysis, deep research, content extraction, web search, and explainer video creation — powered by Gemini 3.5 Flash.
Give Claude the ability to watch and understand videos — extracts frames and audio for full video perception
Cerul video search - find any moment by what was said, shown, or presented
No model invocation
Executes directly as bash, bypassing the AI model
No model invocation
Executes directly as bash, bypassing the AI model
Share bugs, ideas, or general feedback.
Index, search, and analyze videos directly from Claude Code using TwelveLabs multimodal AI.
export TWELVELABS_API_KEY=your_api_key_here
Add this to your ~/.zshrc or ~/.bashrc to persist it.
/plugin marketplace add twelvelabs-io/twelve-labs-claude-code-plugin
/plugin install twelvelabs@twelvelabs-plugins
You may need to restart Claude Code after installing for the plugin and MCP to take effect.
The plugin configures the MCP server, slash commands, skills, and hooks automatically.
Index videos from local files, remote URLs, or Google Drive links. Once a video is indexed, it becomes searchable and analyzable. Indexing is asynchronous — you can check on progress at any time.
Search across your videos using natural language descriptions of what you're looking for — visual elements, actions, sounds, or on-screen text. You can also search using a reference image to find visually similar content, combine an image with text for refined results, or search for specific people and objects using entity recognition.
Analyze video content to generate summaries, extract key topics, answer questions, list action items, or perform any open-ended analysis guided by a custom prompt. Both analyze commands accept indexed videoIds, direct URLs, asset IDs, or local files (auto-uploaded as assets). Two modes:
/twelvelabs:sync-analyze — returns the result inline. Pegasus 1.5 by default for URL/asset/file inputs; falls back to Pegasus 1.2 only when analysing an existing indexed videoId or when the user explicitly requests 1.2. Cap: ≤1 hour video./twelvelabs:async-analyze — fire-and-forget for longer videos (up to 2 hours), Pegasus 1.5 throughout. Also supports time-based metadata extraction (analysisMode: "time_based_metadata" + segmentDefinitions) for per-segment structured output, multimodal prompting with reference images (promptV2), and structured JSON output (jsonSchema).Create video embeddings for use in downstream applications like similarity search, clustering, or recommendation systems.
Manage indexes to organize your videos into separate collections. Each index can be configured with different model capabilities — Marengo for search or Pegasus for text generation.
Set up entity search by creating collections of people or objects with reference images. Once configured, you can find exactly when and where a specific person appears across all your indexed videos.
| Command | Description |
|---|---|
/twelvelabs:index-video <path-or-url> [index-id] | Index a local video, URL, or Google Drive link |
/twelvelabs:index-video status [task-id] | Check indexing task status |
/twelvelabs:indexes | List all indexes |
/twelvelabs:indexes create <name> [model] | Create a new index (models: marengo, pegasus, or both) |
/twelvelabs:indexes delete <index-id> | Delete an index |
/twelvelabs:videos [index-id] | List indexed videos |
/twelvelabs:search <query> [index-id] | Text search across videos |
/twelvelabs:search <image> [text] [index-id] | Image or composed (image + text) search |
/twelvelabs:search <@entity_id> [action] [index-id] | Entity search for specific people/objects |
/twelvelabs:sync-analyze <video-id-or-url-or-asset-or-path> [prompt] | Synchronous analysis. Pegasus 1.5 by default; Pegasus 1.2 forced for videoId |
/twelvelabs:async-analyze <url-or-path-or-asset> [prompt] | Async analysis (Pegasus 1.5, ≤2 hours; supports time-based metadata, promptV2, jsonSchema) |
/twelvelabs:async-analyze status [task-id] | Check async-analyze task status |
/twelvelabs:async-analyze list | List async-analyze tasks |
/twelvelabs:async-analyze delete <task-id> | Delete an async-analyze task |
/twelvelabs:embed <path-or-url> | Create video embeddings |
/twelvelabs:embed status [task-id] | Check embedding task status |
/twelvelabs:entities create-collection <name> | Create an entity collection |
/twelvelabs:entities list-collections | List all entity collections |
/twelvelabs:entities create-entity <collection-id> <name> <asset-ids...> | Create an entity from image asset IDs |
/twelvelabs:entities list-entities <collection-id> | List entities in a collection |
/twelvelabs:entities delete-entity <collection-id> <entity-id> | Delete an entity |
/twelvelabs:entities delete-collection <collection-id> | Delete a collection and all its entities |
/twelvelabs:assets upload <path-or-url> | Upload a local file or URL as an asset (image or video) |
/twelvelabs:assets delete <asset-id> | Delete an asset |