DEV Community

Cover image for DevBrief — AI Standup Writer Powered by Hermes Agent (Vercel + Render)
Onah Sunday.
Onah Sunday.

Posted on

DevBrief — AI Standup Writer Powered by Hermes Agent (Vercel + Render)

Hermes Agent Challenge Submission

This is a submission for the Hermes Agent Challenge

Live app: https://devbrief-tau.vercel.app

Repo: github.com/sundayonah/devbrief

Hermes health: devbrief-hermes.onrender.com/health

Setup guide: How I connected Hermes to Next.js


What I Built

DevBrief turns GitHub activity into human-readable standups, PR changelogs, or work logs. Any visitor can sign in with GitHub OAuth, pick a repo, set a time range and branch, filter PRs and authors, choose a tone (casual / formal / concise), and hit Generate.

The Next.js app does not call OpenRouter directly. It fetches commits, PRs, and issues from GitHub, then calls Hermes Agent’s OpenAI-compatible API (POST /v1/chat/completions) on a long-running gateway. Hermes runs the agent loop (skills, tools, server-side model config) and returns the final brief.

Architecture:

Users → DevBrief (Vercel)
            ↓  POST /api/summary → lib/hermes.ts
      Hermes gateway (Docker on Render)
            ↓  model: openrouter/owl-alpha
      OpenRouter (API key only on Hermes — not on Vercel)
Enter fullscreen mode Exit fullscreen mode

Demo

DevBrief deployed UI — sign in, repo picker, filters, and output modes

Try it:

  1. Open devbrief-tau.vercel.app
  2. Connect GitHub → select a repo → choose output mode and tone → Generate
  3. Confirm Hermes is up: https://devbrief-hermes.onrender.com/health

Code

Repository: github.com/sundayonah/devbrief

Piece Location
Hermes client lib/hermes.tsHERMES_ENDPOINT + POST /v1/chat/completions
Summary API app/api/summary/route.ts
Standup skill hermes-skills/standup-writer.md
Hermes Docker image docker/hermes/Dockerfile
Production model config docker/hermes/config.yaml (openrouter/owl-alpha, max_tokens: 2048)
Deploy guide docs/DEPLOYMENT.md

My Tech Stack

Layer Technology
Frontend Next.js 14 (App Router), TypeScript, Tailwind CSS
Auth & GitHub NextAuth.js, Octokit, GitHub OAuth
AI agent Hermes Agenthermes gateway run + API server
Model openrouter/owl-alpha via OpenRouter (on Hermes host only)
App hosting Vercel
Agent hosting Docker on Render

How I Used Hermes Agent

Hermes is not a chatbot wrapper here — the gateway is the brain for every generation.

Hermes capability How DevBrief uses it
API server API_SERVER_ENABLED=true; Next.js calls /v1/chat/completions server-side (no browser CORS)
Gateway hermes gateway run in Docker on Render — not inside Vercel serverless
Skills standup-writer.md copied to /root/.hermes/skills/ in the image
Server model config docker/hermes/config.yaml sets model.default: openrouter/owl-alpha (request model field is not what drives inference)
OpenRouter OPENROUTER_API_KEY on Render only — not in Vercel env
Auth API_SERVER_KEY on Render ↔ HERMES_API_KEY on Vercel
Cron / messaging hermes schedule documented as a next step in the UI; Slack/Telegram delivery disabled in current deploy

Request flow:

POST /api/summary
  → GitHub API (user OAuth token)
  → generateBrief() in lib/hermes.ts
  → Hermes POST /v1/chat/completions
  → standup / PR changelog / work log
  → UI (copy, edit, history)
Enter fullscreen mode Exit fullscreen mode

The long setup story (WSL PATH, duplicate .env keys, 127.0.0.1 vs localhost, OpenRouter 402, baking config.yaml for Render) is in the tutorial post.


What I learned

  • Start the gateway, hit /health, then /v1/chat/completions before wiring the app.
  • Hermes reads ~/.hermes/config.yaml for the real model — env vars and JSON model alone were not enough on Render until we shipped docker/hermes/config.yaml.
  • Split hosting: serverless Next.js + long-running Hermes elsewhere is the right pattern for this challenge.

Thanks for reading — try the live demo and leave a comment if you hit snags with Hermes on Render or Vercel.

Top comments (2)

Collapse
 
bashsnippets profile image
Anguishe

I've been wanting to use some coding agents lately. I've only used regular Claude AI and Cursor Pro agents so far. This is definitely some good info to get me started. Thank you!

Collapse
 
sundayonah profile image
Onah Sunday.

thanks.