105 lines
3.1 KiB
Markdown
105 lines
3.1 KiB
Markdown
# 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:**
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
3. **Start the app in development mode:**
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
## Making Changes
|
|
|
|
1. Create a new branch from `main`:
|
|
|
|
```bash
|
|
git checkout -b your-branch-name
|
|
```
|
|
|
|
2. Make your changes. Keep commits focused — one logical change per commit.
|
|
|
|
3. Run checks before submitting:
|
|
|
|
```bash
|
|
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](https://github.com/fathah/hermes-desktop/issues/new) 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](https://github.com/fathah/hermes-desktop/issues/new) and describe:
|
|
|
|
- The problem you're trying to solve.
|
|
- How you'd like it to work.
|
|
- Any alternatives you've considered.
|
|
|
|
## Project Structure
|
|
|
|
```text
|
|
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
|
|
|
|
- Join the [Nous Research Discord](https://discord.gg/NousResearch) to chat with other contributors.
|
|
- Check the [documentation](https://hermes-agent.nousresearch.com/docs/) for more context on how Hermes works.
|
|
|
|
## License
|
|
|
|
By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).
|