hydra

GitHub

Hydra Launcher is an open-source gaming platform created to be the single tool that you need

16,542 stars TypeScript Markdown Skills CodeWiki
AI Prompts & Endpoints
Agent Skills View CodeWiki Knowledge Base

Repository: hydralauncher/hydra


Stars: 15523

.cursorrules

Hydra Project Rules

Logging

- Always use logger instead of console for logging in both main and renderer processes
- In main process: import { logger } from "@main/services";
- In renderer process: import { logger } from "@renderer/logger";
- Replace all instances of:
- console.log()logger.log()
- console.error()logger.error()
- console.warn()logger.warn()
- console.info()logger.info()
- console.debug()logger.debug()
- Do not use console for any logging purposes

Internationalization (i18n)

- All user-facing strings must be translated using i18next
- Use the useTranslation hook in React components: const { t } = useTranslation("namespace");
- Add new translation keys to src/locales/en/translation.json
- Never hardcode English strings in the UI code
- Placeholder text in form fields must also be translated

Code Style

- Use ESLint and Prettier for code formatting
- Follow TypeScript strict mode conventions
- Use async/await instead of promises when possible
- Prefer named exports over default exports for utilities and services

ESLint Issues

- Always try to fix ESLint errors properly before disabling rules
- When encountering ESLint errors, explore these solutions in order:
1. Fix the code to comply with the rule (e.g., add missing required elements, fix accessibility issues)
2. Use minimal markup to satisfy the rule (e.g., add empty <track> elements for videos without captions, add role attributes)
3. Only disable the rule as a last resort when no reasonable solution exists
- When disabling a rule, always include a comment explaining why it's necessary
- Examples of proper fixes:
- For jsx-a11y/media-has-caption: Add <track kind="captions" /> even if no captions are available
- For jsx-a11y/alt-text: Add meaningful alt text or alt="" for decorative images
- For accessibility rules: Add appropriate ARIA attributes rather than disabling

TypeScript Array Syntax

- Always use T[] syntax instead of Array<T> for array types
- Prefer: string[], number[], MyType[]
- Avoid: Array<string>, Array<number>, Array<MyType>
- This applies to all type annotations, type assertions, and generic type parameters

Comments

- Keep comments concise and purposeful; avoid verbose explanations.
- Focus on the "why" or non-obvious context, not restating the code.
- Prefer self-explanatory naming and structure over excessive comments.
- Do not comment every line or obvious behavior; remove stale comments.
- Use docblocks only where they add value (public APIs, complex logic).


README.md

<div align="center">

<img src="https://raw.githubusercontent.com/hydralauncher/hydra/refs/heads/main/resources/icon.png" width="144"/>

<h1 align="center">Hydra Launcher</h1>

<p align="center">
<strong>Hydra Launcher is an open-source gaming platform created to be the single tool that you need in order to manage your gaming library. Hydra is written in Node.js (Electron, React, Typescript), Python, and Rust.</strong>
</p>

![build](https://github.com/hydralauncher/hydra/actions)
![release](https://github.com/hydralauncher/hydra/releases)
![chocolatey](https://community.chocolatey.org/packages/hydralauncher)

!Hydra Launcher Home Page

</div>

Features

- Add games that you own to your library
- Have a nice profile that shows what you are playing to your friends
- Save your game progress in the cloud with Hydra Cloud
- Unlock achievements
- Navigate through a rich catalogue with a powerful suggestion algorithm
- Discover new games that you haven't played before

Build from source and contributing

Please, refer to our Documentation pages: docs.hydralauncher.gg

Local development requirements

- Node.js + Yarn
- Python 3.9+ with pip install -r requirements.txt
- Rust toolchain (for hydra-native)

After installing dependencies, postinstall now builds the Rust native addon automatically (hydra-native/hydra-native.node).

Packaging scripts (yarn build:win, yarn build:mac, yarn build:linux, yarn build:unpack) now run yarn build:python-rpc automatically.

Contributors

<a href="https://github.com/hydralauncher/hydra/graphs/contributors">
<img src="https://contrib.rocks/image?repo=hydralauncher/hydra" />
</a>

License

Hydra is licensed under the MIT License.