You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,24 @@ We value contributions in this order:
18
18
19
19
---
20
20
21
+
## Before You Start: Search First
22
+
23
+
A quick search before you build saves your time and keeps the PR queue clean — duplicates are common here, so it's worth a minute up front.
24
+
25
+
-**Search both open *and* merged PRs and issues** for your topic or error symptom — the duplicate-check in the PR template fires at review time, after you've already done the work:
gh search prs --repo NousResearch/hermes-agent --state all "<your terms>"
29
+
```
30
+
Or use the web UI: [issues](https://github.com/NousResearch/hermes-agent/issues?q=) · [PRs (all states)](https://github.com/NousResearch/hermes-agent/pulls?q=is%3Apr).
31
+
-**The issue tracker can lag the code.** Many requested features are already implemented in-tree, so also search the source (`search_files`, or your editor's grep) for the capability before proposing it.
32
+
-**If an open PR already addresses it**, consider reviewing or improving that one instead of opening a competing duplicate.
33
+
-**For larger work**, comment on the issue to signal you're working on it, so others don't start the same thing.
34
+
35
+
Related: #38284 covers the agent-side analog — Hermes itself checking existing issues and PRs before deep self-troubleshooting. This section is the human-contributor complement.
36
+
37
+
---
38
+
21
39
## Should it be a Skill or a Tool?
22
40
23
41
This is the most common question for new contributors. The answer is almost always **skill**.
@@ -412,6 +430,12 @@ Brief intro.
412
430
## When to Use
413
431
Trigger conditions — when should the agent load this skill?
414
432
433
+
## Prerequisites
434
+
Env vars, install steps, MCP setup, API key sourcing.
> when you run it (from a clone): `bash upgrade.sh --no-auto-update`.
34
34
35
+
### Troubleshooting
36
+
37
+
#### Windows Defender or antivirus flags `uv.exe` as malware
38
+
39
+
If your antivirus (Bitdefender, Windows Defender, etc.) quarantines `uv.exe` from the Hermes `bin` folder (`%LOCALAPPDATA%\hermes\bin\uv.exe`), this is a **false positive**. The file is Astral's `uv` — the Rust Python package manager Hermes bundles to manage its Python environment. ML-based antivirus engines commonly flag unsigned Rust binaries that download and install packages.
If attestation says "Verification succeeded" and the last line prints `True`, you're good.
62
+
63
+
**To whitelist Hermes:**
64
+
-**Windows Defender:** Run PowerShell as Admin → `Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\hermes\bin"`
65
+
-**Bitdefender:** Add an exception in the Bitdefender console (Protection > Antivirus > Settings > Manage Exceptions)
66
+
- Whitelist the **folder**, not the file hash — Hermes updates `uv` and the hash changes every version
67
+
68
+
For more context, see the upstream Astral reports: [astral-sh/uv#13553](https://github.com/astral-sh/uv/issues/13553), [astral-sh/uv#15011](https://github.com/astral-sh/uv/issues/15011), [astral-sh/uv#10079](https://github.com/astral-sh/uv/issues/10079).
0 commit comments