How getcoherence/studio works
Coherence Studio is an Electron screen recorder and video editor with AI-assisted polish and export. The primary workflow runs from the editor UI through recording and capture, into timeline editing and optional AI processing, then to rendered output. The README documents the product capabilities; sampled source confirms the app entry, capture-backend selection, editor dependencies, AI IPC dispatch, and AI settings/usage handling. Some feature implementations and IPC routes were not sampled, so uncertain links are omitted or marked dashed.
Main entry points: VideoEditor.tsx Video editor · aiHandlers.ts AI IPC handlers · captureManager.ts Capture manager · useScreenRecorder.ts Recorder hook
Components 22
Recording
- Recorder hook
src/hooks/useScreenRecorder.ts - Capture manager
electron/capture/captureManager.ts - Native capture
electron/capture/nativeCapture.ts - FFmpeg capture
electron/capture/ffmpegCapture.ts - Session model
src/lib/recordingSession.ts
Editing
- Video editor
src/components/video-editor/VideoEditor.tsx - Timeline editor
src/components/video-editor/timeline/TimelineEditor.tsx - Video playback
src/components/video-editor/VideoPlayback.tsx
AI features
- One-click polish
src/lib/ai/oneClickPolish.ts - Smart trim
src/lib/ai/smartTrim.ts - Auto narration
src/lib/ai/autoNarration.ts - Whisper captions
electron/ai/whisper.ts - AI IPC handlers
electron/ipc/aiHandlers.ts - AI service
electron/ai/aiService.ts
Rendering and export
- Video and GIF export
src/lib/exporter/videoExporter.ts - Motion compositions
src/lib/remotion/DynamicComposition.tsx - Export handlers
electron/ipc/exportHandlers.ts
Desktop runtime
- Studio UI
src/App.tsx - AI settings
electron/settings.ts - Electron main
electron/main.ts - Pro authentication
electron/pro/proAuth.ts
Other components
- User
Connections 20
- User → Studio UI: opens
src/App.tsx - Studio UI → Video editor: mounts
src/App.tsx - Video editor → Recorder hook: uses
src/components/video-editor/VideoEditor.tsx - Recorder hook → Capture manager: requests capture
- Capture manager → Native capture: selects backend
electron/capture/captureManager.ts - Capture manager → FFmpeg capture: selects fallback
electron/capture/captureManager.ts - Video editor → Timeline editor: edits clips
src/components/video-editor/VideoEditor.tsx - Video editor → Video playback: previews video
src/components/video-editor/VideoEditor.tsx - Video editor → One-click polish: invokes polish
src/components/video-editor/VideoEditor.tsx - User → Smart trim: requests trimming
README.md - User → Auto narration: requests narration
README.md - User → Whisper captions: requests captions
README.md - Video editor → AI IPC handlers: requests AI
- AI IPC handlers → AI service: dispatches analysis
electron/ipc/aiHandlers.ts - AI service → AI settings: loads configuration
electron/ai/aiService.ts - User → Video and GIF export: exports video or GIF
README.md - Video and GIF export → Motion compositions: renders compositions
- Video editor → Export handlers: starts export
- Electron main → AI IPC handlers: registers handlers
electron/main.ts - AI IPC handlers → Pro authentication: authenticates Pro
electron/ipc/aiHandlers.ts