2026-03-05 05:24:55 -08:00
---
2026-03-05 07:15:35 -08:00
sidebar_position: 1
2026-03-05 05:24:55 -08:00
title: "Quickstart"
2026-04-09 03:16:04 -07:00
description: "Your first conversation with Hermes Agent — from install to chatting in under 5 minutes"
2026-03-05 05:24:55 -08:00
---
# Quickstart
2026-04-09 03:16:04 -07:00
This guide gets you from zero to a working Hermes setup that survives real use. Install, choose a provider, verify a working chat, and know exactly what to do when something breaks.
## Who this is for
- Brand new and want the shortest path to a working setup
- Switching providers and don't want to lose time to config mistakes
- Setting up Hermes for a team, bot, or always-on workflow
- Tired of "it installed, but it still does nothing"
## The fastest path
Pick the row that matches your goal:
| Goal | Do this first | Then do this |
|---|---|---|
| I just want Hermes working on my machine | `hermes setup` | Run a real chat and verify it responds |
| I already know my provider | `hermes model` | Save the config, then start chatting |
| I want a bot or always-on setup | `hermes gateway setup` after CLI works | Connect Telegram, Discord, Slack, or another platform |
| I want a local or self-hosted model | `hermes model` → custom endpoint | Verify the endpoint, model name, and context length |
| I want multi-provider fallback | `hermes model` first | Add routing and fallback only after the base chat works |
**Rule of thumb:** if Hermes cannot complete a normal chat, do not add more features yet. Get one clean conversation working first, then layer on gateway, cron, skills, voice, or routing.
---
2026-03-05 05:24:55 -08:00
## 1. Install Hermes Agent
Run the one-line installer:
```bash
2026-04-08 17:48:25 +02:00
# Linux / macOS / WSL2 / Android (Termux)
2026-03-05 05:24:55 -08:00
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
```
2026-04-08 17:48:25 +02:00
:::tip Android / Termux
If you're installing on a phone, see the dedicated [Termux guide ](./termux.md ) for the tested manual path, supported extras, and current Android-specific limitations.
:::
2026-03-05 06:36:18 -08:00
:::tip Windows Users
Install [WSL2 ](https://learn.microsoft.com/en-us/windows/wsl/install ) first, then run the command above inside your WSL2 terminal.
:::
2026-03-05 05:24:55 -08:00
After it finishes, reload your shell:
```bash
source ~/.bashrc # or source ~/.zshrc
```
2026-04-09 03:16:04 -07:00
For detailed installation options, prerequisites, and troubleshooting, see the [Installation guide ](./installation.md ).
## 2. Choose a Provider
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
The single most important setup step. Use `hermes model` to walk through the choice interactively:
2026-03-05 05:24:55 -08:00
```bash
2026-04-09 03:16:04 -07:00
hermes model
```
Good defaults:
feat(providers): add GMI Cloud as a first-class API-key provider (#11955)
Add GMI Cloud (api.gmi-serving.com) as a full first-class API-key provider
with built-in auth, aliases, model catalog, CLI entry points, auxiliary client
routing, context length resolution, doctor checks, env var tracking, and docs.
- auth.py: ProviderConfig for 'gmi' (api_key, GMI_API_KEY / GMI_BASE_URL)
- providers.py: HermesOverlay with extra_env_vars for models.dev detection
- models.py: curated slash-form model catalog; live /v1/models fetch
- main.py: 'gmi' in _named_custom_provider_map and --provider choices
- model_metadata.py: _URL_TO_PROVIDER, _PROVIDER_PREFIXES, dedicated
context-length probe block (GMI's /models has authoritative data)
- auxiliary_client.py: alias entries; _compat_model fix for slash-form
models on cached aggregator-style clients; gmi aux default model
- doctor.py: GMI in provider connectivity checks
- config.py: GMI_API_KEY / GMI_BASE_URL in OPTIONAL_ENV_VARS
- conftest.py: explicit GMI_BASE_URL clearing (not caught by _API_KEY suffix)
- docs: providers.md, environment-variables.md, fallback-providers.md,
configuration.md, quickstart.md (expands provider table)
Co-authored-by: Isaac Huang <isaachuang@Isaacs-MacBook-Pro.local>
2026-04-17 11:19:56 -07:00
| 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` |
| **GMI Cloud ** | Multi-model direct API | Set `GMI_API_KEY` |
| **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` ) |
| **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 |
2026-04-09 03:16:04 -07:00
For most first-time users: choose a provider, accept the defaults unless you know why you're changing them. The full provider catalog with env vars and setup steps lives on the [Providers ](../integrations/providers.md ) page.
2026-03-05 05:24:55 -08:00
fix: prevent agent from stopping mid-task — compression floor, budget overhaul, activity tracking
Three root causes of the 'agent stops mid-task' gateway bug:
1. Compression threshold floor (64K tokens minimum)
- The 50% threshold on a 100K-context model fired at 50K tokens,
causing premature compression that made models lose track of
multi-step plans. Now threshold_tokens = max(50% * context, 64K).
- Models with <64K context are rejected at startup with a clear error.
2. Budget warning removal — grace call instead
- Removed the 70%/90% iteration budget warnings entirely. These
injected '[BUDGET WARNING: Provide your final response NOW]' into
tool results, causing models to abandon complex tasks prematurely.
- Now: no warnings during normal execution. When the budget is
actually exhausted (90/90), inject a user message asking the model
to summarise, allow one grace API call, and only then fall back
to _handle_max_iterations.
3. Activity touches during long terminal execution
- _wait_for_process polls every 0.2s but never reported activity.
The gateway's inactivity timeout (default 1800s) would fire during
long-running commands that appeared 'idle.'
- Now: thread-local activity callback fires every 10s during the
poll loop, keeping the gateway's activity tracker alive.
- Agent wires _touch_activity into the callback before each tool call.
Also: docs update noting 64K minimum context requirement.
Closes #7915 (root cause was agent-loop termination, not Weixin delivery limits).
2026-04-11 16:18:57 -07:00
:::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).
:::
2026-03-05 05:24:55 -08:00
:::tip
2026-04-09 03:16:04 -07:00
You can switch providers at any time with `hermes model` — no lock-in. For a full list of all supported providers and setup details, see [AI Providers ](../integrations/providers.md ).
2026-03-05 05:24:55 -08:00
:::
2026-04-09 03:16:04 -07:00
### How settings are stored
Hermes separates secrets from normal config:
- **Secrets and tokens** → `~/.hermes/.env`
- **Non-secret settings** → `~/.hermes/config.yaml`
The easiest way to set values correctly is through the CLI:
```bash
hermes config set model anthropic/claude-opus-4.6
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-...
```
The right value goes to the right file automatically.
## 3. Run Your First Chat
2026-03-05 05:24:55 -08:00
```bash
2026-04-16 19:29:18 -05:00
hermes # classic CLI
2026-04-16 19:38:21 -05:00
hermes --tui # modern TUI (recommended)
2026-03-05 05:24:55 -08:00
```
2026-04-09 03:16:04 -07:00
You'll see a welcome banner with your model, available tools, and skills. Use a prompt that's specific and easy to verify:
2026-03-05 05:24:55 -08:00
2026-04-16 19:29:18 -05:00
:::tip Pick your interface
2026-04-16 19:38:21 -05:00
Hermes ships with two terminal interfaces: the classic `prompt_toolkit` CLI and a newer [TUI ](../user-guide/tui.md ) 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` .
2026-04-16 19:29:18 -05:00
:::
2026-03-05 05:24:55 -08:00
```
2026-04-09 03:16:04 -07:00
Summarize this repo in 5 bullets and tell me what the main entrypoint is.
2026-03-05 05:24:55 -08:00
```
2026-04-09 03:16:04 -07:00
```
Check my current directory and tell me what looks like the main project file.
```
```
Help me set up a clean GitHub PR workflow for this codebase.
```
**What success looks like:**
- The banner shows your chosen model/provider
- Hermes replies without error
- It can use a tool if needed (terminal, file read, web search)
- The conversation continues normally for more than one turn
If that works, you're past the hardest part.
## 4. Verify Sessions Work
Before moving on, make sure resume works:
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
```bash
hermes --continue # Resume the most recent session
hermes -c # Short form
```
That should bring you back to the session you just had. If it doesn't, check whether you're in the same profile and whether the session actually saved. This matters later when you're juggling multiple setups or machines.
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
## 5. Try Key Features
### Use the terminal
2026-03-05 05:24:55 -08:00
```
❯ What's my disk usage? Show the top 5 largest directories.
```
2026-04-09 03:16:04 -07:00
The agent runs terminal commands on your behalf and shows results.
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
### Slash commands
2026-03-05 05:24:55 -08:00
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
2026-04-09 03:16:04 -07:00
If the agent is taking too long, type a new message and press Enter — it interrupts the current task and switches to your new instructions. `Ctrl+C` also works.
## 6. Add the Next Layer
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
Only after the base chat works. Pick what you need:
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
### Bot or shared assistant
2026-03-05 05:24:55 -08:00
```bash
2026-04-09 03:16:04 -07:00
hermes gateway setup # Interactive platform configuration
2026-03-05 05:24:55 -08:00
```
2026-04-09 03:16:04 -07:00
Connect [Telegram ](/docs/user-guide/messaging/telegram ), [Discord ](/docs/user-guide/messaging/discord ), [Slack ](/docs/user-guide/messaging/slack ), [WhatsApp ](/docs/user-guide/messaging/whatsapp ), [Signal ](/docs/user-guide/messaging/signal ), [Email ](/docs/user-guide/messaging/email ), or [Home Assistant ](/docs/user-guide/messaging/homeassistant ).
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
### Automation and tools
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
- `hermes tools` — tune tool access per platform
- `hermes skills` — browse and install reusable workflows
- Cron — only after your bot or CLI setup is stable
### Sandboxed terminal
2026-03-05 05:24:55 -08:00
For safety, run the agent in a Docker container or on a remote server:
```bash
hermes config set terminal.backend docker # Docker isolation
hermes config set terminal.backend ssh # Remote server
```
2026-04-09 03:16:04 -07:00
### Voice mode
2026-03-14 19:29:01 -07:00
```bash
2026-03-24 09:25:01 -07:00
pip install "hermes-agent[voice]"
docs: fix 30+ inaccuracies across documentation (#9023)
Cross-referenced all docs pages against the actual codebase and fixed:
Reference docs (cli-commands.md, slash-commands.md, profile-commands.md):
- Fix: hermes web -> hermes dashboard (correct subparser name)
- Fix: Wrong provider list (removed deepseek, ai-gateway, opencode-zen,
opencode-go, alibaba; added gemini)
- Fix: Missing tts in hermes setup section choices
- Add: Missing --image flag for hermes chat
- Add: Missing --component flag for hermes logs
- Add: Missing CLI commands: debug, backup, import
- Fix: /status incorrectly marked as messaging-only (available everywhere)
- Fix: /statusbar moved from Session to Configuration category
- Add: Missing slash commands: /fast, /snapshot, /image, /debug
- Add: Missing /restart from messaging commands table
- Fix: /compress description to match COMMAND_REGISTRY
- Add: --no-alias flag to profile create docs
Configuration docs (configuration.md, environment-variables.md):
- Fix: Vision timeout default 30s -> 120s
- Fix: TTS providers missing minimax and mistral
- Fix: STT providers missing mistral
- Fix: TTS openai base_url shown with wrong default
- Fix: Compression config showing stale summary_model/provider/base_url
keys (migrated out in config v17) -> target_ratio/protect_last_n
Getting-started docs:
- Fix: Redundant faster-whisper install (already in voice extra)
- Fix: Messaging extra description missing Slack
Developer guide:
- Fix: architecture.md tool count 48 -> 47, toolset count 40 -> 19
- Fix: run_agent.py line count 9,200 -> 10,700
- Fix: cli.py line count 8,500 -> 10,000
- Fix: main.py line count 5,500 -> 6,000
- Fix: gateway/run.py line count 7,500 -> 9,000
- Fix: Browser tools count 11 -> 10
- Fix: Platform adapter count 15 -> 18 (add wecom_callback, api_server)
- Fix: agent-loop.md wrong budget sharing (not shared, independent)
- Fix: agent-loop.md non-existent _get_budget_warning() reference
- Fix: context-compression-and-caching.md non-existent function name
- Fix: toolsets-reference.md safe toolset includes mixture_of_agents (it doesn't)
- Fix: toolsets-reference.md hermes-cli tool count 38 -> 36
Guides:
- Fix: automate-with-cron.md claims daily at 9am is valid (it's not)
- Fix: delegation-patterns.md Max 3 presented as hard cap (configurable)
- Fix: sessions.md group thread key format (shared by default, not per-user)
- Fix: cron-internals.md job ID format and JSON structure
2026-04-13 10:53:10 -07:00
# Includes faster-whisper for free local speech-to-text
2026-03-14 19:29:01 -07:00
```
2026-04-09 03:16:04 -07:00
Then in the CLI: `/voice on` . Press `Ctrl+B` to record. See [Voice Mode ](../user-guide/features/voice-mode.md ).
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
### Skills
2026-03-05 05:24:55 -08:00
```bash
hermes skills search kubernetes
hermes skills install openai/skills/k8s
```
2026-04-09 03:16:04 -07:00
Or use `/skills` inside a chat session.
2026-03-14 09:46:06 -07:00
2026-04-09 03:16:04 -07:00
### MCP servers
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
```yaml
# Add to ~/.hermes/config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server -github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
```
docs: add ACP and internal systems implementation guides
- add ACP user and developer docs covering setup, lifecycle, callbacks,
permissions, tool rendering, and runtime behavior
- add developer guides for agent loop, provider runtime resolution,
prompt assembly, context caching/compression, gateway internals,
session storage, tools runtime, trajectories, and cron internals
- refresh architecture, quickstart, installation, CLI reference, and
environments docs to link the new implementation pages and ACP support
2026-03-14 00:29:48 -07:00
2026-04-09 03:16:04 -07:00
### Editor integration (ACP)
docs: add ACP and internal systems implementation guides
- add ACP user and developer docs covering setup, lifecycle, callbacks,
permissions, tool rendering, and runtime behavior
- add developer guides for agent loop, provider runtime resolution,
prompt assembly, context caching/compression, gateway internals,
session storage, tools runtime, trajectories, and cron internals
- refresh architecture, quickstart, installation, CLI reference, and
environments docs to link the new implementation pages and ACP support
2026-03-14 00:29:48 -07:00
```bash
pip install -e '.[acp]'
hermes acp
```
2026-04-09 03:16:04 -07:00
See [ACP Editor Integration ](../user-guide/features/acp.md ).
docs: add ACP and internal systems implementation guides
- add ACP user and developer docs covering setup, lifecycle, callbacks,
permissions, tool rendering, and runtime behavior
- add developer guides for agent loop, provider runtime resolution,
prompt assembly, context caching/compression, gateway internals,
session storage, tools runtime, trajectories, and cron internals
- refresh architecture, quickstart, installation, CLI reference, and
environments docs to link the new implementation pages and ACP support
2026-03-14 00:29:48 -07:00
2026-04-09 03:16:04 -07:00
---
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
## Common Failure Modes
2026-03-05 05:24:55 -08:00
2026-04-09 03:16:04 -07:00
These are the problems that waste the most time:
| Symptom | Likely cause | Fix |
|---|---|---|
| Hermes opens but gives empty or broken replies | Provider auth or model selection is wrong | Run `hermes model` again and confirm provider, model, and auth |
| Custom endpoint "works" but returns garbage | Wrong base URL, model name, or not actually OpenAI-compatible | Verify the endpoint in a separate client first |
| Gateway starts but nobody can message it | Bot token, allowlist, or platform setup is incomplete | Re-run `hermes gateway setup` and check `hermes gateway status` |
| `hermes --continue` can't find old session | Switched profiles or session never saved | Check `hermes sessions list` and confirm you're in the right profile |
| Model unavailable or odd fallback behavior | Provider routing or fallback settings are too aggressive | Keep routing off until the base provider is stable |
| `hermes doctor` flags config problems | Config values are missing or stale | Fix the config, retest a plain chat before adding features |
## Recovery Toolkit
When something feels off, use this order:
1. `hermes doctor`
2. `hermes model`
3. `hermes setup`
4. `hermes sessions list`
5. `hermes --continue`
6. `hermes gateway status`
That sequence gets you from "broken vibes" back to a known state fast.
2026-03-05 05:24:55 -08:00
---
## Quick Reference
| Command | Description |
|---------|-------------|
| `hermes` | Start chatting |
2026-03-11 07:30:28 -07:00
| `hermes model` | Choose your LLM provider and model |
docs: comprehensive accuracy audit fixes (35+ corrections)
CRITICAL fixes:
- Installation: Remove false prerequisites (installer auto-installs everything except git)
- Tools: Remove non-existent 'web_crawl' tool from tools table
- Memory: Remove non-existent 'read' action (only add/replace/remove exist)
- Code execution: Fix 'search' to 'search_files' in sandbox tools list
- CLI commands: Fix --model/--provider/--toolsets/--verbose as chat subcommand flags
IMPORTANT fixes:
- Installation: Add missing installer features (Node.js, ripgrep, ffmpeg, skills seeding)
- Installation: Add 6 missing package extras to table (mcp, honcho, tts-premium, etc)
- Installation: Fix mkdir to include all directories the installer creates
- Quickstart: Add OpenAI Codex to provider table
- CLI: Fix all 'hermes --flag' to 'hermes chat --flag' across all docs
- Configuration: Remove non-existent --max-turns CLI flag
- Tools: Fix 'search' to 'search_files', add missing 'process' tool
- Skills: Remove skills_categories() (not a registered tool)
- Cron: Remove unsupported 'daily at 9am' schedule format
- TTS: Fix output directory to ~/.hermes/audio_cache/
- Delegation: Clarify depth limit wording
- Architecture: Fix default model, chat() signature, file names
- Contributing: Fix Python requirement from 3.11+ to 3.10+
- CLI reference: Add missing commands (login, tools, sessions subcommands)
- Env vars: Fix TERMINAL_DOCKER_IMAGE default, add HERMES_MODEL
2026-03-05 06:50:22 -08:00
| `hermes tools` | Configure which tools are enabled per platform |
2026-03-11 07:30:28 -07:00
| `hermes setup` | Full setup wizard (configures everything at once) |
2026-03-05 05:24:55 -08:00
| `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 ](../user-guide/cli.md )** — Master the terminal interface
- **[Configuration ](../user-guide/configuration.md )** — Customize your setup
docs: expand Docusaurus coverage across CLI, tools, skills, and skins (#1232)
- add code-derived reference pages for slash commands, tools, toolsets,
bundled skills, and official optional skills
- document the skin system and link visual theming separately from
conversational personality
- refresh quickstart, configuration, environment variable, and messaging
docs to match current provider, gateway, and browser behavior
- fix stale command, session, and Home Assistant configuration guidance
2026-03-13 21:34:41 -07:00
- **[Messaging Gateway ](../user-guide/messaging/index.md )** — Connect Telegram, Discord, Slack, WhatsApp, Signal, Email, or Home Assistant
2026-03-05 05:24:55 -08:00
- **[Tools & Toolsets ](../user-guide/features/tools.md )** — Explore available capabilities
2026-04-09 03:16:04 -07:00
- **[AI Providers ](../integrations/providers.md )** — Full provider list and setup details
- **[Skills System ](../user-guide/features/skills.md )** — Reusable workflows and knowledge
- **[Tips & Best Practices ](../guides/tips.md )** — Power user tips