Metadata-Version: 2.4
Name: horo-next
Version: 0.21.5
Summary: Unofficial PyPI distribution of Hermes Agent by Nous Research
Author: Nous Research
Maintainer: horo-next contributors
License-Expression: MIT
Project-URL: Source, https://github.com/iscodesnippet2/horo-next
Project-URL: Issues, https://github.com/iscodesnippet2/horo-next/issues
Project-URL: Upstream, https://github.com/NousResearch/hermes-agent
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: <3.14,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: THIRD_PARTY_LICENSES
Requires-Dist: openai==2.24.0
Requires-Dist: certifi==2026.10.18
Requires-Dist: python-dotenv==1.2.2
Requires-Dist: fire==0.7.1
Requires-Dist: httpx[socks]==0.28.1
Requires-Dist: rich==14.3.3
Requires-Dist: tenacity==9.1.4
Requires-Dist: pyyaml==6.0.3
Requires-Dist: ruamel.yaml==0.18.17
Requires-Dist: requests==2.33.0
Requires-Dist: jinja2==3.1.6
Requires-Dist: firecrawl-anydoc==0.2.4
Requires-Dist: pydantic==2.13.4
Requires-Dist: prompt_toolkit==3.0.52
Requires-Dist: croniter==6.0.0
Requires-Dist: snowballstemmer==3.1.1
Requires-Dist: packaging==26.0
Requires-Dist: Markdown==3.10.2
Requires-Dist: PyJWT[crypto]==2.15.0
Requires-Dist: urllib3<3,>=2.8.0
Requires-Dist: cryptography==50.0.0
Requires-Dist: tzdata==2025.3; sys_platform == "win32"
Requires-Dist: psutil==7.2.2
Requires-Dist: websockets==15.0.1
Requires-Dist: pathspec==1.1.1
Requires-Dist: fastapi<1,>=0.109.1
Requires-Dist: uvicorn<1,>=0.31.0
Requires-Dist: httptools<0.9,>=0.6.3
Requires-Dist: watchfiles<2,>=0.20
Requires-Dist: python-multipart<1,>=0.0.31
Requires-Dist: ptyprocess<1,>=0.7.0; sys_platform != "win32"
Requires-Dist: pywinpty<3,>=2.0.0; sys_platform == "win32"
Requires-Dist: pywin32<312,>=306; sys_platform == "win32"
Requires-Dist: Pillow==13.0.0
Requires-Dist: pillow-heif<2,>=1.4.0
Requires-Dist: concurrent-log-handler==0.9.29; sys_platform == "win32"
Requires-Dist: nemo-relay<0.9,>=0.8.3; (sys_platform == "darwin" and platform_machine == "arm64") or (sys_platform == "linux" and platform_machine == "x86_64" and "android" not in platform_release) or (sys_platform == "linux" and platform_machine == "aarch64" and "android" not in platform_release) or (sys_platform == "win32" and platform_machine == "AMD64") or (sys_platform == "win32" and platform_machine == "ARM64")
Provides-Extra: mattermost
Requires-Dist: aiohttp==3.14.4; extra == "mattermost"
Provides-Extra: uvloop
Requires-Dist: uvloop<0.24,>=0.15.1; (sys_platform != "win32" and sys_platform != "cygwin" and sys_platform != "android" and platform_python_implementation != "PyPy") and extra == "uvloop"
Provides-Extra: cron
Provides-Extra: pty
Provides-Extra: mcp
Requires-Dist: mcp==2.2.0; extra == "mcp"
Requires-Dist: httpx2==2.12.0; extra == "mcp"
Requires-Dist: starlette==1.3.1; extra == "mcp"
Provides-Extra: acp
Requires-Dist: agent-client-protocol==0.9.0; extra == "acp"
Provides-Extra: web
Requires-Dist: fastapi==0.133.1; extra == "web"
Requires-Dist: uvicorn==0.41.0; extra == "web"
Requires-Dist: starlette==1.3.1; extra == "web"
Requires-Dist: python-multipart==0.0.32; extra == "web"
Provides-Extra: all
Requires-Dist: horo-next[acp]; extra == "all"
Requires-Dist: horo-next[cron]; extra == "all"
Requires-Dist: horo-next[mattermost]; extra == "all"
Requires-Dist: horo-next[mcp]; extra == "all"
Requires-Dist: horo-next[pty]; extra == "all"
Requires-Dist: horo-next[uvloop]; extra == "all"
Requires-Dist: horo-next[web]; extra == "all"
Dynamic: license-file

# horo-next

An **unofficial** PyPI distribution of [Hermes Agent](https://github.com/NousResearch/hermes-agent) by Nous Research.

Upstream no longer publishes Hermes Agent to PyPI. horo-next rebuilds each upstream release as a pip-installable wheel. It is not affiliated with, endorsed by, or sponsored by Nous Research.

```bash
pip install horo-next
hermes
```

The command is `hermes` and the data directory is `~/.hermes`, as upstream. Do not install horo-next and `hermes-agent` into the same environment: both provide the same top-level modules.

## What differs from upstream

Packaging only. Product behaviour is upstream's.

- Bundled skills and locales are packaged inside the wheel.
- The web dashboard and the terminal UI are prebuilt into the wheel, so they never run `npm` on your machine. `hermes dashboard` needs `pip install "horo-next[web]"`; `hermes --tui` needs a `node` binary on `PATH`.
- `hermes update` points to `pip install -U horo-next`.
- Direct dependencies with a published vulnerability fix are raised to the fixed version. Each release notes which.
- Python 3.11 is kept supported; the upper bound follows each upstream release.
- Dependencies only available from a URL (not on PyPI) are left out and must be installed separately.
- Only the extras that work on an air-gapped network are provided: `web`, `mcp`, `acp`, `cron`, `pty`, `uvloop`, and a new `mattermost`. Extras for cloud services and public messaging platforms are not.

## Security review

Each release is checked to carry no known vulnerability (OSV) in any dependency. The wheel contains a CycloneDX SBOM (`.dist-info/sboms/`) naming every Python dependency and every npm package compiled into the dashboard and TUI, and the license texts of the latter. The GitHub release attaches the same SBOM, the audit report and a hashed requirements file. See [SECURITY.md](https://github.com/iscodesnippet2/horo-next/blob/horo/SECURITY.md).

## Versions

`horo-next X.Y.Z` is built from upstream `Hermes Agent vX.Y.Z`. A packaging-only fix on the same upstream release is published as `X.Y.Z.postN`.

## Offline installation

Each release attaches `requirements-X.Y.Z.txt`, the full resolved dependency set. On a machine with internet access:

```bash
pip download horo-next==X.Y.Z -d wheelhouse
```

Then on the offline machine:

```bash
pip install --no-index --find-links wheelhouse horo-next
```

## License

MIT. Hermes Agent is copyright Nous Research; bundled skills carry their own licenses.
