About trykimu/videoeditor
trykimu/videoeditor is an open-source project on GitHub, mainly written in TypeScript. Your Creative Copilot for Video Editing It currently holds 2,217 stars and 0 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
AI Homed tracks it on the AI Video Projects board and on the AI AI Video Projects list.
GitHub Repository Details
README
A friendly AI powered open-source alternative to Capcut, Canva.
Discord Twitter Website
✨Features
Advanced Multi‑Track EditingEdit across unlimited tracks with precise control, snapping, and effortless layer management. |
Real‑Time PreviewSee every change instantly with low‑latency playback—no waiting, no rendering. |
Fast ExportRender high‑quality videos quickly and export exactly where you need them. |
Vibe AI AssistantDescribe your idea and let Kimu generate edits, timing, and layouts automatically. |
Smart Media LibraryOrganize by type, tags, and sentiment—search and filter your assets in seconds. |
Cloud‑Synced ProjectsKeep timelines and assets in sync across devices so you can pick up right where you left off. |
transitions, offline datastore, OAuth based security, change control
and much more...
💻 Development
🛠️ Local Development
Only postgres runs in Docker. All three services run directly on your machine — Vite handles proxying so no nginx is needed.
# Install dependencies
pnpm i
cd backend && uv sync && cd ..
1. Start postgres
docker compose -f docker-compose.dev.yml up -d
2. Start FastAPI (terminal 1)
cd backend && uv run uvicorn main:app --reload --port 3000
3. Start renderer (terminal 2)
pnpm dlx tsx app/videorender/videorender.ts
4. Start frontend (terminal 3)
pnpm dev
Open http://localhost:5173. The Vite dev server proxies requests transparently:
/backend/*→ FastAPI at:3000/renderer/*→ Renderer at:8000/*→ React Router SSR (Vite)
Requirements
- Node.js 20+
- Python 3.12+
- pnpm
- Docker (for postgres only)
🚀 Production
Everything runs in Docker behind nginx. One command:
docker compose up -d
With Custom Domain:
PROD_DOMAIN=yourdomain.com docker compose up -d
nginx routes:
/backend/*→ FastAPI/renderer/*→ Renderer (video rendering)/*→ Frontend (React Router SSR)
Ports:
- HTTP:
80(redirects to HTTPS) - HTTPS:
443
⚙️ Environment Configuration
Copy .env.example to .env and fill in your values:
# Local/Docker Postgres (dev or self-hosted prod):
DATABASE_URL=postgresql://videoeditor:videoeditor@localhost:5432/videoeditor
— OR — Supabase Session Pooler (cloud):
DATABASE_URL=postgresql://postgres.REF:password@aws-0-REGION.pooler.supabase.com:5432/postgres
DATABASE_SSL=true # required for Supabase; omit for local/Docker Postgres
BetterAuth
BETTER_AUTH_SECRET= # generate with: openssl rand -hex 32
BETTER_AUTH_URL=https://yourdomain.com # http://localhost:5173 for dev
Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
AI Features (optional)
GEMINI_API_KEY=your_gemini_api_key
Environment Variables Explained:
DATABASE_URL: PostgreSQL connection string. Use the local Docker URL for dev/self-hosted prod, or the Supabase Session Pooler URL for cloud.DATABASE_SSL: Set to"true"when connecting to Supabase or any remote DB that requires SSL. Leave unset for local/Docker Postgres.BETTER_AUTH_SECRET: Random secret used to sign sessions — generate withopenssl rand -hex 32.BETTER_AUTH_URL: The public URL of the app. Used by BetterAuth for OAuth callbacks.GOOGLE_CLIENT_ID/SECRET: Google OAuth credentials — register at console.cloud.google.com.GEMINI_API_KEY: Required for AI-powered video editing features.
📃TODO
We have a lot of work! For starters, we plan to integrate all Remotion APIs. I'll add a proper roadmap soon. Join the Discord Server for updates and support.
❤️Contribution
We would love your contributions! ❤️ Check the contribution guide.
📜License
This project is licensed under a dual-license. Refer to LICENSE for details. The Remotion license also applies to the relevant parts of the project.