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
-
Fork the repository and clone your fork locally.
-
Install dependencies:
npm install -
Start the app in development mode:
npm run dev
Making Changes
-
Create a new branch from
main:git checkout -b your-branch-name -
Make your changes. Keep commits focused — one logical change per commit.
-
Run checks before submitting:
npm run lint npm run typecheck -
Test your changes locally with
npm run devto make sure everything works as expected.
Submitting a Pull Request
- Push your branch to your fork.
- Open a pull request against
mainon the upstream repo. - Write a clear description of what you changed and why.
- 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 lintto check for lint errors. - Run
npm run typecheckto verify type safety. - Follow existing patterns and conventions in the codebase.
Community
- Join the Nous Research Discord to chat with other contributors.
- Check the documentation for more context on how Hermes works.
License
By contributing, you agree that your contributions will be licensed under the MIT License.