### Example: Install Solana Skill Source: https://hermes-agent.nousresearch.com/docs/reference/optional-skills-catalog Example of installing the 'solana' skill from the 'blockchain' category. ```bash hermes skills install official/blockchain/solana ``` -------------------------------- ### Google Gemini OAuth Quick Start Source: https://hermes-agent.nousresearch.com/docs/integrations/providers This example shows the command-line interaction for picking and confirming the Google Gemini (OAuth) provider. It guides the user through the initial setup and authentication process. ```bash hermes model# → pick "Google Gemini (OAuth)"# → see policy warning, confirm# → browser opens to accounts.google.com, sign in# → done — Hermes auto-provisions your free tier on first request ``` -------------------------------- ### Example: Install Flash Attention Skill Source: https://hermes-agent.nousresearch.com/docs/reference/optional-skills-catalog Example of installing the 'flash-attention' skill from the 'mlops' category. ```bash hermes skills install official/mlops/flash-attention ``` -------------------------------- ### Install and Start ClawRouter Source: https://hermes-agent.nousresearch.com/docs/integrations/providers Install ClawRouter using npx and start the local routing proxy. Configure Hermes to use ClawRouter's endpoint. ```bash npx @blockrun/clawrouter ``` -------------------------------- ### Install and Start LiteLLM Proxy Source: https://hermes-agent.nousresearch.com/docs/integrations/providers Install LiteLLM and start the proxy server. Configure Hermes to use this proxy as a custom endpoint. ```bash pip install "litellm[proxy]" litellm --model anthropic/claude-sonnet-4 --port 4000 ``` ```bash litellm --config litellm_config.yaml --port 4000 ``` -------------------------------- ### Python: Track session duration with on_session_start and on_session_end Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/hooks This example demonstrates how to track the duration of a session by recording the start time in `on_session_start` and calculating the difference in `on_session_end`. Requires logging setup. ```python import time, logging logger = logging.getLogger(__name__) _start_times = {} def on_start(session_id, **kwargs): _start_times[session_id] = time.time() def on_end(session_id, completed, interrupted, **kwargs): start = _start_times.pop(session_id, None) if start: duration = time.time() - start logger.info("SESSION_DURATION session=%s seconds=%.1f completed=%s interrupted=%s", session_id, duration, completed, interrupted) def register(ctx): ctx.register_hook("on_session_start", on_start) ctx.register_hook("on_session_end", on_end) ``` -------------------------------- ### Run Hermes Gateway Setup Wizard Source: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/email Use this command to initiate the setup wizard for the Hermes gateway. The wizard will guide you through configuring email settings. ```bash hermes gateway setup ``` -------------------------------- ### Install Hermes Agent with pip Source: https://hermes-agent.nousresearch.com/docs/getting-started/quickstart Use pip for the simplest installation. The postinstall command is optional but recommended for installing Node.js, browser, ripgrep, and ffmpeg, and running initial setup. ```bash pip install hermes-agent hermes postinstall # optional: installs Node.js, browser, ripgrep, ffmpeg + runs setup ``` -------------------------------- ### Install and Set Up OpenViking Server Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/memory-providers Commands to install the OpenViking Python package and start its server. This is a prerequisite for configuring Hermes to use OpenViking as a memory provider. ```bash # Start the OpenViking server first pip install openviking openviking-server ``` -------------------------------- ### Start Hermes Gateway Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/voice-mode Use this command to start the gateway service, which connects to configured messaging platforms. For first-time setup, use 'hermes gateway setup' for an interactive wizard. ```bash hermes gateway ``` ```bash hermes gateway setup ``` -------------------------------- ### Install System Libraries for Chromium (Debian/Ubuntu) Source: https://hermes-agent.nousresearch.com/docs/getting-started/installation As an administrator with sudo access, install the system libraries that Chromium needs. This is a one-time setup step for non-sudo installations. ```bash sudo npx playwright install-deps chromium ``` -------------------------------- ### Hermes Import Example Source: https://hermes-agent.nousresearch.com/docs/reference/cli-commands Restore a previously created Hermes backup. Use --force to skip the confirmation prompt if a Hermes installation already exists. ```bash hermes import [options] ``` -------------------------------- ### Start Hermes Gateway Source: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/slack After configuring the environment variables, start the Hermes gateway. You can run it in the foreground, install it as a user service, or as a system service on Linux for boot-time startup. ```bash hermes gateway # Foreground hermes gateway install # Install as a user servicesudo hermes gateway install --system # Linux only: boot-time system service ``` -------------------------------- ### Install Hermes Gateway as a Service Source: https://hermes-agent.nousresearch.com/docs/guides/team-telegram-assistant Install the Hermes gateway as a background service for persistent deployment. Use the --system flag for a Linux system service that starts on boot. ```bash hermes gateway install ``` ```bash sudo hermes gateway install --system # Linux only: boot-time system service ``` -------------------------------- ### Installing a Skill Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills CLI command to install a specific skill from a tap. ```bash hermes skills install my-org/hermes-skills/deploy-runbook ``` -------------------------------- ### Install ACP Support Source: https://hermes-agent.nousresearch.com/docs/getting-started/quickstart Run this command to install ACP support if you used the standard `[all]` extras during initial installation. If not, you may need to install it manually. ```bash hermes acp ``` -------------------------------- ### Re-run Hermes Setup Wizard Source: https://hermes-agent.nousresearch.com/docs/getting-started/termux Re-run the full interactive setup wizard for Hermes at any time by executing the 'hermes setup' command. ```bash hermes setup ``` -------------------------------- ### Install a Skill with Security Scan Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills Install a skill from a GitHub repository after a security scan. ```bash hermes skills install openai/skills/k8s ``` -------------------------------- ### Inspect a Skill Before Installing Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills Preview the details of a skill from a GitHub repository before committing to installation. ```bash hermes skills inspect openai/skills/k8s ``` -------------------------------- ### Install huggingface-cli Source: https://hermes-agent.nousresearch.com/docs/guides/local-llm-on-mac Installs the Hugging Face command-line interface tool using Homebrew. ```bash brew install huggingface-cli ``` -------------------------------- ### Install llama.cpp Source: https://hermes-agent.nousresearch.com/docs/guides/local-llm-on-mac Installs the llama.cpp server command globally using Homebrew. ```bash brew install llama.cpp ``` -------------------------------- ### Manage Hermes Gateway Source: https://hermes-agent.nousresearch.com/docs/reference/cli-commands Control the Hermes gateway service using subcommands like `run`, `start`, `stop`, `status`, `install`, `uninstall`, and `setup`. Use `--all` to affect all profiles. ```bash hermes gateway ``` ```bash hermes gateway run ``` ```bash tmux new -s hermes 'hermes gateway run' ``` ```bash hermes gateway start --all ``` -------------------------------- ### Set Up Development Environment Source: https://hermes-agent.nousresearch.com/docs/developer-guide/contributing Create necessary directories, copy configuration, and set environment variables for development. ```bash mkdir -p ~/.hermes/{cron,sessions,logs,memories,skills} cp cli-config.yaml.example ~/.hermes/config.yaml touch ~/.hermes/.env # Add at minimum an LLM provider key: echo 'OPENROUTER_API_KEY=sk-or-v1-your-key' >> ~/.hermes/.env ``` -------------------------------- ### Quick Start: Initialize, Gateway, Create Task, Watch, and List Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/kanban A sequence of commands for setting up a Kanban board, starting the gateway dispatcher, creating a task, and monitoring board activity. This workflow is for human interaction before a model takes over. ```bash # 1. Create the board (you) hermes kanban init ``` ```bash # 2. Start the gateway (hosts the embedded dispatcher) hermes gateway start ``` ```bash # 3. Create a task (you — or an orchestrator agent via kanban_create) hermes kanban create "research AI funding landscape" --assignee researcher ``` ```bash # 4. Watch activity live (you) hermes kanban watch ``` ```bash # 5. See the board (you) hermes kanban list hermes kanban stats ``` -------------------------------- ### Example BOOT.md Checklist Content Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/hooks Define startup tasks in natural language. The agent interprets these instructions, including tool calls and conditional logic. Use `[SILENT]` to suppress messages when no action is needed. ```markdown # Startup Checklist 1. Run `hermes cron list` and check if any scheduled jobs failed overnight. 2. If any failed, send a summary to Discord #ops using the `send_message` tool. 3. Check if `/opt/app/deploy.log` has any ERROR lines from the last 24 hours. If yes, summarize them and include in the same Discord message. 4. If nothing went wrong, reply with only `[SILENT]` so no message is sent. ``` -------------------------------- ### Configuration Example Source: https://hermes-agent.nousresearch.com/docs/developer-guide/adding-platform-adapters Example configuration for a custom platform adapter in config.yaml, enabling the platform and providing extra connection details. ```yaml gateway: platforms: my_platform: enabled: true extra: token: "..." channel: "#general" ``` -------------------------------- ### Example Goal Walkthrough Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/goals Demonstrates a typical interaction where a user sets a goal, and the agent iteratively works towards achieving it over multiple turns by executing commands and providing status updates. The example shows the agent creating files one by one and confirming progress. ```text You: /goal Create four files /tmp/note_{1..4}.txt, one per turn, each containing its number as text Hermes: Creating /tmp/note_1.txt now. 💻 echo "1" > /tmp/note_1.txt (0.1s) I've created /tmp/note_1.txt with the content "1". I'll continue with the remaining files on the next turn as you specified. ↻ Continuing toward goal (1/20): Only 1 of 4 files has been created; 3 files remain. Hermes: [Continuing toward your standing goal] 💻 echo "2" > /tmp/note_2.txt (0.1s) Created /tmp/note_2.txt. Two more to go. ↻ Continuing toward goal (2/20): 2 of 4 files created; 2 remain. Hermes: [Continuing toward your standing goal] 💻 echo "3" > /tmp/note_3.txt (0.1s) Created /tmp/note_3.txt. ↻ Continuing toward goal (3/20): 3 of 4 files created; 1 remains. Hermes: [Continuing toward your standing goal] 💻 echo "4" > /tmp/note_4.txt (0.1s) All four files have been created: /tmp/note_1.txt through /tmp/note_4.txt, each containing its number. ✓ Goal achieved: All four files were created with the specified content, completing the goal. ``` -------------------------------- ### Combine Directory Plugin, Python Dependency, and System Binary Source: https://hermes-agent.nousresearch.com/docs/getting-started/nix-setup Example demonstrating how to configure a directory plugin that also requires a specific Python package and a system binary. Both are added via Nix configuration. ```nix services.hermes-agent = { extraPlugins = [ my-plugin-src ]; # plugin source extraPythonPackages = [ pkgs.python312Packages.redis ]; # its Python dep extraPackages = [ pkgs.redis ]; # system binary it needs }; ``` -------------------------------- ### Install Skill from Direct URL Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills Install a skill by providing a direct HTTP(S) URL to its SKILL.md file. ```bash hermes skills install https://sharethis.chat/SKILL.md ``` -------------------------------- ### Full MCP Server Configuration Example Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp A comprehensive example demonstrating the configuration of multiple MCP servers, including command execution, environment variables, tool inclusion/exclusion, and disabling utilities. ```yaml mcp_servers: github: command: "npx" args: ["-y", "@modelcontextprotocol/server-github"] env: GITHUB_PERSONAL_ACCESS_TOKEN: "***" tools: include: [create_issue, list_issues, search_code] prompts: false stripe: url: "https://mcp.stripe.com" headers: Authorization: "Bearer ***" tools: exclude: [delete_customer] resources: false legacy: url: "https://mcp.legacy.internal" enabled: false ``` -------------------------------- ### Install Hermes Agent Persistently with Nix Source: https://hermes-agent.nousresearch.com/docs/getting-started/nix-setup Install Hermes Agent globally using 'nix profile install' for persistent access. After installation, the 'hermes', 'hermes-agent', and 'hermes-acp' commands will be available on your system's PATH. The subsequent setup and configuration follow the standard installation workflow. ```bash nix profile install github:NousResearch/hermes-agent ``` ```bash hermes setup ``` ```bash hermes chat ``` -------------------------------- ### Start Hermes Gateway Service Source: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/email Commands to start the Hermes gateway. Choose the foreground option for testing or install as a user/system service for persistent operation. ```bash hermes gateway # Run in foreground ``` ```bash hermes gateway install # Install as a user service ``` ```bash sudo hermes gateway install --system # Linux only: boot-time system service ``` -------------------------------- ### Hermes Setup Wizard Source: https://hermes-agent.nousresearch.com/docs/reference/cli-commands Run the Hermes setup wizard for initial configuration or reconfigure existing settings. Use options like `--non-interactive`, `--reset`, `--quick`, and `--reconfigure` to modify the setup process. ```bash hermes setup [model|tts|terminal|gateway|tools|agent] [--non-interactive] [--reset] [--quick] [--reconfigure] ``` ```bash hermes setup --quick ``` ```bash hermes setup --reset ``` -------------------------------- ### Start Hermes Agent Gateway Source: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/signal Start the Hermes Agent gateway. Options include foreground execution, installation as a user service, or system service on Linux. ```bash hermes gateway # Foreground hermes gateway install # Install as a user service sudo hermes gateway install --system # Linux only: boot-time system service ``` -------------------------------- ### Initialize Kanban and Open Dashboard Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/kanban-tutorial Run this command to initialize the Kanban system if it hasn't been already. Then, open the Kanban dashboard in your browser. ```bash hermes kanban init # optional; first `hermes kanban ` auto-initshermes dashboard # opens http://127.0.0.1:9119 in your browser# click Kanban in the left nav ``` -------------------------------- ### Reload Shell and Start Chatting Source: https://hermes-agent.nousresearch.com/docs/getting-started/installation After installation, reload your shell environment and then start chatting with the Hermes Agent. Ensure you use the correct source command for your shell. ```bash source ~/.bashrc # or: source ~/.zshrchermes # Start chatting! ``` -------------------------------- ### Clone, Build, and Setup Hermes Agent with Nix Source: https://hermes-agent.nousresearch.com/docs/getting-started/nix-setup Use these commands to clone the Hermes Agent repository, build it using Nix, and then run the setup script. This is the standard CLI workflow. ```bash git clone https://github.com/NousResearch/hermes-agent.git cd hermes-agent nix build ./result/bin/hermes setup ``` -------------------------------- ### Example File Content (Python) Source: https://hermes-agent.nousresearch.com/docs/developer-guide/context-compression-and-caching A snippet of Python code, likely from a test file, starting with pytest import. This is an example of content that might be read by a tool. ```python import pytest ... ``` -------------------------------- ### Install and Serve vLLM Model Source: https://hermes-agent.nousresearch.com/docs/integrations/providers Installs vLLM and serves a specified model with configurations for context length and tool calling. Tool calling requires explicit flags. ```bash pip install vllmvllm serve meta-llama/Llama-3.1-70B-Instruct \ --port 8000 \ --max-model-len 65536 \ --tensor-parallel-size 2 \ --enable-auto-tool-choice \ --tool-call-parser hermes ``` -------------------------------- ### Configure Modal Backend Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/tools Set up the Modal backend by installing the modal library and configuring Hermes to use it. ```bash uv pip install modal modal setup hermes config set terminal.backend modal ``` -------------------------------- ### Setup Hermes Agent in Docker Source: https://hermes-agent.nousresearch.com/docs/user-guide/docker Run this command to start the setup wizard for Hermes Agent within a Docker container. It creates a data directory and configures API keys. ```bash mkdir -p ~/.hermes docker run -it --rm \ -v ~/.hermes:/opt/data \ nousresearch/hermes-agent setup ``` -------------------------------- ### Install Skill from URL with Name Override Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills Install a skill from a direct URL and specify a custom name if the frontmatter does not contain one. ```bash hermes skills install https://example.com/SKILL.md --name my-skill ``` -------------------------------- ### Create and Use a Coder Profile Source: https://hermes-agent.nousresearch.com/docs/user-guide/profiles Demonstrates the quick start process for creating a new profile named 'coder', configuring it, and then launching a chat session. ```bash hermes profile create coder # creates profile + "coder" command alias coder setup # configure API keys and model coder chat # start chatting ``` -------------------------------- ### Setup ByteRover Memory Provider Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/memory-providers Install the ByteRover CLI and configure Hermes Agent to use the ByteRover memory provider. Installation can be done via a script, and configuration can be interactive or manual. ```bash curl -fsSL https://byterover.dev/install.sh | sh ``` ```bash hermes memory setup # select "byterover" ``` ```bash hermes config set memory.provider byterover ``` -------------------------------- ### Initialize and Start Kanban Dashboard Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/kanban Initialize the Kanban database if it doesn't exist and then start the Hermes dashboard. The 'Kanban' tab will appear in the navigation after initialization. ```bash hermes kanban init # one-time: create kanban.db if not already present ``` ```bash hermes dashboard # "Kanban" tab appears in the nav, after "Skills" ``` -------------------------------- ### Start LM Studio Server via CLI Source: https://hermes-agent.nousresearch.com/docs/integrations/providers Use this command to start the LM Studio local server. It defaults to port 1234. Ensure LM Studio is installed and running. ```bash lms server start ``` -------------------------------- ### Get Hermes Profile Information Source: https://hermes-agent.nousresearch.com/docs/reference/profile-commands Prints the profile's distribution manifest, including name, version, requirements, author, and installation timestamp. Useful for checking profile details before installation or identifying outdated profiles. ```bash hermes profile info ``` -------------------------------- ### Re-snapshot PATH for macOS Gateway Source: https://hermes-agent.nousresearch.com/docs/reference/faq Update the Hermes gateway's PATH environment variable on macOS by re-running the `hermes gateway install` command. This is necessary when new tools are installed after the gateway setup, ensuring they are discoverable by the gateway. ```bash hermes gateway install # Re-snapshots your current PATH hermes gateway start # Detects the updated plist and reloads ``` -------------------------------- ### Installing Individual Skills Directly Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills CLI command to install a single skill from a public GitHub repository without adding the entire repository as a tap. ```bash hermes skills install owner/repo/skills/my-workflow ``` -------------------------------- ### Bootstrap OAuth Authorization (Native) Source: https://hermes-agent.nousresearch.com/docs/getting-started/nix-setup Use this command to initiate the OAuth authorization flow for a server in a native installation. This is typically a one-time setup. ```bash # Native modesudo -u hermes HERMES_HOME=/var/lib/hermes/.hermes \ hermes mcp add my-oauth-server --url https://mcp.example.com/mcp --auth oauth ``` -------------------------------- ### Install SGLang Source: https://hermes-agent.nousresearch.com/docs/integrations/providers Install SGLang with all dependencies. This is the first step to setting up SGLang for LLM serving. ```bash pip install "sglang[all]" ``` -------------------------------- ### Start Hindsight Local Mode UI Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/memory-providers Launch the user interface for Hindsight in local mode. Ensure Hindsight is installed with the necessary components. ```bash hindsight-embed -p hermes ui start ``` -------------------------------- ### Hermes Debug Share Examples Source: https://hermes-agent.nousresearch.com/docs/reference/cli-commands Upload a debug report and get a URL. Options control log line inclusion, expiration, and local output. ```bash hermes debug share ``` ```bash hermes debug share --lines 500 ``` ```bash hermes debug share --expire 30 ``` ```bash hermes debug share --local ``` -------------------------------- ### Install Skill from Well-Known URL Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills Install a skill directly from a URL that follows the 'well-known' skills convention. ```bash hermes skills install well-known:https://mintlify.com/docs/.well-known/skills/mintlify ``` -------------------------------- ### Add New Provider via CLI Source: https://hermes-agent.nousresearch.com/docs/reference/faq Use this command from your terminal to initiate the setup wizard for adding new AI providers, configuring API keys, and managing OAuth. ```bash # Exit the Hermes chat session first (Ctrl+C or /quit)# Run the full provider setup wizardhermes model# This lets you: add providers, run OAuth, enter API keys, configure endpoints ``` -------------------------------- ### Hermes Terminal Setup Command Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/vision Run this command inside a local VS Code-family integrated terminal on macOS to install recommended `workbench.action.terminal.sendSequence` bindings for improved multiline and undo/redo support. ```bash /terminal-setup ``` -------------------------------- ### Hermes Backup Examples Source: https://hermes-agent.nousresearch.com/docs/reference/cli-commands Create a zip archive of Hermes configuration, skills, sessions, and data. Use --quick for a faster snapshot of critical state files. ```bash hermes backup ``` ```bash hermes backup -o /tmp/hermes.zip ``` ```bash hermes backup --quick ``` ```bash hermes backup --quick --label "pre-upgrade" ``` -------------------------------- ### Hermes Agent Configuration Commands Source: https://hermes-agent.nousresearch.com/docs/getting-started/installation Use these commands to reconfigure individual settings for the Hermes Agent after installation. This includes model selection, tool configuration, gateway setup, and general configuration. ```bash hermes model # Choose your LLM provider and model ``` ```bash hermes tools # Configure which tools are enabled ``` ```bash hermes gateway setup # Set up messaging platforms ``` ```bash hermes config set # Set individual config values ``` ```bash hermes setup # Or run the full setup wizard to configure everything at once ``` -------------------------------- ### Clone an Existing Hermes Profile Source: https://hermes-agent.nousresearch.com/docs/reference/faq Use this command to create a new profile that copies all memories, sessions, and skills from an existing profile. This is useful for starting a new profile with a pre-existing setup. ```bash hermes profile create newname --clone-all ``` -------------------------------- ### Configure Firecrawl API Key Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/browser Add this line to your ~/.hermes/.env file to use Firecrawl as your cloud browser provider. Get your API key from firecrawl.dev. You can then select Firecrawl in the Hermes setup. ```env # Add to ~/.hermes/.env FIRECRAWL_API_KEY=fc-*** ``` -------------------------------- ### Install Skill from Direct URL Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills Install a single-file SKILL.md directly from an HTTP(S) URL. This is useful for skills hosted on personal websites or without a hub listing. The URL itself serves as the identifier. ```bash hermes skills install https://sharethis.chat/SKILL.md ``` ```bash hermes skills install https://example.com/my-skill/SKILL.md --category productivity ``` -------------------------------- ### Manage Hermes Gateway Service (macOS) Source: https://hermes-agent.nousresearch.com/docs/guides/team-telegram-assistant Commands to manage the Hermes gateway service on macOS. This includes starting, stopping, and viewing logs. The launchd plist captures your shell PATH at install time. ```bash # macOS — manage the service hermes gateway starthermes gateway stop tail -f ~/.hermes/logs/gateway.log ``` -------------------------------- ### Home Assistant State Check - Security Check Source: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/homeassistant Demonstrates checking the security status of a Home Assistant setup by listing entities in binary_sensor and lock domains, and getting the state of the alarm control panel. ```python ha_list_entities(domain="binary_sensor") ``` ```python ha_get_state(entity_id="alarm_control_panel.home") ``` ```python ha_list_entities(domain="lock") ``` -------------------------------- ### Full Example Configuration for Hermes Agent with Slack Source: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/slack This example demonstrates a comprehensive configuration including global settings for session management, unauthorized user handling, and voice transcription, along with Slack-specific settings for mentions and reply modes. ```yaml # Global gateway settings group_sessions_per_user: true unauthorized_dm_behavior: "pair" stt_enabled: true # Slack-specific settings slack: require_mention: true unauthorized_dm_behavior: "pair" # Platform config platforms: slack: reply_to_mode: "first" extra: reply_in_thread: true reply_broadcast: false ``` -------------------------------- ### Initialize session cache using on_session_start hook Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/hooks Use the `on_session_start` hook to initialize a session-specific cache when a new conversation begins. This example stores model, platform, tool call count, and start time. ```python _session_caches = {} def init_session(session_id, model, platform, **kwargs): _session_caches[session_id] = { "model": model, "platform": platform, "tool_calls": 0, "started": __import__("datetime").datetime.now().isoformat(), } def register(ctx): ctx.register_hook("on_session_start", init_session) ``` -------------------------------- ### Configure AWS Bedrock Access Source: https://hermes-agent.nousresearch.com/docs/getting-started/quickstart For AWS Bedrock access to models like Claude, Nova, Llama, and DeepSeek, use an IAM role or configure AWS credentials with `aws configure`. Refer to the guide for detailed setup. ```shell IAM role or `aws configure` ([guide](/docs/guides/aws-bedrock)) ``` -------------------------------- ### Environment File Example for API Keys Source: https://hermes-agent.nousresearch.com/docs/guides/use-voice-mode-with-hermes Example configuration for the ~/.hermes/.env file. This includes placeholders for API keys for cloud STT and premium TTS services. ```dotenv # Cloud STT options (local needs no key) GROQ_API_KEY=*** VOICE_TOOLS_OPENAI_KEY=*** # Premium TTS (optional) ELEVENLABS_API_KEY=*** ``` -------------------------------- ### Install MCP Dependencies Source: https://hermes-agent.nousresearch.com/docs/reference/faq Ensure MCP dependencies are installed by navigating to the Hermes agent directory and running the pip install command. This is typically included in a standard installation. ```bash cd ~/.hermes/hermes-agent && uv pip install -e ".[mcp]" ``` -------------------------------- ### Reinstall Hermes Without Sudo Source: https://hermes-agent.nousresearch.com/docs/reference/faq If you encounter permission denied errors during installation, do not use sudo. Remove any previous sudo installations and re-run the standard installer, which installs to ~/.local/bin. ```bash # Don't use sudo with the installer — it installs to ~/.local/bin # If you previously installed with sudo, clean up: sudo rm /usr/local/bin/hermes # Then re-run the standard installer curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash ``` -------------------------------- ### Hermes Agent Nix Setup Overview Source: https://hermes-agent.nousresearch.com/docs/getting-started/nix-setup Illustrates the directory structure and bind-mounting strategy when Hermes runs within a container managed by NixOS. This setup ensures the Nix-built binary is read-only within the container, while specific directories like HERMES_HOME and /data are writable. ```text Host Container──── ─────────/nix/store/...-hermes-agent-0.1.0 ──► /nix/store/... (ro)~/.hermes -> /var/lib/hermes/.hermes (symlink bridge, per hostUsers)/var/lib/hermes/ ──► /data/ (rw) ├── current-package -> /nix/store/... (symlink, updated each rebuild) ├── .gc-root -> /nix/store/... (prevents nix-collect-garbage) ├── .container-identity (sha256 hash, triggers recreation) ├── .hermes/ (HERMES_HOME) │ ├── .env (merged from environment + environmentFiles) │ ├── config.yaml (Nix-generated, deep-merged by activation) │ ├── .managed (marker file) │ ├── .container-mode (routing metadata: backend, exec_user, etc.) │ ├── state.db, sessions/, memories/ (runtime state) │ └── mcp-tokens/ (OAuth tokens for MCP servers) ├── home/ ──► /home/hermes (rw) └── workspace/ (MESSAGING_CWD) ├── SOUL.md (from documents option) └── (agent-created files)Container writable layer (apt/pip/npm): /usr, /usr/local, /tmp ``` -------------------------------- ### Build and Start llama-server Source: https://hermes-agent.nousresearch.com/docs/integrations/providers Build and start the llama-server for CPU and Metal inference. Use `-c` to set context length, `-ngl` for GPU layers, and `-m` for the model path. Set `--jinja` for tool calling support. ```bash cmake -B build && cmake --build build --config Release ./build/bin/llama-server \ --jinja -fa \ -c 32768 \ -ngl 99 \ -m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \ --port 8080 --host 0.0.0.0 ```