Thank you for considering contributing to AutoSubs!
I welcome contributions from everyone. I will try to review any pull requests as soon possible 😊
- CLI Guide - Command-line interface reference
- AutoSubs-App README - Technical architecture and code organization
- Resolve Integration - DaVinci Resolve integration architecture and development
- Adobe Extension - Adobe Premiere Pro/After Effects integration details
- AGENTS.md - AI agent context with architecture gotchas and bridge details
-
Clone the repo.
-
Navigate to the app directory and install dependencies:
cd AutoSubs-App npm install -
(Optional) For DaVinci Resolve integration during development, run:
npm run setup-resolve
This generates a self-contained
AutoSubs (Dev).lualauncher in your Resolve scripts folder, automatically detecting the correct path for your platform.The dev launcher points Resolve at your repo and starts the local server in dev mode (without opening the app window). Open it from Resolve via Workspace → Scripts → AutoSubs (Dev).
If you close the app window, the server stops — relaunch the script to restart it.
Edits to the Lua under
src-tauri/resources/(e.g.modules/autosubs_core.lua, the Resolve integration) take effect the next time you run the "AutoSubs (Dev)" script in Resolve — no rebuild or restart needed. Re-runnpm run setup-resolveonly if you move the repository. -
(Optional) For Premiere Pro / After Effects integration during development, build the CEP extension and symlink it into Adobe's extensions folder:
cd ../Adobe-Extension npm install npm run symlink # links the extension into the Adobe CEP extensions folder npm run dev # live-reload dev server for the panel
The Bolt-CEP tooling also enables
PlayerDebugModeso the unsigned dev extension loads. Runnpm run delsymlinkto remove it. -
Start the app in dev mode:
cd ../AutoSubs-App npm run devThis automatically detects your platform and architecture (macOS ARM/Intel, Windows, Linux) and passes the correct Cargo feature flags to Tauri.
If you only want to run the React frontend without the Rust backend:
npm run dev:frontend
The app uses platform-specific Cargo features for AI acceleration:
- macOS (Apple Silicon):
--features mac-aarch(Metal + CoreML) - Windows:
--features windows(Vulkan + DirectML) - Linux:
--features linux(Vulkan)
These are passed automatically by the npm scripts:
| Command | Purpose |
|---|---|
npm run dev |
Auto-detect platform and run dev mode |
npm run dev:mac:arm64 |
macOS Apple Silicon dev mode |
npm run dev:mac:x86_64 |
macOS Intel dev mode |
npm run dev:win |
Windows dev mode |
npm run dev:linux |
Linux dev mode |
npm run build:mac:arm64 |
Build for macOS Apple Silicon |
npm run build:mac:x86_64 |
Build for macOS Intel |
npm run build:win |
Build for Windows |
npm run build:linux |
Build for Linux |
In addition to the standard Tauri prerequisites, Windows builds require:
-
LLVM — needed by
bindgento generate FFI bindings:winget install LLVM.LLVM
Then set the environment variable:
LIBCLANG_PATH=C:\Program Files\LLVM\bin -
Vulkan SDK — needed for GPU-accelerated transcription via Whisper: Download from vulkan.lunarg.com and install. The installer sets
VULKAN_SDKautomatically. -
Short Cargo target directory — the Vulkan shader build generates deeply nested paths that exceed Windows' 260-character limit. Set a short output directory once as a user environment variable (no admin required):
[System.Environment]::SetEnvironmentVariable("CARGO_TARGET_DIR", "C:\cargo-target", "User")
Open a new terminal after running this for it to take effect.
Backend code lives under AutoSubs-App/src-tauri/. For a full breakdown of the codebase before diving in, see the AutoSubs DeepWiki.
For detailed information about the DaVinci Resolve integration (architecture, Lua server, Fusion macro system, and development workflow), see Resolve-Integration/README.md.
- Fork the repository by clicking the "Fork" button at the top right of the repository page.
- Clone your forked repository to your local machine:
git clone https://github.com/YOUR-USERNAME/auto-subs.git
- Navigate to the cloned directory:
cd auto-subs
Create a new branch for your work. Use a descriptive name for your branch (e.g., fix-bug-123 or add-new-feature):
git checkout -b my-branch-nameEnsure you have the necessary dependencies installed (guide in the readme.md)
- Make sure your changes follow the project's coding style and guidelines.
- Write clear and concise commit messages.
- Test your changes thoroughly.
- Add and commit your changes:
git add . git commit -m "A brief description of your changes"
- Push your changes to your fork:
git push origin my-branch-name
- Navigate to your fork on GitHub.
- Click the "Compare & pull request" button.
- Provide a clear and detailed description of your changes.
- Submit the pull request.
- Your pull request will be reviewed by me (the repository maintainer).
- Ensure you address any feedback and make the necessary changes.
- Once your pull request is approved, it will be merged into the
mainbranch.
If you need any help, feel free to open an issue on GitHub and I will try to get back to you.
Thank you for your contributions and for helping improve AutoSubs!