Inherits and enforces all rules in
AGENTS.md.
OpenScene is an Electron, React, TypeScript, and Vite desktop application built with local-first security and hybrid AI capabilities.
- Main Surface (
src/main/): Desktop capture, project storage, FFmpeg jobs, local TTS, TypeMCP server (src/main/openVideoMcpServer.ts). - Preload Surface (
src/preload/): Context-isolated IPC bridge exposing typedwindow.videoTool. - Renderer Surface (
src/renderer/): React NLE timeline editor, AI Video Studio, AI Voice Studio, Theme Selector, and Settings. - Shared Surface (
src/shared/): Type contracts, IPC definitions, timeline models, LLM models catalog (src/shared/llmModels.ts), and provider seams. - Agent Skills:
.agents/skills/api-to-typemcp/SKILL.mdfor OpenAPI/Swagger to TypeMCP generator orchestration.
npm install # Install dependencies
npm run dev # Run local Electron + Vite development server
npm run typecheck # Run strict TypeScript typechecking
npm test # Run Vitest unit & integration test suite
npm run build # Perform typecheck and build Electron main, preload, & renderer into out/- Inspect open GitHub Issues & PRs, then create or update one focused GitHub Issue before branching.
- Put the issue number in the branch name:
<type>/<issue-number>-<short-description>(e.g.feat/24-typemcp-agent-integration). - Branch from current
origin/dev. - Use Conventional Commit format:
type(scope): subject. - Push branch and open a PR targeting
devwithCloses #<issue-number>in the body. - Verify code using
npm run typecheck && npm test && npm run buildbefore asking for review or merging. - Implement the mobile screen in the same PR as the desktop one, and run
npm run typecheckinmobile/too. Rules live insrc/shared/; a surface that genuinely cannot have a feature says so, visibly and with the reason, rather than omitting it. See Two Surfaces, One Core inAGENTS.md.
For full architecture details, local security constraints, and public compatibility identifiers, refer directly to AGENTS.md.