hermes-agent/website/docs/getting-started/quickstart.md
Teknium 54e0eb24c0
docs: correctness audit — fix wrong values, add missing coverage (#11972)
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 `&lt;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.
2026-04-18 01:45:48 -07:00

9.9 KiB
Raw Blame History

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-sh to search the public skills.sh directory.
  • Use --source well-known with a docs/site URL to discover skills from /.well-known/skills/index.json.
  • Use --force only after reviewing a third-party skill. It can override non-dangerous policy blocks, but not a dangerous scan 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