Setup
Aphrodite ships as a Hermes Agent plugin (recommended) or a standalone Chat Completions proxy. Binaries are never shipped in the repository and register() never downloads - run the explicit setup step to fetch the binary and dylib from GitHub Releases into ~/.hermes/aphrodite/, with SHA-256 verification.
Option A: Hermes plugin
git clone https://github.com/PlayForm/Aphrodite-Hermes.git
cd Aphrodite-Hermes
ln -s "$(pwd)" ~/.hermes/plugins/aphrodite
bash download.sh
cd ..
hermes plugins enable aphrodite
hermesbash download.sh (or pwsh ./download.ps1 on Windows) fetches the binary and dylib from GitHub Releases and verifies them against SHA-256 checksums.
Option B: Cargo
cargo install aphrodite # proxy binary
cargo install aphrodite-hermes # dylib + helper bin
aphrodite setup # runtime home under ~/.hermes/aphrodite + hooks-only loaderOption C: from source
git clone https://github.com/PlayForm/Aphrodite.git
cd Aphrodite
git submodule update --init --recursive
cargo build --release -p aphrodite -p aphrodite-hermesConfiguration
Aphrodite is TOML-driven. It reads ./aphrodite.toml first, then ~/.hermes/aphrodite/aphrodite.toml; environment variables override TOML, TOML overrides defaults. Auto-reload is opt-in (compression.auto_reload). The template lives at aphrodite.toml.example in the repository.
Injected context is hard-capped per turn (flow.budget_chars, default 2600). Keys not yet wired into the runtime are annotated DOCUMENTED BUT UNWIRED in the example file - the example is the source of truth.