⚡ New — Kimi K3 is live: bring your own Moonshot key →

← Blog · Coding · Setup

Hermes Agent, through BharatRouter

Hermes Agent through BharatRouter — CLI and GUI setup for glm-5.3-flash and gpt-oss-120b on one br- key.

Hermes is Nous Research's coding agent — CLI and GUI. It works with any OpenAI-compatible endpoint, so you can point it atBharatRouter and code with glm-5.3-flash, gpt-oss-120b, or any catalog model on one br- key — India-resident, metered, and budgeted. Here's the exact setup for both the CLI and the GUI.

🤖 Setting up with an AI agent? Point it at the machine-readable version — hermes-agent-bharatrouter.md — and it can configure Hermes for you. (Just paste the URL and your br- key.)

A drop-in for Codex or Claude Code

Hermes has the same shape you're used to — an agent in your terminal and a desktopGUI — so moving off Codex or Claude Code is a swap, not a re-learn. If your team lived in the Codex GUI, Hermes' GUI is the direct replacement; if you ran the Codex or Claude Code CLI, hermes is the terminal agent. Same workflow — now on open models (glm-5.3-flash, gpt-oss-120b) through BharatRouter: India-resident, one br- key, metered and budgeted.

You need

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes setup

Point Hermes at BharatRouter (CLI)

The interactive way — hermes model walks you through it:

hermes model
# In the picker, choose "your own endpoint" (an OpenAI-compatible provider), then:
#   Base URL:  https://api.bharatrouter.com/v1
#   API key:   br-...        (your BharatRouter key)
#   Model:     glm-5.3-flash  (or gpt-oss-120b, or any catalog id)

Or set it non-interactively:

# Non-interactive equivalent — key to ~/.hermes/.env, the rest to ~/.hermes/config.yaml
hermes config set model.provider custom:api.bharatrouter.com
hermes config set model.base_url https://api.bharatrouter.com/v1
hermes config set model.model glm-5.3-flash
hermes config set BHARATROUTER_API_KEY br-...   # stored in ~/.hermes/.env
# confirm what landed:
hermes config get

Hermes keeps everything under ~/.hermes/ — your key in .env, the rest in config.yaml. A provider entry looks roughly like this (lethermes model / hermes config get be the source of truth for the exact keys your version uses):

# ~/.hermes/.env  — the key lives in env, never baked into config.yaml
BHARATROUTER_API_KEY=br-...

# ~/.hermes/config.yaml  — a custom OpenAI-compatible provider
model:
  provider: custom:api.bharatrouter.com
  base_url: https://api.bharatrouter.com/v1
  model: glm-5.3-flash                 # passed straight through as the OpenAI "model" field
  api_key: ${BHARATROUTER_API_KEY}     # env substitution — key stays out of the file
# the same base_url also works for Hermes' vision / approval / tts sub-configs

…or the GUI

Same three values, entered once. In the Hermes GUI, open Settings → provider/model, add a custom OpenAI-compatible provider with base URL https://api.bharatrouter.com/v1, paste your br- key, and select glm-5.3-flash (or gpt-oss-120b). The GUI and CLI share ~/.hermes/, so configure it in either and both are ready.

Run it

hermes                     # start the agent (CLI/TUI)
# or launch the Hermes GUI and pick the same provider/model from Settings

Both models do real tool-calling and streaming over BharatRouter, so Hermes' agent loop, file edits and tools work as normal. Switch models any time by changing the model value.

Good to know

Which model

Background on both, and measured latency: GLM-5.3-Flash for coding agents.

Verify the endpoint

Independent of Hermes, a raw call confirms your key + model are live:

curl https://api.bharatrouter.com/v1/chat/completions \
  -H "Authorization: Bearer br-..." -H "Content-Type: application/json" \
  -d '{"model":"glm-5.3-flash","messages":[{"role":"user","content":"Say hello in one line."}]}'

Metered on your key — set ₹/token budgets per team or person in the console. "Hermes" is a Nous Research project; BharatRouter is not affiliated with it. Config-file keys can differ across Hermes versions — the interactive hermes model flow is authoritative.