Unofficial community helper — make Hermes Desktop GUI font bigger in one command.
Project description
🐍 hermes-font-scale
Unofficial community helper — patch Hermes Desktop GUI font size in one command, atomically and reversibly. NOT affiliated with NousResearch/hermes-agent.
✨ Features
- Atomic font patch — rewrites only the
html { font-size: clamp(...) }line; crash-safe via temp-file +os.replace() - Reversible —
resetrestores from an auto-created.bak;setis idempotent and skips unnecessary writes - Zero runtime deps — stdlib only; works on Python 3.9–3.12 across Windows / macOS / Linux
- Multi-OS path resolution — auto-detects Hermes install from
HERMES_HOME, env var, or 10+ known install paths - Diagnostic
doctorcommand — 4-check health report pinpoints the exact failure before you patch
🚀 Getting Started
Prerequisites
- Python >= 3.9
Installation
Currently available from source only (PyPI publication pending):
pip install "git+https://github.com/hsukevin0407-crypto/hermes-font-scale.git@v0.1.1"
Or clone and install locally:
git clone https://github.com/hsukevin0407-crypto/hermes-font-scale.git
cd hermes-font-scale
pip install -e .
Usage
# Check current state (run this first)
hermes-font-scale status
# Set base font size (10–32 px; responsive max is auto-computed)
hermes-font-scale set 18
# Preview without writing anything
hermes-font-scale set 18 --dry-run
# Run the 4-check diagnostic
hermes-font-scale doctor
# Restore the original CSS from the .bak file
hermes-font-scale reset
# Machine-readable output
hermes-font-scale status --json
After set, restart Hermes Desktop to see the change.
🏗️ Architecture
graph LR
A[CLI: hermes-font-scale] --> B{Command}
B -->|set N| C[Locate globals.css]
B -->|reset| D[Restore from .bak]
B -->|status| E[Read current value]
B -->|doctor| F[4-check diagnostic]
C --> G[Atomic rewrite via os.replace]
G --> H[globals.css patched]
Hermes Desktop hard-codes font size in one CSS anchor:
/* node_modules/@nous-research/ui/dist/ui/globals.css */
html {
font-size: clamp(14px, calc(14px + 2 * ((100vw - 1400px) / 400)), 18px);
}
hermes-font-scale set N rewrites the two numeric bounds to N and N+4, preserving responsive behavior. Everything else in the file is untouched.
Compatibility note: the official Hermes Desktop installer may bundle node_modules inside app.asar. Run hermes-font-scale doctor — if the "font-size clause present" check fails because the file is inside an ASAR archive, see the open issue for workarounds.
🤝 Contributing
Pull requests are welcome. For major changes, please open an issue first.
# Run tests
pip install pytest pytest-cov
pytest
# Lint
pip install ruff
ruff check src tests
CI runs on Python 3.9, 3.10, 3.11, 3.12 across Ubuntu / Windows / macOS.
📄 License
Disclaimer: Unofficial community project. Not affiliated with or endorsed by Nous Research. Use at your own risk.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_font_scale-0.1.4.tar.gz.
File metadata
- Download URL: hermes_font_scale-0.1.4.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6141a88e10e91974f7ac35c895c1b307ccc1bd393fea8c732688c48e5dccbae5
|
|
| MD5 |
313552efaff0fa90d95619ad01cd969d
|
|
| BLAKE2b-256 |
8c5357f29fbfeb3fbe398e99a8f529f2b7c75628add9b764f14b27647337b8d1
|
Provenance
The following attestation bundles were made for hermes_font_scale-0.1.4.tar.gz:
Publisher:
release.yml on hsukevin0407-crypto/hermes-font-scale
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_font_scale-0.1.4.tar.gz -
Subject digest:
6141a88e10e91974f7ac35c895c1b307ccc1bd393fea8c732688c48e5dccbae5 - Sigstore transparency entry: 1907725798
- Sigstore integration time:
-
Permalink:
hsukevin0407-crypto/hermes-font-scale@9a7a595714f5a7180e5eb6ab9ff61fa67b2d578b -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/hsukevin0407-crypto
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9a7a595714f5a7180e5eb6ab9ff61fa67b2d578b -
Trigger Event:
push
-
Statement type:
File details
Details for the file hermes_font_scale-0.1.4-py3-none-any.whl.
File metadata
- Download URL: hermes_font_scale-0.1.4-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7699866b604fe3f1ffe27d04e057ef3bb764e5a296dec861ae076fe53b4d837e
|
|
| MD5 |
5b1d415232b8b709cd7bb90ec2c19ac6
|
|
| BLAKE2b-256 |
b1a622f08118a12e9f93bdb8f7cb3a7f204d980d8553fa70ba7d25cdeb1979af
|
Provenance
The following attestation bundles were made for hermes_font_scale-0.1.4-py3-none-any.whl:
Publisher:
release.yml on hsukevin0407-crypto/hermes-font-scale
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_font_scale-0.1.4-py3-none-any.whl -
Subject digest:
7699866b604fe3f1ffe27d04e057ef3bb764e5a296dec861ae076fe53b4d837e - Sigstore transparency entry: 1907725953
- Sigstore integration time:
-
Permalink:
hsukevin0407-crypto/hermes-font-scale@9a7a595714f5a7180e5eb6ab9ff61fa67b2d578b -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/hsukevin0407-crypto
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9a7a595714f5a7180e5eb6ab9ff61fa67b2d578b -
Trigger Event:
push
-
Statement type: