글이나 이미지로 3D 모델을 생성하고 카탈로그 소재와 함께 활용합니다. Blender에서 형상, 재질, 크기와 지면 접촉을 점검하고 출처를 기록한 뒤 장면에 배치합니다.
- 글로 독자적인 3D 소품 제작
- 콘셉트 이미지의 물체를 입체로 제작
- 카탈로그의 식물과 바위로 배경 채우기
Remotion의 TerminalScene으로 터미널 녹화처럼 보이는 데모를 만듭니다. 명령 입력과 출력, 대기 시간을 구성하고 화면 동작을 내레이션에 맞춥니다.
Synthetic terminal-style screen recording guidance for Remotion `TerminalScene`.
실행 점수 미검증
설치 방법 보기Remotion의 TerminalScene으로 터미널 화면 녹화처럼 보이는 데모를 구성합니다. 명령어 입력, 실행 결과, 대기 시간, 떠오르는 배지를 순서대로 정의하고 입력 속도와 표시 시간을 조정합니다. 각 단계의 소요 시간을 확인하고, 내레이션이 설명하는 시점에 화면 동작을 맞추는 방법도 안내합니다.
명령어와 출력을 미리 정할 수 있는 설치 안내나 환경 설정 영상에 적합합니다. 같은 내용을 반복해서 렌더링하거나 실제 데스크톱을 보여 주지 않고 터미널 작업을 설명할 때도 활용합니다. 합성 영상과 실제 화면 녹화 중 어느 방식이 적합한지 판단할 때도 사용합니다.
TerminalScene으로 영상으로 만들어 주세요.”Remotion과 자료에 나온 remotion-composer의 TerminalScene이 필요합니다. 실제 앱 화면이나 네트워크 대기처럼 예측하기 어려운 동작은 실제 화면 녹화로 보여 줍니다. 생성 영상은 미리 정의한 동작을 재현합니다. 라이선스는 MIT입니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.
점수에는 넣지 않았습니다. 2026년 10월 23일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Decision this skill answers: When the user wants a screen-recording-looking demo of a terminal, CLI tool, or coding workflow — do I capture the real desktop (OS screen recording via screen_recorder, Windows-MCP, Cap, or Playwright), or do I synthesize it in Remotion with the TerminalScene component?
Heuristic: If the agent can author the exact command/output sequence in advance, synthesize. Only capture live when the real behavior is unpredictable, needs a real app UI, or the user explicitly asked for a real recording.
v3 of the OpenMontage showcase tried to use Windows-MCP + screen_recorder to drive a Git-Bash window for the install walkthrough. It stalled on window positioning, focus races, and taskbar privacy concerns. We pivoted to pure Remotion rendering — a React component named TerminalScene that draws a fake terminal and types commands character-by-character. The output is visually indistinguishable from a real screen recording (same traffic-light window chrome, blinking cursor, scrolling output) but deterministic, privacy-safe, pixel-perfect at 1080p, and pace-controllable to the frame.
That component + pattern is the capability this skill makes discoverable.
YES, synthesize when:
make targets, git clone flowsNO, capture a real screen when:
For a browser demo → playwright-recording skill, not this one.
For a real desktop → screen_recorder tool or Cap via cap_recorder.
TerminalSceneLocated at: remotion-composer/src/components/TerminalScene.tsx
Exported from: remotion-composer/src/components/index.ts
Wired in dispatch: remotion-composer/src/Explainer.tsx (if (cut.type === "terminal_scene"))
Props:
interface TerminalSceneProps {
title?: string; // shown in the window title bar
steps: TerminalStep[]; // the timeline
prompt?: string; // "$", ">", etc.
accentColor?: string; // pill + prompt glow
backgroundColor?: string;
}
Step kinds:
{ kind: "cmd", text: string, typeSpeed?: number, holdSeconds?: number }
{ kind: "out", text: string, holdSeconds?: number }
{ kind: "pause", seconds: number }
{ kind: "pill", text: string, color?: string, durationSeconds?: number }
cmd — prints the prompt, types the text character-by-character (typeSpeed is seconds per character, default 0.035), then holds for holdSeconds (default 0.3)out — a line of program output, reveals instantly with a short fade-inpause — dead time. Terminal holds on last visible state. USE THIS TO SYNC WITH NARRATION.pill — non-blocking floating badge (top-right). Spring-in, hold, spring-out. Does NOT advance the cursor — the next step runs in parallel.Author a new scene by adding a cut to build_composition.py (or your equivalent props builder):
install_steps = [
{"kind": "pause", "seconds": 7.0}, # wait for intro narration
{"kind": "cmd", "text": "git clone https://github.com/calesthio/OpenMontage.git",
"typeSpeed": 0.045, "holdSeconds": 0.3},
{"kind": "out", "text": "Cloning into 'OpenMontage'..."},
{"kind": "out", "text": "remote: Enumerating objects: 2847, done."},
{"kind": "pill", "text": "repo cloned", "color": "#34D399", "durationSeconds": 2.6},
{"kind": "pause", "seconds": 3.8}, # bridge to next narration cue
# ...
]
cuts.append({
"id": "install-terminal",
"type": "terminal_scene",
"terminalTitle": "bash — OpenMontage setup",
"prompt": "$",
"accentColor": "#22D3EE",
"steps": install_steps,
"in_seconds": 50.0,
"out_seconds": 110.0,
})
The #1 failure mode: steps run continuously and burn through all content in the first 40% of the scene, leaving the terminal frozen for the remaining 60%. This is what killed the v3 first pass — the capability menu rendered at t=80s but narration didn't announce it until t=92s.
Do this instead:
cmd should start typing the moment narration says its line, not before.Sanity-check your steps before rendering — every minute of Remotion render is precious. Sum the step durations and verify they equal scene duration:
import math
def trace(steps, scene_start, fps=30):
t = 0.0
for s in steps:
k = s["kind"]
if k == "cmd":
tf = math.ceil(len(s["text"]) * s.get("typeSpeed", 0.035) * fps)
t += tf / fps + s.get("holdSeconds", 0.3)
elif k == "out":
t += max(2, math.ceil(0.08 * fps)) / fps + s.get("holdSeconds", 0.15)
elif k == "pause":
t += s["seconds"]
# "pill" is non-blocking — does NOT advance cursor
print(f" {t + scene_start:6.2f}s {k}: {s.get('text', '')[:40]}")
trace(install_steps, 50)
Look at the output column. Each narration cue's video-time must appear adjacent to the command/output it announces. If a command lands 10s before or after its cue, adjust pauses.
See lib/verify_scene_pacing.py for a reusable version of this script.
repo cloned immediately after the last Receiving objects line). Pills are your substitute for real-world UI notifications.holdSeconds ≥ 0.3 on every cmd so viewers register the completed command before the first output scrolls in.holdSeconds on output lines between 0.4 and 1.0. Output that flies too fast feels like a bug; output that crawls feels boring.ProviderChip (companion component)The .agents/skills/synthetic-screen-recording pattern also owns ProviderChip — a rotating badge overlay that cycles through a list of provider names at a fixed cadence. Used in the v3 showcase to cycle through all 11 AI video-gen providers during the "generated motion" section.
overlays.append({
"type": "provider_chip",
"providers": ["Veo 3.1", "Seedance 2.0", "Kling 2.5", ...],
"cycleSeconds": 2.5,
"position": "bottom-right",
"accentColor": "#22D3EE",
"label": "generated with",
"in_seconds": 195.0,
"out_seconds": 222.5,
})
Wired in dispatch at: remotion-composer/src/Explainer.tsx overlay renderer (overlay.type === "provider_chip").
The pattern generalizes. When you need to fake another UI surface (Claude Code chat bubbles, a Jira ticket view, a GitHub PR diff, a Slack message, a VS Code status bar):
TerminalScene.tsx as a template.steps interface for the relevant timeline primitives.frame against cumulative start/end times.Explainer.tsx's SceneRenderer dispatch with a new cut.type.Cut interface in Explainer.tsx and to components/index.ts.remotion-composer/SCENE_TYPES.md with the new cut type..agents/skills/remotion — general Remotion authoring (hooks, springs, sequences).agents/skills/playwright-recording — real browser-flow capture for web appstools/capture/screen_recorder — ffmpeg-based desktop capturetools/capture/cap_recorder — Cap.so polished desktop captureskills/pipelines/screen-demo/asset-director.md — chooses between synthetic and real for a screen-demo projectIntroduced: OpenMontage showcase v3 render (2026-04-16). Original motivation: the v3 setup walkthrough section needed a 60-second install demo where every command aligned to Chirp 3 HD narration cues, and Windows-MCP-driven real capture was too flaky in practice. See projects/openmontage-showcase/build_composition.py for the reference implementation.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
글이나 이미지로 3D 모델을 생성하고 카탈로그 소재와 함께 활용합니다. Blender에서 형상, 재질, 크기와 지면 접촉을 점검하고 출처를 기록한 뒤 장면에 배치합니다.
ACE-Step 1.5로 곡의 스타일, 길이, 템포 등을 지정해 영상 배경 음악과 가사가 있는 곡을 생성합니다. 참고 음원 편곡과 보컬·악기 분리도 지원합니다.
ElevenLabs로 음성 대화 AI를 만들고 목소리, 응답 방침, 외부 도구 연동을 설정합니다. 웹사이트 삽입과 Twilio를 통한 전화 발신도 다룹니다.
글이나 참고 이미지로 AI 영상을 생성하고 용도와 비용에 맞는 서비스를 선택합니다. 소셜 미디어용 세로 영상, 상품 사진의 영상화, 기존 클립의 대화형 편집을 지원합니다.
텍스트나 참고 이미지로 AI 영상을 생성하고 용도와 비용에 맞는 서비스를 선택하도록 돕습니다. 화면 비율 설정, 진행 상황 확인, Gemini Omni를 통한 대화형 편집도 지원합니다.
Atlas Cloud에서 하나의 API 키로 여러 모델을 사용해 이미지와 영상을 생성하고 편집합니다. 결과물과 사용 모델, 설정, 예상 비용 기록을 저장합니다.