===== Installation ===== ==== macOS / Linux / WSL2 ==== curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash ==== Android / Termux ==== curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash The install script auto-detects Termux and adjusts accordingly (uses Python stdlib venv + pip instead of uv). After installation, reload your shell: source ~/.bashrc # bash source ~/.zshrc # zsh Or just close and reopen your terminal. ===== Configure Synthetic as Provider ===== Run the model wizard: hermes model - Select **(○) Custom endpoint (enter URL manually)** - Base URL: %%https://api.synthetic.new/openai/v1%% - API key: your key from [[https://dev.synthetic.new/docs/api/getting-started|Synthetic API Getting Started]] - Default model: pick from the list (e.g. %%hf:zai-org/GLM-5.1%%) - Context window length: **leave blank** for auto-detection The base URL must end with %%/v1%% — no trailing slash. ===== Configure Auxiliary Models ===== Hermes uses auxiliary models for background tasks: vision, web extraction, context compression, session search, etc. When your main provider is Synthetic, you need to point all aux tasks at Synthetic too — otherwise they fall back to OpenRouter (which won't work without an OpenRouter key). See the [[:models]] page for model details and pricing to choose which models to use for each task. ==== Vision (required) ==== Kimi K2.5 is the **only vision-capable model on Synthetic**. Set it for image analysis to work. %%hf:moonshotai/Kimi-K2.5%% and %%hf:nvidia/Kimi-K2.5-NVFP4%% are aliased internally and can be used interchangeably. Either one works. hermes config set auxiliary.vision.provider synthetic hermes config set auxiliary.vision.model "hf:moonshotai/Kimi-K2.5" ==== Text auxiliary models ==== These handle fast background tasks (summarization, search, approvals, etc.). Pick models based on what you see on the [[:models]] page — cheaper/faster models like Nemotron 3 Super work well for most aux tasks, while compression benefits from a stronger model. # Web extraction (summarizes fetched pages) hermes config set auxiliary.web_extract.provider synthetic hermes config set auxiliary.web_extract.model "YOUR_CHOICE_HERE" # Context compression (summarizes long conversations to fit context) hermes config set auxiliary.compression.provider synthetic hermes config set auxiliary.compression.model "YOUR_CHOICE_HERE" # Session search (searches past conversation transcripts) hermes config set auxiliary.session_search.provider synthetic hermes config set auxiliary.session_search.model "YOUR_CHOICE_HERE" # Skills hub (skill search/install assistance) hermes config set auxiliary.skills_hub.provider synthetic hermes config set auxiliary.skills_hub.model "YOUR_CHOICE_HERE" # Approval (auto-approves low-risk terminal commands) hermes config set auxiliary.approval.provider synthetic hermes config set auxiliary.approval.model "YOUR_CHOICE_HERE" # MCP tool routing hermes config set auxiliary.mcp.provider synthetic hermes config set auxiliary.mcp.model "YOUR_CHOICE_HERE" # Memory flush (consolidates memories across sessions) hermes config set auxiliary.flush_memories.provider synthetic hermes config set auxiliary.flush_memories.model "YOUR_CHOICE_HERE" ===== Install Synthetic Search Plugin ===== Adds two tools: * **%%synthetic_zdr_search%%** — web search via Synthetic's API * **%%synthetic_quota_check%%** — check remaining API quota (free call) - Install: hermes plugins install gwyntel/hermes-synthetic-plugin - Ensure %%SYNTHETIC_API_KEY%% is set in %%~/.hermes/.env%%: echo "SYNTHETIC_API_KEY=your-key-here" >> ~/.hermes/.env - Enable the synthetic toolset: hermes tools enable synthetic %%SYNTHETIC_API_KEY%% must be set in %%~/.hermes/.env%% specifically — the plugin reads this variable. It may differ from the key stored during %%hermes model%% setup. Double-check it's there. Repo: [[https://github.com/gwyntel/hermes-synthetic-plugin|gwyntel/hermes-synthetic-plugin]] ===== Start a New Session ===== Tool and plugin changes don't apply mid-conversation. Start fresh: hermes Or if already in a session: /reset ===== Verify ===== - **Model**: type %%/model%% — should show your Synthetic model - **Vision**: send an image and ask about it - **Search**: ask something requiring web search - **Quota**: ask the agent to run %%synthetic_quota_check%%