First off, thank you for taking the time to contribute to Open Orpheus! Whether it's filing a bug report, improving documentation, or submitting code, every contribution matters.
Please be kind and respectful in all interactions. We want Open Orpheus to be a welcoming community for everyone. See CODE_OF_CONDUCT_en.md for the full text.
Issues are the main channel for reporting bugs, suggesting features, and discussing the project's direction. Before opening a new issue, please search existing ones to avoid duplicates.
Please include as much of the following as possible:
- OS and version (e.g. Fedora 42, Windows 11)
- Desktop environment (if on Linux)
- Open Orpheus version
- Steps to reproduce — the minimal steps that reliably trigger the issue
- Expected behavior vs actual behavior
- Relevant logs or screenshots (if applicable)
Do not include account credentials or any private information in issues.
Ideas for new features are welcome! Please describe:
- What you'd like to see
- Who would benefit from it
- Whether you'd be willing to help implement it
Note that the core goal of this project is interoperability. Features intended to bypass ads, paid content, or DRM will not be accepted.
- Fork the repository and create your branch from
main(e.g.feat/my-featureorfix/some-bug). - Make your changes and verify the project builds and runs correctly.
- Write a clear PR description explaining what you changed and why.
- If your PR addresses an issue, reference it with
Closes #issue-numberin the description. - Submit and wait for review. Maintainers may request changes — please be patient.
- TypeScript / JavaScript: The project uses ESLint. Make sure there are no lint errors before submitting (
pnpm lint). - Rust: Follow standard
rustfmtstyle (cargo fmt). - Commit messages should be in English. The Conventional Commits format is recommended.
You will need Node and Rust to work with this project (Node v24 and Rust 1.92 are recommended).
For the root project, everything works just like any other Electron Forge project, but Open Orpheus has some native modules of its own, which require a few extra setup steps.
In the following steps, pnpm will be used as Node's package manager. Other package managers are not recommended.
Run this once at the root — pnpm workspaces will install dependencies for all packages including native modules:
pnpm installInside modules folder, there are a few native modules that Open Orpheus requires to run.
Run from the root directory:
pnpm build:modules # Build all modules (will build both Rust and Node code)pnpm startThis launches the Electron app in development mode with hot reload for the renderer.