Files
2026-07-13 13:36:53 +08:00

3.1 KiB

Contributing to Hermes Desktop

Thanks for your interest in contributing to Hermes Desktop! Whether it's a bug fix, a new feature, improved docs, or just a typo — every contribution helps.

Languages

  • English: CONTRIBUTING.md
  • 简体中文: CONTRIBUTING.zh-CN.md
  • 日本語: CONTRIBUTING.ja-JP.md

Getting Started

  1. Fork the repository and clone your fork locally.

  2. Install dependencies:

    npm install
    
  3. Start the app in development mode:

    npm run dev
    

Making Changes

  1. Create a new branch from main:

    git checkout -b your-branch-name
    
  2. Make your changes. Keep commits focused — one logical change per commit.

  3. Run checks before submitting:

    npm run lint
    npm run typecheck
    
  4. Test your changes locally with npm run dev to make sure everything works as expected.

Submitting a Pull Request

  1. Push your branch to your fork.
  2. Open a pull request against main on the upstream repo.
  3. Write a clear description of what you changed and why.
  4. If your PR addresses an open issue, reference it (e.g., Fixes #42).

Keep Pull Requests Small

Please keep PRs small and focused — they are much easier to review and merge. PRs that touch too many files or bundle unrelated changes will likely be asked for splitting up or may not be accepted.

  • Stick to one logical change per PR (one fix, one feature, one refactor).
  • If you find yourself touching many unrelated files, split the work into multiple PRs.
  • Avoid bundling formatting/style sweeps with functional changes.
  • Smaller PRs get reviewed and merged faster.

A maintainer will review your PR and may request changes. Once approved, it will be merged.

Reporting Bugs

Found a bug? Open an issue with:

  • A clear title and description.
  • Steps to reproduce the issue.
  • What you expected to happen vs. what actually happened.
  • Your OS and app version, if relevant.

Requesting Features

Have an idea? Open an issue and describe:

  • The problem you're trying to solve.
  • How you'd like it to work.
  • Any alternatives you've considered.

Project Structure

src/main/                Electron main process, IPC handlers, Hermes integration
src/preload/             Secure renderer bridge
src/renderer/src/        React app and UI components
resources/               App icons and packaged assets
build/                   Packaging resources

Code Style

  • The project uses TypeScript, React, and Electron.
  • Run npm run lint to check for lint errors.
  • Run npm run typecheck to verify type safety.
  • Follow existing patterns and conventions in the codebase.

Community

License

By contributing, you agree that your contributions will be licensed under the MIT License.