# Program > AI-powered video composition platform ## Tool Reference ### Composition #### Add Scene (`addScene`) [CLI, Agent] Add a new code scene with React/Remotion component code to the composition. All visual scenes are code_scene type. **Parameters:** - `title` (unknown, required): - `code` (unknown, required): - `duration` (unknown, required): - `start` (unknown, required): - `layer` (unknown, required): #### Delete Scene (`deleteScene`) [CLI, Agent] Delete a specific scene from the composition by its ID **Parameters:** - `sceneId` (unknown, required): #### Delete All Scenes (`deleteAllScenes`) [CLI, Agent] Delete ALL scenes from the composition to start fresh No parameters required. #### Set Metadata (`setMetadata`) [CLI, Agent] Update the composition's metadata like title, description, duration, and dimensions **Parameters:** - `title` (unknown, required): - `description` (unknown, required): - `script` (unknown, required): - `duration` (unknown, required): - `fps` (unknown, required): - `width` (unknown, required): - `height` (unknown, required): #### Update Scene (`updateScene`) [CLI, Agent] Update an existing scene's code by providing new code directly or AI-powered instructions **Parameters:** - `sceneId` (unknown, required): - `code` (unknown, required): - `updateInstructions` (unknown, required): - `title` (unknown, required): #### Update Scene Timing (`updateSceneTiming`) [Agent] Update a scene's duration or start time with automatic adjustment of subsequent scenes **Parameters:** - `sceneId` (unknown, required): - `duration` (unknown, required): - `start` (unknown, required): - `adjustSubsequentScenes` (unknown, required): ### Query #### Assess Composition (`assessComposition`) [CLI, Agent] Get a lightweight overview of the composition showing all scenes with their metadata and status (token-efficient) No parameters required. #### Read Composition (`readComposition`) [CLI, Agent] Read the current composition to see its metadata and planned scenes No parameters required. ### Generation #### Generate Speech (`generateSpeech`) [CLI, Agent] Generate speech audio from text and add as audio scene. Requires a model ID - call listSpeechModels first to get available options. **Parameters:** - `text` (unknown, required): - `model` (unknown, required): - `sceneId` (unknown, required): - `start` (unknown, required): - `duration` (unknown, required): - `voice` (unknown, required): - `modelInputs` (unknown, required): #### Generate Scene Content (`generateSceneContent`) [Agent] Generate actual content for a scene based on its type and metadata. For code_scene: generates React/Remotion code. Automatically marks scene as 'final' when done. **Parameters:** - `sceneId` (unknown, required): - `additionalInstructions` (unknown, required): #### Generate Video (`generateVideo`) [CLI, Agent] Generate a video from a text prompt and add as video scene. Requires a model ID - call listVideoModels first to get available options. **Parameters:** - `prompt` (unknown, required): - `model` (unknown, required): - `sceneId` (unknown, required): - `start` (unknown, required): - `modelInputs` (unknown, required): #### Generate Image (`generateImage`) [CLI, Agent] Generate an image from a text prompt and add as image scene. Requires a model ID - call listImageModels first to get available options. **Parameters:** - `prompt` (unknown, required): - `model` (unknown, required): - `sceneId` (unknown, required): - `start` (unknown, required): - `duration` (unknown, required): - `modelInputs` (unknown, required): #### Transcribe Audio (`transcribeAudio`) [CLI, Agent] Transcribe audio to text with word-level timestamps **Parameters:** - `audioUrl` (unknown, required): - `model` (unknown, required): ### Planning #### Plan Scene (`planScene`) [Agent] Plan a scene scaffold. For audio_scene scenes, creates a placeholder that generateSpeech will fill in - use description field for the text to speak. Returns sceneId that should be passed to generateSpeech. **Parameters:** - `type` (unknown, required): - `start` (unknown, required): - `duration` (unknown, required): - `title` (unknown, required): - `description` (unknown, required): - `layer` (unknown, required): - `visualStyle` (unknown, required): - `animationType` (unknown, required): - `assets` (unknown, required): - `componentName` (unknown, required): - `videoQuery` (unknown, required): - `audioType` (unknown, required): #### Run Template (`runTemplate`) [Agent] Execute a workflow template. Only available when organization context is provided. **Parameters:** - `templateId` (unknown, required): - `inputs` (unknown, required): ### Utility #### List Speech Models (`listSpeechModels`) [CLI, Agent] List available text-to-speech models and their voices. Call this before generating speech to see which models and voices are available. No parameters required. #### List Video Models (`listVideoModels`) [CLI, Agent] List available video generation models. Call this before generating video to see which models are available and their capabilities. No parameters required. #### List Image Models (`listImageModels`) [CLI, Agent] List available image generation models. Call this before generating images to see which models are available and their capabilities. No parameters required. #### Upload File (`uploadFile`) [CLI, Agent] Upload a local file payload to Convex storage for use in composition scenes **Parameters:** - `fileName` (unknown, required): - `mimeType` (unknown, required): - `dataBase64` (unknown, required): - `category` (unknown, required): - `metadata` (unknown, required):