Comprehensive audit of every reference/messaging/feature doc page against the
live code registries (PROVIDER_REGISTRY, OPTIONAL_ENV_VARS, COMMAND_REGISTRY,
TOOLSETS, tool registry, on-disk skills). Every fix was verified against code
before writing.
### Wrong values fixed (users would paste-and-fail)
- reference/environment-variables.md:
- DASHSCOPE_BASE_URL default was `coding-intl.dashscope.aliyuncs.com/v1` \u2192
actual `dashscope-intl.aliyuncs.com/compatible-mode/v1`.
- MINIMAX_BASE_URL and MINIMAX_CN_BASE_URL defaults were `/v1` \u2192 actual
`/anthropic` (Hermes calls MiniMax via its Anthropic Messages endpoint).
- reference/toolsets-reference.md MCP example used the non-existent nested
`mcp: servers:` key \u2192 real key is the flat `mcp_servers:`.
- reference/skills-catalog.md listed ~20 bundled skills that no longer exist
on disk (all moved to `optional-skills/`). Regenerated the whole bundled
section from `skills/**/SKILL.md` \u2014 79 skills, accurate paths and names.
- messaging/slack.md ":::info" callout claimed Slack has no
`free_response_channels` equivalent; both the env var and the yaml key are
in fact read.
- messaging/qqbot.md documented `QQ_MARKDOWN_SUPPORT` as an env var, but the
adapter only reads `extra.markdown_support` from config.yaml. Removed the
env var row and noted config-only nature.
- messaging/qqbot.md `hermes setup gateway` \u2192 `hermes gateway setup`.
### Missing coverage added
- Providers: AWS Bedrock and Qwen Portal (qwen-oauth) \u2014 both in
PROVIDER_REGISTRY but undocumented everywhere. Added sections to
integrations/providers.md, rows to quickstart.md and fallback-providers.md.
- integrations/providers.md "Fallback Model" provider list now includes
gemini, google-gemini-cli, qwen-oauth, xai, nvidia, ollama-cloud, bedrock.
- reference/cli-commands.md `--provider` enum and HERMES_INFERENCE_PROVIDER
enum in env-vars now include the same set.
- reference/slash-commands.md: added `/agents` (alias `/tasks`) and `/copy`.
Removed duplicate rows for `/snapshot`, `/fast` (\u00d72), `/debug`.
- reference/tools-reference.md: fixed "47 built-in tools" \u2192 52. Added
`feishu_doc` and `feishu_drive` toolset sections.
- reference/toolsets-reference.md: added `feishu_doc` / `feishu_drive` core
rows + all missing `hermes-<platform>` toolsets in the platform table
(bluebubbles, dingtalk, feishu, qqbot, wecom, wecom-callback, weixin,
homeassistant, webhook, gateway). Fixed the `debugging` composite to
describe the actual `includes=[...]` mechanism.
- reference/optional-skills-catalog.md: added `fitness-nutrition`.
- reference/environment-variables.md: added NOUS_BASE_URL,
NOUS_INFERENCE_BASE_URL, NVIDIA_API_KEY/BASE_URL, OLLAMA_API_KEY/BASE_URL,
XAI_API_KEY/BASE_URL, MISTRAL_API_KEY, AWS_REGION/AWS_PROFILE,
BEDROCK_BASE_URL, HERMES_QWEN_BASE_URL, DISCORD_ALLOWED_CHANNELS,
DISCORD_PROXY, TELEGRAM_REPLY_TO_MODE, MATRIX_DEVICE_ID, MATRIX_REACTIONS,
QQBOT_HOME_CHANNEL_NAME, QQ_SANDBOX.
- messaging/discord.md: documented DISCORD_ALLOWED_CHANNELS, DISCORD_PROXY,
HERMES_DISCORD_TEXT_BATCH_DELAY_SECONDS and HERMES_DISCORD_TEXT_BATCH_SPLIT
_DELAY_SECONDS (all actively read by the adapter).
- messaging/matrix.md: documented MATRIX_REACTIONS (default true).
- messaging/telegram.md: removed the redundant second Webhook Mode section
that invented a `telegram.webhook_mode: true` yaml key the adapter does
not read.
- user-guide/features/hooks.md: added `on_session_finalize` and
`on_session_reset` (both emitted via invoke_hook but undocumented).
- user-guide/features/api-server.md: documented GET /health/detailed, the
`/api/jobs/*` CRUD surface, POST /v1/runs, and GET /v1/runs/{id}/events
(10 routes that were live but undocumented).
- user-guide/features/fallback-providers.md: added `approval` and
`title_generation` auxiliary-task rows; added gemini, bedrock, qwen-oauth
to the supported-providers table.
- user-guide/features/tts.md: "seven providers" \u2192 "eight" (post-xAI add
oversight in #11942).
- user-guide/configuration.md: TTS provider enum gains `xai` and `gemini`;
yaml example block gains `mistral:`, `gemini:`, `xai:` subsections.
Auxiliary-provider enum now enumerates all real registry entries.
- reference/faq.md: stale AIAgent/config examples bumped from
`nous/hermes-3-llama-3.1-70b` and `claude-sonnet-4.6` to
`claude-opus-4.7`.
### Docs-site integrity
- guides/build-a-hermes-plugin.md referenced two nonexistent hooks
(`pre_api_request`, `post_api_request`). Replaced with the real
`on_session_finalize` / `on_session_reset` entries.
- messaging/open-webui.md and features/api-server.md had pre-existing
broken links to `/docs/user-guide/features/profiles` (actual path is
`/docs/user-guide/profiles`). Fixed.
- reference/skills-catalog.md had one `<1%` literal that MDX parsed as a
JSX tag. Escaped to `<1%`.
### False positives filtered out (not changed, verified correct)
- `/set-home` is a registered alias of `/sethome` \u2014 docs were fine.
- `hermes setup gateway` is valid syntax (`hermes setup \<section\>`);
changed in qqbot.md for cross-doc consistency, not as a bug fix.
- Telegram reactions "disabled by default" matches code (default `"false"`).
- Matrix encryption "opt-in" matches code (empty env default \u2192 disabled).
- `pre_api_request` / `post_api_request` hooks do NOT exist in current code;
documented instead the real `on_session_finalize` / `on_session_reset`.
- SIGNAL_IGNORE_STORIES is already in env-vars.md (subagent missed it).
Validation:
- `docusaurus build` \u2014 passes (only pre-existing nix-setup anchor warning).
- `ascii-guard lint docs` \u2014 124 files, 0 errors.
- 22 files changed, +317 / \u2212158.
9.9 KiB
| sidebar_position | title | description |
|---|---|---|
| 1 | Quickstart | Your first conversation with Hermes Agent — from install to chatting in 2 minutes |
Quickstart
This guide walks you through installing Hermes Agent, setting up a provider, and having your first conversation. By the end, you'll know the key features and how to explore further.
1. Install Hermes Agent
Run the one-line installer:
# Linux / macOS / WSL2 / Android (Termux)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
:::tip Android / Termux If you're installing on a phone, see the dedicated Termux guide for the tested manual path, supported extras, and current Android-specific limitations. :::
:::tip Windows Users Install WSL2 first, then run the command above inside your WSL2 terminal. :::
After it finishes, reload your shell:
source ~/.bashrc # or source ~/.zshrc
2. Set Up a Provider
The installer configures your LLM provider automatically. To change it later, use one of these commands:
hermes model # Choose your LLM provider and model
hermes tools # Configure which tools are enabled
hermes setup # Or configure everything at once
hermes model walks you through selecting an inference provider:
| Provider | What it is | How to set up |
|---|---|---|
| Nous Portal | Subscription-based, zero-config | OAuth login via hermes model |
| OpenAI Codex | ChatGPT OAuth, uses Codex models | Device code auth via hermes model |
| Anthropic | Claude models directly (Pro/Max or API key) | hermes model with Claude Code auth, or an Anthropic API key |
| OpenRouter | Multi-provider routing across many models | Enter your API key |
| Z.AI | GLM / Zhipu-hosted models | Set GLM_API_KEY / ZAI_API_KEY |
| Kimi / Moonshot | Moonshot-hosted coding and chat models | Set KIMI_API_KEY |
| Kimi / Moonshot China | China-region Moonshot endpoint | Set KIMI_CN_API_KEY |
| Arcee AI | Trinity models | Set ARCEEAI_API_KEY |
| Xiaomi MiMo | Xiaomi MiMo models via platform.xiaomimimo.com | Set XIAOMI_API_KEY |
| AWS Bedrock | Anthropic Claude, Amazon Nova, DeepSeek v3.2, and Meta Llama via AWS | Standard boto3 auth (AWS_PROFILE or AWS_ACCESS_KEY_ID + AWS_REGION) |
| Qwen Portal (OAuth) | Qwen 3.5 / Qwen-Coder models via Alibaba's consumer Qwen Portal | OAuth via hermes model (optional: HERMES_QWEN_BASE_URL) |
| MiniMax | International MiniMax endpoint | Set MINIMAX_API_KEY |
| MiniMax China | China-region MiniMax endpoint | Set MINIMAX_CN_API_KEY |
| Alibaba Cloud | Qwen models via DashScope | Set DASHSCOPE_API_KEY |
| Hugging Face | 20+ open models via unified router (Qwen, DeepSeek, Kimi, etc.) | Set HF_TOKEN |
| Kilo Code | KiloCode-hosted models | Set KILOCODE_API_KEY |
| OpenCode Zen | Pay-as-you-go access to curated models | Set OPENCODE_ZEN_API_KEY |
| OpenCode Go | $10/month subscription for open models | Set OPENCODE_GO_API_KEY |
| DeepSeek | Direct DeepSeek API access | Set DEEPSEEK_API_KEY |
| NVIDIA NIM | Nemotron models via build.nvidia.com or local NIM | Set NVIDIA_API_KEY (optional: NVIDIA_BASE_URL) |
| Ollama Cloud | Managed Ollama catalog without local GPU | Set OLLAMA_API_KEY (or pick Ollama Cloud in hermes model) |
| Google Gemini (OAuth) | Gemini via Cloud Code Assist — free and paid tiers | OAuth via hermes model (optional: HERMES_GEMINI_PROJECT_ID for paid tiers) |
| xAI (Grok) | Grok 4 models via Responses API + prompt caching | Set XAI_API_KEY (alias: grok) |
| GitHub Copilot | GitHub Copilot subscription (GPT-5.x, Claude, Gemini, etc.) | OAuth via hermes model, or COPILOT_GITHUB_TOKEN / GH_TOKEN |
| GitHub Copilot ACP | Copilot ACP agent backend (spawns local copilot CLI) |
hermes model (requires copilot CLI + copilot login) |
| Vercel AI Gateway | Vercel AI Gateway routing | Set AI_GATEWAY_API_KEY |
| Custom Endpoint | VLLM, SGLang, Ollama, or any OpenAI-compatible API | Set base URL + API key |
:::caution Minimum context: 64K tokens
Hermes Agent requires a model with at least 64,000 tokens of context. Models with smaller windows cannot maintain enough working memory for multi-step tool-calling workflows and will be rejected at startup. Most hosted models (Claude, GPT, Gemini, Qwen, DeepSeek) meet this easily. If you're running a local model, set its context size to at least 64K (e.g. --ctx-size 65536 for llama.cpp or -c 65536 for Ollama).
:::
:::tip
You can switch providers at any time with hermes model — no code changes, no lock-in. When configuring a custom endpoint, Hermes will prompt for the context window size and auto-detect it when possible. See Context Length Detection for details.
:::
3. Start Chatting
hermes # classic CLI
hermes --tui # modern TUI (recommended)
That's it! You'll see a welcome banner with your model, available tools, and skills. Type a message and press Enter.
:::tip Pick your interface
Hermes ships with two terminal interfaces: the classic prompt_toolkit CLI and a newer TUI with modal overlays, mouse selection, and non-blocking input. Both share the same sessions, slash commands, and config — try each with hermes vs hermes --tui.
:::
❯ What can you help me with?
The agent has access to tools for web search, file operations, terminal commands, and more — all out of the box.
4. Try Key Features
Ask it to use the terminal
❯ What's my disk usage? Show the top 5 largest directories.
The agent will run terminal commands on your behalf and show you the results.
Use slash commands
Type / to see an autocomplete dropdown of all commands:
| Command | What it does |
|---|---|
/help |
Show all available commands |
/tools |
List available tools |
/model |
Switch models interactively |
/personality pirate |
Try a fun personality |
/save |
Save the conversation |
Multi-line input
Press Alt+Enter or Ctrl+J to add a new line. Great for pasting code or writing detailed prompts.
Interrupt the agent
If the agent is taking too long, just type a new message and press Enter — it interrupts the current task and switches to your new instructions. Ctrl+C also works.
Resume a session
When you exit, hermes prints a resume command:
hermes --continue # Resume the most recent session
hermes -c # Short form
5. Explore Further
Here are some things to try next:
Set up a sandboxed terminal
For safety, run the agent in a Docker container or on a remote server:
hermes config set terminal.backend docker # Docker isolation
hermes config set terminal.backend ssh # Remote server
Connect messaging platforms
Chat with Hermes from your phone or other surfaces via Telegram, Discord, Slack, WhatsApp, Signal, Email, or Home Assistant:
hermes gateway setup # Interactive platform configuration
Add voice mode
Want microphone input in the CLI or spoken replies in messaging?
pip install "hermes-agent[voice]"
# Includes faster-whisper for free local speech-to-text
Then start Hermes and enable it inside the CLI:
/voice on
Press Ctrl+B to record, or use /voice tts to have Hermes speak its replies. See Voice Mode for the full setup across CLI, Telegram, Discord, and Discord voice channels.
Schedule automated tasks
❯ Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.
The agent will set up a cron job that runs automatically via the gateway.
Browse and install skills
hermes skills search kubernetes
hermes skills search react --source skills-sh
hermes skills search https://mintlify.com/docs --source well-known
hermes skills install openai/skills/k8s
hermes skills install official/security/1password
hermes skills install skills-sh/vercel-labs/json-render/json-render-react --force
Tips:
- Use
--source skills-shto search the publicskills.shdirectory. - Use
--source well-knownwith a docs/site URL to discover skills from/.well-known/skills/index.json. - Use
--forceonly after reviewing a third-party skill. It can override non-dangerous policy blocks, but not adangerousscan verdict.
Or use the /skills slash command inside chat.
Use Hermes inside an editor via ACP
Hermes can also run as an ACP server for ACP-compatible editors like VS Code, Zed, and JetBrains:
pip install -e '.[acp]'
hermes acp
See ACP Editor Integration for setup details.
Try MCP servers
Connect to external tools via the Model Context Protocol:
# Add to ~/.hermes/config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
Quick Reference
| Command | Description |
|---|---|
hermes |
Start chatting |
hermes model |
Choose your LLM provider and model |
hermes tools |
Configure which tools are enabled per platform |
hermes setup |
Full setup wizard (configures everything at once) |
hermes doctor |
Diagnose issues |
hermes update |
Update to latest version |
hermes gateway |
Start the messaging gateway |
hermes --continue |
Resume last session |
Next Steps
- CLI Guide — Master the terminal interface
- Configuration — Customize your setup
- Messaging Gateway — Connect Telegram, Discord, Slack, WhatsApp, Signal, Email, or Home Assistant
- Tools & Toolsets — Explore available capabilities