Apertis AI model-provider plugin for Hermes Agent
Project description
Hermes Apertis Provider
A standalone Hermes Agent
model-provider plugin for Apertis AI. Apertis exposes an
OpenAI-compatible API at https://api.apertis.ai/v1.
This repository is intentionally separate from Hermes Agent. It is discovered from your Hermes profile and does not require a Hermes source-tree change.
Requirements
- A Hermes Agent installation with model-provider plugin discovery.
- An Apertis API key. Create and manage it in your Apertis account; never commit it to this repository or a Hermes project.
Install
Native Hermes install
Hermes versions with standalone model-provider distribution support can install and manage the Git repository directly:
hermes plugins install apertis-ai/hermes-apertis-provider
The manifest declares kind: model-provider, so Hermes places the checkout at
$HERMES_HOME/plugins/model-providers/apertis-provider/, prompts for
APERTIS_API_KEY when needed, and makes the profile available to hermes model. Model providers do not use the general plugins.enabled list.
This native route depends on Hermes' hermes_agent.model_providers distribution
contract. Until that support is present in your installed Hermes release, use
the release-pinned installer below.
The concrete compatibility gate is a Hermes version that exposes
providers.MODEL_PROVIDER_ENTRY_POINTS_GROUP with the value
hermes_agent.model_providers; upstream support is tracked in
NousResearch/hermes-agent#64277.
Older Hermes releases do not scan the wheel entry point, so use the pinned Git
installer until that change appears in a Hermes release.
Release-pinned Git install
The installer works with older Hermes releases and places the provider in the
active Hermes profile. Review the tagged script and run it pinned to v1.1.0:
(
set -eu
installer=$(mktemp "${TMPDIR:-/tmp}/hermes-apertis-install.XXXXXX")
trap 'rm -f "$installer"' 0
trap 'exit 1' HUP INT TERM
curl --fail --silent --show-error --location \
--output "$installer" \
https://raw.githubusercontent.com/apertis-ai/hermes-apertis-provider/v1.1.0/scripts/install.sh
less "$installer"
APERTIS_PLUGIN_REF=v1.1.0 sh "$installer"
)
The subshell stops if the download or review step fails and always removes the
temporary file. Set HERMES_HOME before running it to install into a
non-default Hermes profile. The default is ~/.hermes. The installer requires
Git and Python 3, matching Hermes' own runtime requirements.
After reviewing the tagged script, the equivalent non-interactive one-line install keeps the same fail-fast download and cleanup behavior:
( set -eu; installer=$(mktemp "${TMPDIR:-/tmp}/hermes-apertis-install.XXXXXX"); trap 'rm -f "$installer"' 0; trap 'exit 1' HUP INT TERM; curl --fail --silent --show-error --location --output "$installer" https://raw.githubusercontent.com/apertis-ai/hermes-apertis-provider/v1.1.0/scripts/install.sh; APERTIS_PLUGIN_REF=v1.1.0 sh "$installer"; )
To test the current development snapshot instead, clone main directly:
export HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
mkdir -p "$HERMES_HOME/plugins/model-providers"
git clone https://github.com/apertis-ai/hermes-apertis-provider.git \
"$HERMES_HOME/plugins/model-providers/apertis"
Python package
On a compatible Hermes version, install the wheel into the same Python environment as Hermes:
python -m pip install hermes-apertis-provider==1.1.0
The package has no runtime dependencies and exposes the zero-argument Apertis
registration function through hermes_agent.model_providers. Installing it in
an unrelated Python environment will not make it visible to Hermes.
Update
Choose the command matching the installation method; do not layer one method on top of another:
# Native Hermes Git install.
hermes plugins update model-providers/apertis-provider
# Python package install.
python -m pip install --upgrade hermes-apertis-provider==1.1.0
If scripts/install.sh is missing, the provider was installed with the earlier
manual-clone instructions. Bootstrap that checkout by fast-forwarding it to
main once:
git -C "${HERMES_HOME:-$HOME/.hermes}/plugins/model-providers/apertis" \
pull --ff-only origin main
Then run the APERTIS_PLUGIN_REF=main update below. The installer intentionally
rejects non-fast-forward updates, so never use the pinned command to downgrade
a checkout that has already advanced beyond v1.1.0; use a separate checkout
if you need to preserve an older release.
Run the installed script with the ref you want to follow:
# Follow the current main branch.
APERTIS_PLUGIN_REF=main \
sh "${HERMES_HOME:-$HOME/.hermes}/plugins/model-providers/apertis/scripts/install.sh"
# Or remain pinned to the stable release.
APERTIS_PLUGIN_REF=v1.1.0 \
sh "${HERMES_HOME:-$HOME/.hermes}/plugins/model-providers/apertis/scripts/install.sh"
Version-shaped short refs such as v1.1.0 resolve only to release tags. Other
short refs resolve only to branches; fully qualified refs/tags/... and
refs/heads/... values are also accepted.
Updates fail closed if the target has local changes, an ignored file would be
overwritten by the selected ref, the target is not a Git checkout, it uses a
different origin, or it cannot fast-forward. The installer never stashes,
resets, or deletes an existing provider checkout.
For Git installations, the final directory must contain __init__.py and
plugin.yaml directly. A pip installation is independent of that checkout;
roll it back with an explicit package version rather than rewriting a Git
installation.
Configure Hermes
Add your key to $HERMES_HOME/.env:
APERTIS_API_KEY=your_apertis_api_key
# Optional: route through a compatible proxy or a different Apertis endpoint.
# APERTIS_BASE_URL=https://api.apertis.ai/v1
Select Apertis in $HERMES_HOME/config.yaml:
model:
provider: apertis
default: gpt-5.6-sol
The aliases apertis-ai and apertis-api resolve to the same provider.
Models
Hermes queries Apertis' OpenAI-compatible /v1/models endpoint when possible.
That live result is authoritative: the models available to you depend on your
API key and subscription plan. The small fallback list in this plugin is only
used when live model discovery is unavailable; it is not an entitlement
guarantee.
To inspect the models available to your account without exposing your key in shell history, use your Apertis account tooling or an environment variable:
curl --fail-with-body https://api.apertis.ai/v1/models \
-H "Authorization: Bearer ${APERTIS_API_KEY:?Set APERTIS_API_KEY first}"
Verify
After setting APERTIS_API_KEY, run:
hermes doctor
The Provider Connectivity section should list Apertis. A successful health
check calls the account-aware /v1/models endpoint.
Development
The published package has no runtime dependencies. Run the repository's offline metadata and installer tests without a Hermes installation, API key, or network access:
python3 -m unittest discover -s tests -v
Scope
This plugin only declares Apertis provider metadata for Hermes' existing generic transport and discovery system. It is distributed through this repository, GitHub Releases, and PyPI. It does not modify Hermes Agent, add a custom transport or authentication flow, or guarantee model access for any Apertis plan.
License
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_apertis_provider-1.1.0.tar.gz.
File metadata
- Download URL: hermes_apertis_provider-1.1.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74b632502bfdef754359cabd680c68e1940b43ad74d0e81305e57f2c3276d394
|
|
| MD5 |
615acdaeb13604b6fa00947bc0424631
|
|
| BLAKE2b-256 |
c2dc02ebc4b45209b91dce0e93566024ff2e29f3df75a5e2908215bfbd570ac8
|
Provenance
The following attestation bundles were made for hermes_apertis_provider-1.1.0.tar.gz:
Publisher:
publish-pypi.yml on apertis-ai/hermes-apertis-provider
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_apertis_provider-1.1.0.tar.gz -
Subject digest:
74b632502bfdef754359cabd680c68e1940b43ad74d0e81305e57f2c3276d394 - Sigstore transparency entry: 2167778821
- Sigstore integration time:
-
Permalink:
apertis-ai/hermes-apertis-provider@ddaaa1bd8a0d2c99d3f2fc28fcd7c6cacdac56f0 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/apertis-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@ddaaa1bd8a0d2c99d3f2fc28fcd7c6cacdac56f0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hermes_apertis_provider-1.1.0-py3-none-any.whl.
File metadata
- Download URL: hermes_apertis_provider-1.1.0-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5fa42d7fec61fc6046348f05b426fd881a886b2ab03f26f812a722bffada42b
|
|
| MD5 |
6c4821c76f54640aee24d7f05c8e87df
|
|
| BLAKE2b-256 |
a1c31ea226d515b140727a8aa990ba7798d531af1b72c3bba2d42d90a1d156f6
|
Provenance
The following attestation bundles were made for hermes_apertis_provider-1.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on apertis-ai/hermes-apertis-provider
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_apertis_provider-1.1.0-py3-none-any.whl -
Subject digest:
d5fa42d7fec61fc6046348f05b426fd881a886b2ab03f26f812a722bffada42b - Sigstore transparency entry: 2167778832
- Sigstore integration time:
-
Permalink:
apertis-ai/hermes-apertis-provider@ddaaa1bd8a0d2c99d3f2fc28fcd7c6cacdac56f0 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/apertis-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@ddaaa1bd8a0d2c99d3f2fc28fcd7c6cacdac56f0 -
Trigger Event:
release
-
Statement type: