AI agents: fetch the documentation index at llms.txt. Markdown versions are available by appending .md to any page URL, including this page's markdown.
Contributing
Scope, bug reports, and how to work on the code.
Please read the scope note before opening anything — it will save both of us time.
Scope
vs turns a JSON shot list into generated clips and cuts them together. That is the whole job.
Non-goals, deliberately and permanently:
- A GUI
- A timeline or non-linear editor
- Hosting models
- Proxying anyone's API keys
- General-purpose video editing
Bug reports and provider-breakage reports are much more welcome than feature PRs. A feature PR that expands the scope above is unlikely to be merged. If you are unsure whether something is in scope, open an issue first and ask.
Reporting a bug
Use the Bug template. It asks for vs doctor output because most reports come down to a missing key, missing ffmpeg, or a Node version mismatch.
If a provider changed its API out from under the tool, use the Provider breakage template. Include the request and response with your key redacted.
Do not paste an unredacted tasks.json — result URLs are presigned and contain provider credentials. See Security.
Working on the code
Requires Node >= 24 and ffmpeg.
npm install # builds and installs git hooks
npm run verify