Official agent skill

Sora

by JetBrains in JetBrains/skills

A skill your agent uses when the user asks to generate, edit, extend, poll, list, download, or delete Sora videos, create reusable non-human Sora character references, or run local multi-video…

OfficialApache-2.0Auto-check passedMedia & Creative

Install Sora

skills CLI
$ npx skills add JetBrains/skills --skill sora -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JetBrains/skills sora --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JetBrains/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/sora .claude/skills/sora && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
sora
GitHub stars
366
Token cost
~2.6k tokens
SKILL.md length
1,156 words
Files
14 (incl. scripts, references, assets)
Skills in repo
76
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when the user asks to generate, edit, extend, poll, list, download, or delete Sora videos, create reusable non-human Sora character references, or run local multi-video…

  • Works in 9 steps: Decide intent: create vs… → Collect inputs: prompt, model, size,… → Prefer CLI augmentation flags… → …
  • The user asks to generate
  • SKILL.md covers When to use, Decision tree, Workflow and Authentication, plus 9 more sections
  • Runs Python scripts from its folder; needs OPENAI_API_KEY

What it does

Sora is an agent skill from JetBrains/skills, published by the product's own GitHub organization. Use when the user asks to generate, edit, extend, poll, list, download, or delete Sora videos, create reusable non-human Sora character references, or run local multi-video queues via the bundled CLI (scripts/sora.py); includes requests like: (i) generate AI video, (ii) edit this Sora clip, (iii) extend this video, (iv) create a character reference, (v) download video/thumbnail/spritesheet, and (vi) Sora batch planning; requires OPENAIAPIKEY and Sora API access.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including scripts, reference files and assets (for example `agents/openai.yaml`, `references/cinematic-shots.md` and `references/cli.md`).

It sits in Media & Creative, covering AI video generation. It works with OpenAI. The repository describes itself as: Curated agent skills collection verified by JetBrains. The licence is Apache-2.0.

When your agent uses it

  • The user asks to generate
  • Delete Sora videos
  • Create reusable non-human Sora character references
  • Run local multi-video queues via the bundled CLI (scripts/sora.py)

Example prompts

  • “/sora”

Requirements

  • Python 3
  • A credential in OPENAI_API_KEY

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Decide intent: create vs create-character vs edit vs extend vs status/download vs local queue vs official Batch API.
  2. Collect inputs: prompt, model, size, seconds, any image reference, and any character IDs.
  3. Prefer CLI augmentation flags (--use-case, --scene, --camera, etc.) instead of hand-writing a long structured prompt. If you already have…
  4. Run the bundled CLI (scripts/sora.py) with sensible defaults. For long prompts, prefer --prompt-file to avoid shell-escaping issues.
  5. For async jobs, poll until terminal status (or use create-and-poll).
  6. Download assets (video/thumbnail/spritesheet) and save them locally before URLs expire.
  7. If the user wants continuity across many shots, create character assets first, then reference them in later create calls.
  8. If the user wants to iterate on a completed shot, prefer edit; if they want the shot to continue in time, prefer extend.
  9. Use one targeted change per iteration.

What it can do on your machine

Read from SKILL.md and the folder at commit e0f258b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • platform.openai.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OPENAI_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Sora loads about 2.6k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 119 tokens; SKILL.md has 1,156 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~119
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~10k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from JetBrains/skills at commit e0f258b, republished under its Apache-2.0 licence (© JetBrains). 1,156 words, ~2,624 tokens.

Download SKILL.mdSave it as .claude/skills/sora/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
sora
description
Use when the user asks to generate, edit, extend, poll, list, download, or delete Sora videos, create reusable non-human Sora character references, or run local multi-video queues via the bundled CLI (`scripts/sora.py`); includes requests like: (i) generate AI video, (ii) edit this Sora clip, (iii) extend this video, (iv) create a character reference, (v) download video/thumbnail/spritesheet, and (vi) Sora batch planning; requires `OPENAI_API_KEY` and Sora API access.
metadata.short-description
Generate, edit, extend, and manage Sora videos
metadata.author
OpenAI
metadata.source
https://github.com/openai/skills/tree/main/skills/.curated/sora

Sora Video Generation Skill

Creates or manages Sora video jobs for the current project (product demos, marketing spots, cinematic shots, social clips, UI mocks). Defaults to sora-2 with structured prompt augmentation and prefers the bundled CLI for deterministic runs. Note: $sora is a skill tag in prompts, not a shell command.

When to use

  • Generate a new video clip from a prompt
  • Create a reusable character reference from a short non-human source clip
  • Edit an existing generated video with a targeted prompt change
  • Extend a completed video with a continuation prompt
  • Poll status, list jobs, or download assets (video/thumbnail/spritesheet)
  • Run a local multi-job queue now, or plan a true Batch API submission for offline rendering

Decision tree

  • If the user has a short non-human reference clip they want to reuse across shots → create-character
  • If the user has a completed video and wants the next beat/continuation → extend
  • If the user has a completed video and wants a targeted change while preserving the shot → edit
  • If the user has a video id and wants status or assets → status, poll, or download
  • If the user needs many renders immediately inside Codex → create-batch (local fan-out, not the Batch API)
  • If the user needs many renders for offline processing or a studio pipeline → use the official Batch API flow described in references/video-api.md
  • Otherwise → create (or create-and-poll if they need a ready asset in one step)

Workflow

  1. Decide intent: create vs create-character vs edit vs extend vs status/download vs local queue vs official Batch API.
  2. Collect inputs: prompt, model, size, seconds, any image reference, and any character IDs.
  3. Prefer CLI augmentation flags (--use-case, --scene, --camera, etc.) instead of hand-writing a long structured prompt. If you already have a structured prompt file, pass --no-augment.
  4. Run the bundled CLI (scripts/sora.py) with sensible defaults. For long prompts, prefer --prompt-file to avoid shell-escaping issues.
  5. For async jobs, poll until terminal status (or use create-and-poll).
  6. Download assets (video/thumbnail/spritesheet) and save them locally before URLs expire.
  7. If the user wants continuity across many shots, create character assets first, then reference them in later create calls.
  8. If the user wants to iterate on a completed shot, prefer edit; if they want the shot to continue in time, prefer extend.
  9. Use one targeted change per iteration.

Authentication

  • OPENAI_API_KEY must be set for live API calls.

If the key is missing, give the user these steps:

  1. Create an API key in the OpenAI platform UI: https://platform.openai.com/api-keys
  2. Set OPENAI_API_KEY as an environment variable in their system.
  3. Offer to guide them through setting the environment variable for their OS/shell if needed.
  • Never ask the user to paste the full key in chat. Ask them to set it locally and confirm when ready.

Defaults & rules

  • Default model: sora-2 (use sora-2-pro for higher fidelity).
  • Default size: 1280x720.
  • Default seconds: 4 (allowed: "4", "8", "12", "16", "20").
  • Always set size and seconds via API params; prose will not change them.
  • sora-2-pro is required for 1920x1080 and 1080x1920.
  • Use up to two characters per generation.
  • Use the OpenAI Python SDK (openai package). If high-level SDK helpers lag the latest Sora guide, use low-level client.post/get/delete inside the official SDK rather than standalone HTTP code.
  • Require OPENAI_API_KEY before any live API call.
  • If uv cache permissions fail, set UV_CACHE_DIR=/tmp/uv-cache.
  • Input reference images must be jpg/png/webp and should match target size.
  • JSON input_reference objects use either file_id or image_url; uploaded file paths use multipart.
  • Download URLs expire after about 1 hour; copy assets to your own storage.
  • Batch-generated videos remain downloadable for up to 24 hours after the batch completes.
  • create-batch in scripts/sora.py is a local concurrent queue, not the official Batch API.
  • Prefer the bundled CLI and never modify scripts/sora.py unless the user asks.
  • Sora can generate audio; if a user requests voiceover/audio, specify it explicitly in the Audio: and Dialogue: lines and keep it short.
Show full SKILL.md (511 more words)Show less

API limitations

  • Models are limited to sora-2 and sora-2-pro.
  • API access to Sora models requires an organization-verified account.
  • Duration must be set via the seconds parameter and currently supports 4, 8, 12, 16, and 20.
  • Character uploads currently work best with short 2-4 second non-human MP4s in 16:9 or 9:16, at 720p-1080p.
  • Extensions can add up to 20 seconds each, up to six times per source video, for a maximum total length of 120 seconds.
  • Extensions currently do not support characters or image references.
  • This skill supports editing existing generated videos by ID.
  • The official Batch API currently supports POST /v1/videos only, with JSON bodies rather than multipart uploads.
  • Output sizes are limited by model (see references/video-api.md for the supported sizes).
  • Video creation is async; you must poll for completion before downloading.
  • Rate limits apply by usage tier (do not list specific limits).
  • Content restrictions are enforced by the API (see Guardrails below).

Guardrails (must enforce)

  • Only content suitable for audiences under 18.
  • No copyrighted characters or copyrighted music.
  • No real people (including public figures).
  • Input images with human faces are rejected.
  • Character uploads in this skill are for non-human subjects only.

Prompt augmentation

Reformat prompts into a structured, production-oriented spec. Only make implicit details explicit; do not invent new creative requirements.

Template (include only relevant lines):

Use case: <where the clip will be used>
Primary request: <user's main prompt>
Scene/background: <location, time of day, atmosphere>
Subject: <main subject>
Action: <single clear action>
Camera: <shot type, angle, motion>
Lighting/mood: <lighting + mood>
Color palette: <3-5 color anchors>
Style/format: <film/animation/format cues>
Timing/beats: <counts or beats>
Audio: <ambient cue / music / voiceover if requested>
Text (verbatim): "<exact text>"
Dialogue:
<dialogue>
- Speaker: "Short line."
</dialogue>
Constraints: <must keep/must avoid>
Avoid: <negative constraints>

Augmentation rules:

  • Keep it short; add only details the user already implied or provided elsewhere.
  • For edits, explicitly list invariants ("same shot, change only X").
  • For character-based shots, mention the character name verbatim in the prompt.
  • If any critical detail is missing and blocks success, ask a question; otherwise proceed.
  • If you pass a structured prompt file to the CLI, add --no-augment to avoid the tool re-wrapping it.

Examples

Generation example (single shot)
Use case: product teaser
Primary request: a close-up of a matte black camera on a pedestal
Action: slow 30-degree orbit over 4 seconds
Camera: 85mm, shallow depth of field, gentle handheld drift
Lighting/mood: soft key light, subtle rim, premium studio feel
Constraints: no logos, no text
Edit example (invariants)
Primary request: same shot and framing, switch palette to teal/sand/rust with warmer backlight
Constraints: keep the subject and camera move unchanged
Character consistency example
Primary request: Mossy, a moss-covered teapot mascot, hurries through a lantern-lit market at dusk
Camera: cinematic tracking shot, 35mm, shoulder height
Lighting/mood: warm dusk practicals, soft haze
Constraints: keep Mossy’s silhouette and moss texture consistent across the shot

Prompting best practices (short list)

  • One main action + one camera move per shot.
  • Use counts or beats for timing ("two steps, pause, turn").
  • Keep text short and the camera locked-off for UI or on-screen text.
  • Add a brief avoid line when artifacts appear (flicker, jitter, fast motion).
  • Shorter prompts are more creative; longer prompts are more controlled.
  • Put dialogue in a dedicated block; keep lines short for 4-8s clips.
  • Mention character names verbatim when using uploaded character IDs.
  • State invariants explicitly for edits (same shot, same camera move).
  • Prefer edit for targeted changes and extend for timeline continuation.
  • Iterate with single-change follow-ups to preserve continuity.

Guidance by asset type

Use these modules when the request is for a specific artifact. They provide targeted templates and defaults.

  • Cinematic shots: references/cinematic-shots.md
  • Social ads: references/social-ads.md

CLI + environment notes

  • CLI commands + examples: references/cli.md
  • API parameter quick reference: references/video-api.md
  • Prompting guidance: references/prompting.md
  • Sample prompts: references/sample-prompts.md
  • Troubleshooting: references/troubleshooting.md
  • Network/sandbox tips: references/codex-network.md

Reference map

  • references/cli.md: how to run create/edit/extend/create-character/poll/download/local-queue flows via scripts/sora.py.
  • references/video-api.md: API-level knobs (models, sizes, duration, characters, edits, extensions, official Batch API).
  • references/prompting.md: prompt structure, character continuity, editing, and extension guidance.
  • references/sample-prompts.md: copy/paste prompt recipes (examples only; no extra theory).
  • references/cinematic-shots.md: templates for filmic shots.
  • references/social-ads.md: templates for short social ad beats.
  • references/troubleshooting.md: common errors and fixes.
  • references/codex-network.md: network/approval troubleshooting.

© JetBrains, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 13 other files (scripts, references, assets) in sora of JetBrains/skills.

  • SKILL.md
  • LICENSE.txt
  • agents/openai.yaml
  • assets/sora-small.svg
  • assets/sora.png
  • references/cinematic-shots.md
  • references/cli.md
  • references/codex-network.md
  • references/prompting.md
  • references/sample-prompts.md
  • references/social-ads.md
  • references/troubleshooting.md
  • references/video-api.md
  • scripts/sora.py

Open the folder on GitHubat commit e0f258b

Compare with similar skills

Sora next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Sora compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sora this skillJetBrains/skills366—~2.6kAutomated safety check: PassApache-2.0
Higgsfield AssistOSideMedia/higgsfield-ai-prompt-skill707—~2.9kAutomated safety check: PassMIT
Vibe Scenevericontext/vibeframe175—~1.8kAutomated safety check: PassMIT
Soradavila7/claude-code-templates32k—~2kAutomated safety check: PassApache-2.0
Soranexu-io/open-design100k—~290Automated safety check: PassApache-2.0
Pollinationssundial-org/awesome-openclaw-skills663—~1.7kAutomated safety check: PassNone

Similar skills

  • Higgsfield Assist

    OSideMedia/higgsfield-ai-prompt-skill

    A skill your agent uses when the user asks about Higgsfield Assist (the built-in GPT-5 copilot), how to use the platform's native AI assistant, credit optimization strategies, plan selection, how to…

    707 GitHub stars~2.9k tokensUpdated 12 days ago
    Media & CreativeAuto-check passed
  • Vibe Scene

    vericontext/vibeframe

    Author, repair, render, and inspect VibeFrame scene projects built from STORYBOARD.md and DESIGN.md.

    175 GitHub stars~1.8k tokensUpdated 4 days ago
    Media & CreativeAuto-check passed
  • Sora

    davila7/claude-code-templates

    A skill your agent uses when the user asks to generate, remix, poll, list, download, or delete Sora videos via OpenAI’s video API using the bundled CLI (scripts/sora.py), including requests like…

    32k GitHub stars~2k tokensUpdated today
    Media & CreativeAuto-check passed
  • Sora

    nexu-io/open-design

    Generate, remix, and manage short video clips via OpenAI's Sora API.

    100k GitHub stars~290 tokensUpdated today
    Media & CreativeAuto-check passed
  • Pollinations

    sundial-org/awesome-openclaw-skills

    Pollinations.ai API for AI generation - text, images, videos, audio, and analysis.

    663 GitHub stars~1.7k tokensUpdated 7 mo ago
    Media & CreativeAuto-check passed
  • Forge Media Route Layer

    0x0funky/agent-sprite-forge

    Generates an image or an image-to-video clip through a configured provider API or a signed-in Codex or Grok CLI, and reports the route, file, hash and cost estimate.

    4.4k GitHub stars~2.2k tokensUpdated 2 days ago
    Media & CreativeAuto-check passed

More from JetBrains/skills

All 76 skills in this repo
  • Playwright

    JetBrains/skills

    Official

    A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…

    366 GitHub starsUsed in 11 repos~986 tokens
    Auto-check passed
  • Skill Creator

    JetBrains/skills

    Official

    Guide for creating effective skills. An agent skill from JetBrains/skills.

    366 GitHub starsUsed in 122 repos~4.7k tokens
    Auto-check passed
  • Transcribe

    JetBrains/skills

    Official

    Transcribe audio files to text with optional diarization and known-speaker hints.

    366 GitHub starsUsed in 4 repos~776 tokens
    Auto-check passed
  • Imagegen

    JetBrains/skills

    Official

    A skill your agent uses when the user asks to generate or edit images via the OpenAI Image API (for example: generate image, edit/inpaint/mask, background removal or replacement, transparent…

    366 GitHub starsUsed in 3 repos~2.5k tokens
    Auto-check passed
  • Speech

    JetBrains/skills

    Official

    A skill your agent uses when the user asks for text-to-speech narration or voiceover, accessibility reads, audio prompts, or batch speech generation via the OpenAI Audio API; run the bundled CLI…

    366 GitHub starsUsed in 3 repos~1.9k tokens
    Auto-check passed
  • Screenshot

    JetBrains/skills

    Official

    A skill your agent uses when the user explicitly asks for a desktop or system screenshot (full screen, specific app or window, or a pixel region), or when tool-specific capture capabilities are…

    366 GitHub starsUsed in 6 repos~2k tokens
    Auto-check passed

Works with

Questions about Sora

What does Sora do?

A skill your agent uses when the user asks to generate, edit, extend, poll, list, download, or delete Sora videos, create reusable non-human Sora character references, or run local multi-video…. Sora is an agent skill from JetBrains/skills, published by the product's own GitHub organization.py); includes requests like: (i) generate AI video, (ii) edit this Sora clip, (iii) extend this video, (iv) create a character reference, (v) download video/thumbnail/spritesheet, and (vi) Sora batch planning; requires OPENAIAPIKEY and Sora API access.

When should I use Sora?

Sora fits situations like: the user asks to generate; delete Sora videos; create reusable non-human Sora character references; run local multi-video queues via the bundled CLI (scripts/sora.py).

How do I install Sora in Claude Code?

Run `npx skills add JetBrains/skills --skill sora -a claude-code`. Or copy the skill folder (sora in JetBrains/skills) into .claude/skills/sora in your project. Claude Code loads it when a task matches its description.

How do I install Sora in Codex?

Run `npx skills add JetBrains/skills --skill sora -a codex`. Or copy the skill folder (sora in JetBrains/skills) into .agents/skills/sora in your project. Codex loads it when a task matches its description.

Can I use Sora in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JetBrains/skills --skill sora -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sora, .gemini/skills/sora, .github/skills/sora and .opencode/skills/sora in your project.

What does Sora need to run?

Going by SKILL.md and its folder, Sora needs Python for the scripts in its folder and credentials named OPENAI_API_KEY. Our summary lists: Python 3; A credential in OPENAI_API_KEY.

Does Sora access the network?

SKILL.md names 1 domain. As links in the text: platform.openai.com. This is read from the text; nothing was executed.

Is Sora safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Sora use?

Sora is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Sora use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.6k tokens, read only when the agent opens those files.

What are the alternatives to Sora?

Skills that share tags, products or a category with Sora: Higgsfield Assist (OSideMedia/higgsfield-ai-prompt-skill, 707 stars), Vibe Scene (vericontext/vibeframe, 175 stars), Sora (davila7/claude-code-templates, 32k stars) and Sora (nexu-io/open-design, 100k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Sora?

JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/skills, which has 366 GitHub stars. The repository holds 76 skills in this directory. The repository was last updated on June 29, 2026.

Source: JetBrains/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.