OpenCut/AGENTS.md

1.3 KiB

AGENTS.md

Overview

Privacy-first video editor, with a focus on simplicity and ease of use.

Core Editor System

The editor uses a singleton EditorCore that manages all editor state through specialized managers.

Architecture

EditorCore (singleton)
├── playback: PlaybackManager
├── timeline: TimelineManager
├── scene: SceneManager
├── project: ProjectManager
├── media: MediaManager
└── renderer: RendererManager

When to Use What

In React Components

Always use the useEditor() hook:

import { useEditor } from '@/hooks/use-editor';

function MyComponent() {
  const editor = useEditor();
  const tracks = editor.timeline.getTracks();
  
  // Call methods
  editor.timeline.addTrack({ type: 'media' });
  
  // Display data (auto re-renders on changes)
  return <div>{tracks.length} tracks</div>;
}

The hook:

  • Returns the singleton instance
  • Subscribes to all manager changes
  • Automatically re-renders when state changes

Outside React Components

Use EditorCore.getInstance() directly:

// In utilities, event handlers, or non-React code
import { EditorCore } from '@/core';

const editor = EditorCore.getInstance();
await editor.export({ format: 'mp4', quality: 'high' });