Open Video Downloader - A cross-platform GUI for youtube-dl made in Rust with Tauri and Vue + Typescript.
# AGENTS
## Overview
This project uses Vue 3 with TypeScript for the frontend and Rust for the backend.
Vue code lives in `src/` and `src/components`, while the Rust Tauri backend lives in `src-tauri/`.
## Testing
Before committing changes, run the following commands:
### JavaScript/TypeScript
- `npm run lint:fix` to apply ESLint fixes and formatting.
- `npm run test:unit` to run unit tests.
- `npm run test:e2e` to run end-to-end tests.
- `npm run build` to ensure the app builds.
To run e2e tests locally, install Playwright browsers and required system packages:
- `npx playwright install --with-deps`
### Rust (inside `src-tauri/`)
- `cargo fmt --all` to format Rust code.
- `cargo clippy --all-targets -- -D warnings` to lint.
- `cargo test` to run backend tests.
Rust linting and tests may fail in this environment because the `glib-2.0` system library is missing.
## Searching
Use `rg` for searching the codebase; avoid recursive `grep` or `ls` commands.
## Commit style
Write commit messages in the form `type: summary`, e.g. `fix: update progress bar logic`.