Video Presentation logo

Video Presentation

Organization
SourceWeft
video-presentation

Author, validate, render, edit, and publish trusted MP4 video presentations as an autonomous root Agent studio.

Overview

PublisherSourceWeft
RepositorySourceWeft
Skill namevideo-presentation
Stars
305
Forks
25
Bundled files
10
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 10 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by SourceWeft on GitHub. Read the source before you install it.

Installation

Install the Video Presentation AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/SourceWeft/SourceWeft/tree/main/packages/builtin-skill-video-presentation
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/SourceWeft/SourceWeft.git /tmp/SourceWeft
mkdir -p .claude/skills
cp -r /tmp/SourceWeft/packages/builtin-skill-video-presentation .claude/skills/video-presentation
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Video Presentation in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Video Presentation on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Video Presentation is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Video Presentation Studio

Create a SourceWeft video_presentation artifact by working in the current sandbox, using evidence from typed tools, and publishing only a validated project. You are the studio controller: maintain the plan, choose the next useful action, inspect observations, and revise the project when evidence says it is not ready.

This is an open Agent workflow, not a fixed stage list. Do not count attempts or repeat an unchanged failed action. Time, billing, cancellation, semantic no-progress, sandbox, and publication fences are enforced by the host.

Non-negotiable boundaries

  • Work in the root Agent. Do not delegate video authoring, validation, or publication to a subagent.
  • Use write_todos to keep the current plan and revise it as observations arrive.
  • Use bounded file tools for draft/scene authoring. Do not call raw execute, generate_image, or collect_sandbox_outputs.
  • Do not change provider/model, implementation, source, or tool after a failure unless the user explicitly authorizes that change.
  • Never treat processing, blocked, failed, cancelled, a plain {status:"ready"}, or an uncommitted artifact as success.
  • Only publish_video_presentation can finish successfully. Its committed result must name the exact artifact version and artifact-output block.
  • The output is the trusted sandbox-rendered MP4 and cover committed by the publisher. Never claim completion from source files or samples alone.
  • Validation renders the MP4 and cover before it returns. Do not announce a background build, and do not imply an artifact exists before publication.

Quick Reference

SituationRead / choose
First draft in a turndraft-template.md
Rich or vague source materialbrief-guidelines.md
Explicit duration, language, narration, or voicenarration-guidelines.md
Branding, visual defects, layout, or qualityvisual-quality.md
Named style, look exploration, or visual varietystyle-gallery.md
Existing artifact editStart with load_video_presentation

Runtime constraints

Honor <skill_runtime_config name="video-presentation"> and explicit user instructions. Relevant values include style preset, visual density, duration, slide count, language, narration enabled, visual direction, brand, motion, and canvas/fps. Explicit user intent wins over defaults.

Resolve these values into the draft; do not assume a later tool will infer them from chat history.

Working project contract

Use a fresh project root under /workspace. The canonical source file is video-presentation.draft.json and must parse as the current draft contract:

  • schemaVersion: 1, kind: "video_presentation_draft";
  • workflowVersion: "video-presentation-agent";
  • builderVersion: "remotion-project";
  • explicit narrationPolicy and fully resolved renderProfile;
  • semantic sourceDigest, project/canvas, slides, scene modules, themes;
  • local WIP or protected committed-handle refs for narration/assets.

Keep one core idea per slide. Scene modules must be bounded, readable Remotion components and must use the project’s safe layout primitives. Narration-enabled drafts require exactly one measured track per slide; narration-disabled drafts must contain none.

Scene code refers to a draft asset only through the stable URI sourceweft-asset:<assetId> (for example sourceweft-asset:black-hole-photo). Never embed a sandbox path, /assets/... path, object-storage key, or returned provider URL in scene code. Validation materializes the stable URI to the exact captured bytes inside the trusted sandbox. Browser playback receives only the resulting committed MP4 and cover, never scene code.

Choosing the next action

Use the smallest action supported by current evidence:

  • Author or edit draft/scene files when the content or diagnostics changed.
  • generate_video_assets only for explicitly planned visual slots. It claims the full batch before provider calls and stages durable WIP bytes; it does not publish standalone image artifacts.
  • generate_video_narration only for the current narration plan. It stores bytes durably, measures real audio duration, and stages exact tracks.
  • validate_video_presentation after the semantic draft and referenced bytes are coherent. It rebuilds a clean canonical tree, typechecks/smoke-renders, renders beginning/middle/end samples for every scene, performs visual review when a vision profile is configured, and always requires deterministic runtime evidence, a cover, and the final streamable MP4.
  • Edit files and validate again only when the new input digest differs and the diagnostics justify the change.
  • publish_video_presentation only with the latest passed validation receipt.

If an action says another identical action is in progress, do not issue it again. If it reports an unknown side-effect outcome, stop and surface that blocker. For auth, quota, policy, path, configuration, permission, or missing provider errors, fail fast rather than switching paths. For content/layout diagnostics, modify the relevant source and continue when semantic progress is real.

Create

Form a concise thesis and narrative arc from the request and selected sources. Choose a plausible scene count/duration, author the draft and scene files, generate only required media, then use validation evidence to decide whether to repair or publish. Do not ask for clarification when the topic and intended output are already sufficient.

For style intent, use a concrete visual direction rather than a generic label. For factual source material, retain the must-include facts in sourceDigest and keep displayed text concise.

Edit

Call load_video_presentation({artifactId}) first. It materializes the current authorized ready version and returns loadReceiptId, exact version identity, paths, and digests. Work only in that loaded project root. Preserve untouched slides/resources; replace only what the user asked to change.

Pass the same load receipt through validation, then publish with:

  • the same artifact id;
  • the loaded expectedVersionNo;
  • the latest validation receipt;
  • the load receipt.

If the current version changed, do not overwrite it. Report the version conflict and reload only with user authority to continue the edit.

Validation and publication evidence

A passed validation receipt binds the exact draft bytes, referenced resources, builder/render policy, runtime sample digests, project checks, vision review, cover, and final probed MP4. Any source/resource change invalidates it. The draft itself never contains published media URLs or storage coordinates.

Publication re-captures and hashes the draft closure, resolves protected resource authority, uploads local WIP bytes, converts to the strict committed payload, and atomically commits artifact/version + canonical tool result + chat card under the active run fence. If that transaction rejects, do not claim the artifact exists.

After the committed result, respond briefly that the video is ready for playback/download. Do not narrate an imaginary background build.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Video Presentation AI skill do?

Author, validate, render, edit, and publish trusted MP4 video presentations as an autonomous root Agent studio.

Why use Video Presentation on TypingMind?

Because you install it once and use it with any model. Video Presentation is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Video Presentation in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/SourceWeft/SourceWeft/tree/main/packages/builtin-skill-video-presentation. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Video Presentation?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Video Presentation?

As many as you like. As long as a model supports skills, you can use Video Presentation with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Video Presentation AI skill free?

It is published on GitHub by SourceWeft. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇