Problem Video editors often struggle to automate the entire post‑production workflow. Writing code to transcribe, subtitle, re‑frame, or generate motion graphics typically requires multiple tools, manual coordination, and a GUI. The goal of Open‑Edit is to provide a single, agent‑driven command line that receives a natural‑language instruction and returns a finished MP4.

What This Does Open‑Edit is a Node 20+ library written in TypeScript.

  • cli/src/cli.ts is the public entry point; it parses command‑line arguments and dispatches to command modules under cli/src/commands/*.ts.
  • The transcribe command (cli/src/commands/transcribe.ts) calls cli/src/veed/transcript-mapper.ts to route speech‑to‑text through either the VEED API or local WhisperX.
  • generate (cli/src/commands/generate.ts) builds a recipe from a prompt, handing it to the renderer that is downloaded into the user’s app‑data folder.
  • preview (cli/src/preview/page/app.js) spins a lightweight Express server (see cli/src/preview/page/index.html) to show a live preview.
  • All state is written to a runs/ directory; the final MP4 is emitted there.

How It Is Wired

  • Entry point – cli/src/cli.ts → cli/src/args.ts → cli/src/config.ts.
  • Command dispatcher – cli/src/cli.ts calls the relevant cli/src/commands/*.ts.
  • External calls –
  • cli/src/veed/api.ts issues HTTPS requests to VEED’s REST surface.
  • cli/src/veed/login-page.ts and cli/src/veed/oauth.ts manage OAuth tokens, persisting them in token-store.ts.
  • cli/src/veed/transcript-mapper.ts routes to either veed/api.ts or local WhisperX via cli/src/commands/whisper.ts.
  • Renderer – cli/src/engine-release.ts downloads the binary to ~/.local/share/veed/openedit/renderer.
  • Preview – cli/src/preview/state.ts holds the preview session state; cli/src/preview/events.ts and cli/src/preview/media.ts serve media to the browser.

The graph is a linear chain with a few side‑channels to external services. No cycles exist; the only hub is cli/src/cli.ts, which has a 1‑to‑many fan‑out. Changing a command module requires touching only that file and its tests.

How To Use It

  1. Setup ``sh git clone https://github.com/moses-y/open-edit cd open-edit pnpm install ` Node 20+ and ffmpeg` are required; the first run will prompt for missing tools.
  1. Configuration VEED credentials are stored in ~/.veed/token.json. Optional environment variables: OPENEDIT_TRANSCRIPTION=whisper or veed.
  1. Running ``sh pnpm run cli -- transcribe --input video.mp4 --output transcript.json ` The CLI accepts many sub‑commands; --help` lists them.

Real‑World Use A marketing team can run:

pnpm run cli -- generate --prompt "Create a 20‑sec title sequence in brand colors" --output title.mp4

The command uses cli/src/commands/generate.ts → cli/src/veed/fabric.ts to submit a job to VEED, then streams the MP4 back to runs/.

Code Health & Issues

  • 435 source files, 251 TypeScript.
  • 85 test files (cli/tests/*.test.ts), run by GitHub Actions (.github/workflows/merge-gate.yml).
  • No lint or type‑error failures reported in CI.
  • License: Apache‑2.0, no hidden secrets.

No measured issues were found. The repository is well‑structured, with a clear separation between command dispatch, external API interaction, and rendering.

Bottom Line Open‑Edit delivers a practical, agent‑driven editing pipeline that eliminates the need for a UI. Its TypeScript foundation, extensive test suite, and clear command‑line interface make it suitable for developers who want to integrate automated video production into CI/CD or chatbot workflows. The main limitation is the dependency on VEED’s paid tier for high‑volume usage, but the open‑source core remains free to extend.