One-click Railway template for Hermes Agent. A web admin dashboard for provider/channel setup, gateway supervision, user pairing, and backup/restore, with the native Hermes UI proxied behind one login.
# Add to your Claude Code skills
git clone https://github.com/praveen-ks-2001/hermes-agent-templateGuides for using ai agents skills like hermes-agent-template.
Last scanned: 8/16/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-16T04:34:19.829Z",
"npmAuditRan": true,
"pipAuditRan": false,
"promptInjectionRan": true
}hermes-agent-template is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by praveen-ks-2001. One-click Railway template for Hermes Agent. A web admin dashboard for provider/channel setup, gateway supervision, user pairing, and backup/restore, with the native Hermes UI proxied behind one login. It has 285 GitHub stars.
Yes. hermes-agent-template passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/praveen-ks-2001/hermes-agent-template" and add it to your Claude Code skills directory (see the Installation section above).
hermes-agent-template is primarily written in Python. It is open-source under praveen-ks-2001 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh hermes-agent-template against similar tools.
No comments yet. Be the first to share your thoughts!
Deploy Hermes Agent on Railway with a web-based admin dashboard for configuration, gateway management, and user pairing.
Hermes Agent is an autonomous AI agent by Nous Research that lives on your server, connects to your messaging channels (Telegram, Discord, Slack, etc.), and gets more capable the longer it runs.
/setup to configure providers, channels, tools, and manage the gateway/, behind the same loginThe easiest way to get started:
google/gemma-3-1b-it:free, meta-llama/llama-3.1-8b-instruct:free)Hermes Agent interacts entirely through messaging channels — there is no chat UI like ChatGPT. Telegram is the quickest to set up:
/newbot, follow the prompts, and copy the Bot TokenADMIN_PASSWORD environment variable (or a random one will be generated and printed to deploy logs)/data (persists config across redeploys)admin and your passwordMessage your Telegram bot. If you're a new user, a pairing request will appear in the admin dashboard under Users — click Approve, and you're in.
| Variable | Default | Description |
|---|---|---|
PORT |
8080 |
Web server port (set automatically by Railway) |
ADMIN_USERNAME |
admin |
Login username |
ADMIN_PASSWORD |
(auto-generated) | Login password — if unset, a random password is printed to the deploy logs. Changing it redeploys the service, which signs everyone out. |
HERMES_REF |
(pinned in Dockerfile) | Hermes Agent version to install (any upstream git tag/branch). Set this to override the Dockerfile default without editing code — see Updating Hermes. |
All other configuration (LLM provider, model, channels, tools) is managed through the admin dashboard.
Selectable from the setup wizard's dropdown:
OpenRouter, Anthropic (Claude), Google AI Studio, xAI (API key or SuperGrok OAuth), DeepSeek, Qwen Cloud (DashScope), GLM / Z.AI, Kimi, MiniMax (global and China), NVIDIA NIM, Fireworks AI, NovitaAI, Arcee AI, Step Plan, GMI Cloud, Hugging Face, GitHub Copilot, OpenCode Zen, OpenCode Go, Kilo Code, Ollama Cloud, Actual Computer, AWS Bedrock, Azure Foundry, and any OpenAI-compatible Custom Endpoint.
Every other provider Hermes supports can still be configured from the Hermes Dashboard → Keys tab — the wizard covers the common ones, not the limit.
Telegram, Discord, Slack, WhatsApp, Email, Mattermost, Matrix
Parallel (search), Firecrawl (scraping), Tavily (search), FAL (image gen), Browserbase, GitHub, OpenAI Voice (Whisper/TTS), Honcho (memory)
One container runs a single public process that fronts two managed Hermes subprocesses:
Railway Container
└── server.py — Starlette + Uvicorn on 0.0.0.0:$PORT (the only public surface)
├── /login, /logout — cookie login (7-day, httponly)
├── /health — health check (no auth)
├── /setup — this template's setup wizard
├── /setup/api/* — config, status, logs, gateway, pairing, backup, OAuth
├── / and /* — reverse-proxied to the native Hermes dashboard
│
├── hermes dashboard — native Hermes web UI, bound to 127.0.0.1:9119
└── hermes gateway — the agent itself (Telegram, Discord, …), auto-restarted
The Hermes dashboard is never exposed directly — it binds loopback and is reachable only through the proxy, so one login covers both UIs. The gateway is supervised: if it crashes or is OOM-killed, server.py restarts it with backoff, giving up only if it fails repeatedly (Railway would not restart it on its own, because server.py is still alive and healthy).
Config lives on the /data volume at /data/.hermes/ (.env, config.yaml, auth.json, sessions, pairing state) and survives redeploys. Gateway output is captured into a ring buffer and streamed to the Logs panel.
docker build -t hermes-agent .
docker run --rm -it -p 8080:8080 -e PORT=8080 -e ADMIN_PASSWORD=changeme -v hermes-data:/data hermes-agent
Open http://localhost:8080 and log in with admin / changeme.
This template pins a specific Hermes Agent release in the Dockerfile (ARG HERMES_REF, currently v2026.8.13). To upgrade:
HERMES_REF service variable in Railway to any upstream release tag (e.g. v2026.8.13), then redeploy. It's passed in as a Docker build arg and overrides the Dockerfile default — no code change needed.ARG HERMES_REF in the Dockerfile and redeploy.The "Update" button inside the Hermes dashboard is a no-op on Railway (it detects a container install and refuses) — the image is immutable, so a runtime self-update wouldn't survive a redeploy. Bump HERMES_REF and redeploy instead. When jumping releases, re-check that the Dockerfile's install extras still match upstream's pyproject.toml.