Skip to main content

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:

GoalDo this firstThen do this
I just want Hermes working on my machinehermes setupRun a real chat and verify it responds
I already know my providerhermes modelSave the config, then start chatting
I want a bot or always-on setuphermes gateway setup after CLI worksConnect Telegram, Discord, Slack, or another platform
I want a local or self-hosted modelhermes model → custom endpointVerify the endpoint, model name, and context length
I want multi-provider fallbackhermes model firstAdd 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

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) 
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.

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
Easiest path: Nous Portal

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.

Good defaults:

ProviderWhat it isHow to set up
Nous PortalSubscription-based, zero-configOAuth login via hermes model
OpenAI CodexChatGPT OAuth, uses Codex modelsDevice code auth via hermes model
AnthropicClaude models directly — Max plan + extra usage credits (OAuth), or API key for pay-per-tokenhermes model → OAuth login (requires Max + extra credits), or an Anthropic API key
OpenRouterMulti-provider routing across many modelsEnter your API key
Z.AIGLM / Zhipu-hosted modelsSet GLM_API_KEY / ZAI_API_KEY (also accepts Z_AI_API_KEY)
Kimi / MoonshotMoonshot-hosted coding and chat modelsSet KIMI_API_KEY (or the Kimi-Coding-specific KIMI_CODING_API_KEY)
Kimi / Moonshot ChinaChina-region Moonshot endpointSet KIMI_CN_API_KEY
Arcee AITrinity modelsSet ARCEEAI_API_KEY
GMI CloudMulti-model direct APISet GMI_API_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)
MiniMaxInternational MiniMax endpointSet MINIMAX_API_KEY
MiniMax ChinaChina-region MiniMax endpointSet MINIMAX_CN_API_KEY
Alibaba CloudQwen models via DashScopeSet DASHSCOPE_API_KEY (Qwen Coding Plan also accepts ALIBABA_CODING_PLAN_API_KEY)
Hugging Face20+ open models via unified router (Qwen, DeepSeek, Kimi, etc.)Set HF_TOKEN
AWS BedrockClaude, Nova, Llama, DeepSeek via native Converse APIIAM role or aws configure (guide)
Azure FoundryAzure AI Foundry-hosted modelsSet AZURE_FOUNDRY_API_KEY + AZURE_FOUNDRY_BASE_URL
Google AI StudioGemini models via direct APISet GOOGLE_API_KEY / GEMINI_API_KEY
Google Gemini (OAuth)Gemini via the google-gemini-cli OAuth flow — no key neededhermes model → Google Gemini (OAuth)
xAIGrok models via direct APISet XAI_API_KEY
xAI Grok OAuthSuperGrok / Premium+ subscription, no API key neededhermes model → xAI Grok OAuth
NovitaAIMulti-model API gatewaySet NOVITA_API_KEY
StepFunStep Plan modelsSet STEPFUN_API_KEY
Xiaomi MiMoXiaomi-hosted modelsSet XIAOMI_API_KEY
Tencent TokenHubTencent-hosted modelsSet TOKENHUB_API_KEY
Ollama CloudManaged Ollama-hosted modelsSet OLLAMA_API_KEY
LM StudioLocal desktop app exposing an OpenAI-compatible APISet LM_API_KEY (and LM_BASE_URL if non-default)
Qwen OAuthQwen Portal browser OAuth — no API key neededhermes model → Qwen OAuth
Kilo CodeKiloCode-hosted modelsSet KILOCODE_API_KEY
OpenCode ZenPay-as-you-go access to curated modelsSet OPENCODE_ZEN_API_KEY
OpenCode Go$10/month subscription for open modelsSet OPENCODE_GO_API_KEY
DeepSeekDirect DeepSeek API accessSet DEEPSEEK_API_KEY
NVIDIA NIMNemotron models via build.nvidia.com or local NIMSet NVIDIA_API_KEY (optional: NVIDIA_BASE_URL)
GitHub CopilotGitHub Copilot subscription (GPT-5.x, Claude, Gemini, etc.)OAuth via hermes model, or COPILOT_GITHUB_TOKEN / GH_TOKEN
GitHub Copilot ACPCopilot ACP agent backend (spawns local copilot CLI)hermes model (requires copilot CLI + copilot login)
Custom EndpointVLLM, SGLang, Ollama, or any OpenAI-compatible APISet 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.

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 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:

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.

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:

CommandWhat it does
/helpShow all available commands
/toolsList available tools
/modelSwitch models interactively
/personality pirateTry a fun personality
/saveSave the conversation

Multi-line input

Press Alt+Enter, Ctrl+J, or Shift+Enter to add a new line. Shift+Enter requires a terminal that sends it as a distinct sequence (Kitty / foot / WezTerm / Ghostty by default; iTerm2 / Alacritty / VS Code terminal once the Kitty keyboard protocol is enabled). Alt+Enter and Ctrl+J work in every terminal.

Interrupt the agent

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

Only after the base chat works. Pick what you need:

Bot or shared assistant

hermes gateway setup    # Interactive platform configuration

Connect Telegram, Discord, Slack, WhatsApp, Signal, Email, or Home Assistant, or Microsoft Teams.

Automation and tools

  • 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

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

Voice mode

# From the Hermes install directory (the curl installer placed it at
# ~/.hermes/hermes-agent on Linux/macOS or %LOCALAPPDATA%\hermes\hermes-agent on Windows):
cd ~/.hermes/hermes-agent
uv pip install -e ".[voice]"
# Includes faster-whisper for free local speech-to-text

Then in the CLI: /voice on. Press Ctrl+B to record. See Voice Mode.

Skills

Skills are on-demand instruction documents that teach Hermes how to do a specific task — deploy to Kubernetes, open a GitHub PR, fine-tune a model, search for GIFs. Each is a SKILL.md file with a name, a description, and a step-by-step procedure. The agent reads the short descriptions for free and only loads a skill's full content when a task actually calls for it, so adding skills doesn't bloat every request.

Hermes ships with a catalog of bundled skills already installed in ~/.hermes/skills/. You can add more from the Skills Hub, or write your own.

Browse and install from the hub:

hermes skills browse                      # list everything available
hermes skills search kubernetes # find skills by keyword
hermes skills install openai/skills/k8s # install one (runs a security scan first)

The install argument is a source/path slug from the hub — openai/skills/k8s means the k8s skill from OpenAI's catalog. hermes skills browse shows the exact slugs to use.

Use a skill — every installed skill becomes a slash command automatically:

/k8s deploy the staging manifest          # run the skill with a request
/k8s # load it and let Hermes ask what you need

This works in the CLI and in any connected messaging platform. You don't have to install everything up front — the agent picks the right bundled skill on its own during normal conversation when a task matches one.

See Skills System for writing your own, external skill directories, and the full hub source list.

MCP servers

# Add to ~/.hermes/config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

Editor integration (ACP)

ACP support ships with the standard [all] extras, so the curl installer already includes it. Just run:

hermes acp

(If you installed without [all], run cd ~/.hermes/hermes-agent && uv pip install -e ".[acp]" first.)

See ACP Editor Integration.


Common Failure Modes

These are the problems that waste the most time:

SymptomLikely causeFix
Hermes opens but gives empty or broken repliesProvider auth or model selection is wrongRun hermes model again and confirm provider, model, and auth
Custom endpoint "works" but returns garbageWrong base URL, model name, or not actually OpenAI-compatibleVerify the endpoint in a separate client first
Gateway starts but nobody can message itBot token, allowlist, or platform setup is incompleteRe-run hermes gateway setup and check hermes gateway status
hermes --continue can't find old sessionSwitched profiles or session never savedCheck hermes sessions list and confirm you're in the right profile
Model unavailable or odd fallback behaviorProvider routing or fallback settings are too aggressiveKeep routing off until the base provider is stable
hermes doctor flags config problemsConfig values are missing or staleFix 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.


Quick Reference

CommandDescription
hermesStart chatting
hermes modelChoose your LLM provider and model
hermes toolsConfigure which tools are enabled per platform
hermes setupFull setup wizard (configures everything at once)
hermes doctorDiagnose issues
hermes updateUpdate to latest version
hermes gatewayStart the messaging gateway
hermes --continueResume last session

Next Steps