Download plugins/model-providers/opencode-free/__init__.py from SaylorTwift/hermes-agent: direct link, hf CLI and curl.
- Browser
- Download file 2.33 kB
-
https://huggingface.co/SaylorTwift/hermes-agent/resolve/main/plugins/model-providers/opencode-free/__init__.py
- Command line
-
hf download hf://SaylorTwift/hermes-agent/plugins/model-providers/opencode-free/__init__.py
-
curl -L -o __init__.py https://huggingface.co/SaylorTwift/hermes-agent/resolve/main/plugins/model-providers/opencode-free/__init__.py
2.33 kB
| """OpenCode Free provider profile: the free tier on the Zen relay (https://opencode.ai/zen/v1). | |
| KEYLESS: the relay serves free-tier models anonymously and 401s any bearer it | |
| doesn't recognize, so this provider never sends a credential (the runtime | |
| resolver pins the keyless placeholder and an empty Authorization header; see | |
| hermes_cli.models.opencode_zen_free_runtime). Select via ``/model free``. | |
| """ | |
| from typing import Any | |
| from agent.reasoning_effort import ox_alpha_reasoning_extras | |
| from hermes_cli import __version__ as _HERMES_VERSION | |
| from providers import register_provider | |
| from providers.base import ProviderProfile | |
| class OpenCodeFreeProfile(ProviderProfile): | |
| """OpenCode Free — keyless, with Ox Alpha reasoning controls. | |
| Ox Alpha (x-preview-f-free) is also reachable via opencode-zen with the same wire | |
| contract; both profiles call ``agent.reasoning_effort.ox_alpha_reasoning_extras``. | |
| """ | |
| def build_api_kwargs_extras( | |
| self, *, reasoning_config: dict | None = None, model: str | None = None, **context | |
| ) -> tuple[dict[str, Any], dict[str, Any]]: | |
| return ox_alpha_reasoning_extras(reasoning_config, model) | |
| opencode_free = OpenCodeFreeProfile( | |
| name="opencode-free", aliases=("free", "opencode_free"), | |
| env_vars=(), # keyless — nothing to configure | |
| base_url="https://opencode.ai/zen/v1", display_name="OpenCode Free", | |
| description="OpenCode free models — keyless, no account needed", | |
| # Attribution headers (same values as opencode-zen/go) plus the empty Authorization | |
| # override that keeps the SDK's "Bearer <placeholder>" off the wire (free tier 401s it). | |
| default_headers={ | |
| "Authorization": "", | |
| "HTTP-Referer": "https://hermes-agent.nousresearch.com", | |
| "X-Title": "Hermes Agent", | |
| "User-Agent": f"HermesAgent/{_HERMES_VERSION}", | |
| }, | |
| # laguna-s-2.1-free was delisted by the relay 2026-09-09 (anon 401). Of the | |
| # surviving anonymous models mimo-v2.5-free is the only one that answers | |
| # promptly (200 in 2-4s on every probe, 2026-09-13); nemotron-3.5-lightning-free | |
| # hung >90s with no bytes on 4/4 probes and nemotron-3-ultra-free took ~40s. | |
| # big-pickle 429s every client except the opencode CLI's own User-Agent. | |
| default_aux_model="mimo-v2.5-free", | |
| ) | |
| register_provider(opencode_free) | |