Quickstart
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.
Prefer to watch?
Onchain AI Garage put together a Masterclass walkthrough of installation, setup, and basic commands — a good companion to this page if you'd rather follow along on video. For more, see the full Hermes Agent Tutorials & Use Cases playlist.
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.
1. Install Hermes Agent
With the Hermes Desktop installer on macOS or Windows (recommended)
To easily install the command-line and desktop applications, download the Hermes Desktop installer from our website and run it.
Without Hermes Desktop:
For a command-line only install without Hermes Desktop, run:
Linux / macOS / WSL2 / Android (Termux)
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Windows (native)
Run in powershell:
iex (irm https://hermes-agent.nousresearch.com/install.ps1)
If you're installing on a phone, see the dedicated Termux guide for the tested manual path, supported extras, and current Android-specific limitations.
After it finishes, reload your shell:
source ~/.bashrc # or source ~/.zshrc
For detailed installation options, prerequisites, and troubleshooting, see the Installation guide.
2. Choose a Provider
The single most important setup step. Use hermes model to walk through the choice interactively:
hermes model
One subscription covers 300+ models plus the Tool Gateway (web search, image generation, TTS, cloud browser). On a fresh install:
hermes setup --portal
That logs you in, sets Nous as your provider, and turns on the Tool Gateway in one command.
On a fresh install, hermes setup offers three modes:
- Quick Setup (Nous Portal) — free OAuth login, no API keys; sets up a model plus the Tool Gateway tools. The recommended fast path.
- Full Setup — walk through every provider, tool, and option yourself (bring your own keys).
- Blank Slate — everything starts off except the bare minimum needed to run an agent: provider & model, the File Operations toolset, and the Terminal toolset. No web, browser, code execution, vision, memory, delegation, cron, skills, plugins, or MCP servers — and compression, checkpoints, smart routing, and memory capture are all disabled. After the minimal baseline is applied, you choose one of two paths: start with everything disabled (finish now with the minimal agent), or walk through all configurations (opt in to tools, skills, plugins, MCP, and messaging). Pick this when you want a minimal, fully-controlled agent and intend to enable only exactly what you need.
Blank Slate writes an explicit platform_toolsets.cli list plus agent.disabled_toolsets, so nothing you didn't choose ever loads — not even after hermes update. Re-enable anything later with hermes tools, seed skills with hermes skills opt-in --sync, or tune settings with hermes setup agent.
Good defaults:
| Provider | What it is | How to set up |
|---|---|---|
| Nous Portal | Subscription-based, zero-config | OAuth login via hermes model |
| OpenAI Codex | ChatGPT or Codex subscription, uses Codex models | Device code auth via hermes model → ChatGPT or Codex Subscription |
| Anthropic | Claude models directly — Max plan + extra usage credits (OAuth), or API key for pay-per-token | hermes model → OAuth login (requires Max + extra credits), or an Anthropic API key |
| OpenRouter | Multi-provider routing across many models | Enter your API key |
| Fireworks AI | Direct OpenAI-compatible model API | Set FIREWORKS_API_KEY |
| Z.AI | GLM / Zhipu-hosted models | Set GLM_API_KEY / ZAI_API_KEY (also accepts Z_AI_API_KEY) |
| Kimi / Moonshot | Moonshot-hosted coding and chat models | Set KIMI_API_KEY (or the Kimi-Coding-specific KIMI_CODING_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 |
| Actual Computer | Your own hardware as a private inference cluster — hosted relay or local daemon | Set ACTUAL_API_KEY (relay) or ACTUAL_BASE_URL=http://127.0.0.1:8080 (local, no key) |
| MiniMax (OAuth) | MiniMax frontier model via browser OAuth — no API key needed (model name in hermes_cli/models.py may change between releases) | hermes model → MiniMax (OAuth) |
| 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 (Qwen Coding Plan also accepts ALIBABA_CODING_PLAN_API_KEY) |
| Hugging Face | 20+ open models via unified router (Qwen, DeepSeek, Kimi, etc.) | Set HF_TOKEN |
| AWS Bedrock | Claude, Nova, Llama, DeepSeek via native Converse API | IAM role or aws configure (guide) |
| Azure Foundry | Azure AI Foundry-hosted models | Set AZURE_FOUNDRY_API_KEY + AZURE_FOUNDRY_BASE_URL |
| Google AI Studio | Gemini models via direct API | Set GOOGLE_API_KEY / GEMINI_API_KEY |
| xAI | Grok models via direct API | Set XAI_API_KEY |
| xAI Grok OAuth | SuperGrok / Premium+ subscription, no API key needed | hermes model → xAI Grok OAuth |
| NovitaAI | Multi-model API gateway | Set NOVITA_API_KEY |
| StepFun | Step Plan models | Set STEPFUN_API_KEY |
| Xiaomi MiMo | Xiaomi-hosted models | Set XIAOMI_API_KEY |
| Tencent TokenHub | Tencent-hosted models | Set TOKENHUB_API_KEY |
| Ollama Cloud | Managed Ollama-hosted models | Set OLLAMA_API_KEY |
| LM Studio | Local desktop app exposing an OpenAI-compatible API | Set LM_API_KEY (and LM_BASE_URL if non-default) |
| Qwen OAuth | Qwen Portal browser OAuth — no API key needed | hermes model → Qwen OAuth |
| 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 |
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 page.
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).
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.
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:
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
hermes # classic CLI
hermes --tui # modern TUI (recommended)
You'll see a welcome banner with your model, available tools, and skills. Use a prompt that's specific and easy to verify:
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.
Summarize this repo in 5 bullets and tell me what the main entrypoint is.
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:
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.
5. Try Key Features
Use the terminal
❯ What's my disk usage? Show the top 5 largest directories.
The agent runs terminal commands on your behalf and shows results.
Slash commands
Type / to see an autocomplete dropdown of all commands:
| Command | What it does |
|---|