DEV Community

MLisanti_Dev
MLisanti_Dev

Posted on

title: From Zero to Hermes Agent in 3 Days — An Honest Beginner's Journey

Hermes Agent Challenge Submission: Write About Hermes Agent

This is a submission for the Hermes Agent Challenge: Write About Hermes Agent


The Honest Version Nobody Tells You

Most tutorials start with a clean Linux machine, a working API key, and someone who already knows what they're doing.

This is not that tutorial.

This is the story of building a real project with Hermes Agent starting from a Windows PC with virtualisation disabled in the BIOS, zero Linux environment, and a deadline three days away.

I built repo-audit-agent — a tool that uses Hermes Agent to perform first-pass technical reviews of GitHub repositories. Here's what I actually learned along the way.


Day 1: The Environment Problem

Before I could even think about Hermes Agent, I needed a Linux environment.

My Windows machine had WSL2 partially configured but virtualisation was disabled at the BIOS level — a common corporate lockdown. So WSL2 was out.

I tried:

  • Google Colab — works, but resets every session. You reinstall everything every time you open it.
  • Replit — changed their UI completely, now pushes everyone toward their own AI agent.
  • CloudShell on AWS — only 1GB of disk space. Hermes Agent needs more.

What finally worked: AWS EC2 t2.micro free tier.

A real Ubuntu server in the cloud, persistent across sessions, 6.6GB of disk, always available. Once I understood this was the right environment, everything else followed.

Lesson learned: Don't fight your local environment. Cloud VMs exist precisely for this.


Day 2: Installing Hermes Agent

Once I had an EC2 instance running Ubuntu Server, installation was one command:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

The installer is genuinely impressive. It:

  • Detects your OS and installs the right Python version via uv
  • Clones the repository
  • Installs all dependencies
  • Sets up 90 bundled skills
  • Installs Playwright for browser automation
  • Links the hermes command to your PATH

The full output is about 300 lines. When you see ✓ Installation Complete! you know it worked.

Configuring the LLM Provider

This is where I spent most of Day 2.

Hermes Agent supports many providers: Anthropic, OpenRouter, Google AI Studio, Groq, DeepSeek, and many more. The setup wizard is interactive and well-designed.

I tried several providers:

  • OpenRouter — ran out of credits immediately (I had an old key with ~1354 tokens left)
  • Regolo.ai — Italian provider, interesting, but gave 403 errors I couldn't resolve
  • Gemini free tier — worked, but has a hard limit of 5 requests/minute

What I learned about Gemini free tier: It works, but you need to wait between calls. For interactive development this is manageable. For batch processing, you'd want a paid tier or a different provider.

The setup wizard command is simply:

hermes setup
Enter fullscreen mode Exit fullscreen mode

It walks you through provider selection, API key configuration, and model selection. For Gemini, I selected gemini-2.5-flash — fast, capable, and free.

First Successful Call

After configuration, this command produced a real response:

hermes chat -q "Say hello in one sentence." -Q
Enter fullscreen mode Exit fullscreen mode

Output:

Hello! I am Hermes, a CLI AI Agent.
Enter fullscreen mode Exit fullscreen mode

That single line, after two days of environment struggles, felt like a genuine milestone.


Day 3: Building the Actual Tool

With Hermes Agent working, I built repo-audit-agent — a Python script that wraps Hermes Agent and produces structured technical audit reports.

The core insight is simple: Hermes Agent is not just a chatbot. It uses tools.

When you give Hermes Agent a task that requires browsing the web, it actually opens a browser, navigates to the URL, and reads the content. This is what makes it an agent rather than a language model wrapper.

Here's how I invoke Hermes Agent from Python:

def run_hermes_audit(repo_url: str, max_turns: int = 15) -> str:
    prompt = build_audit_prompt(repo_url, owner, repo_name)

    result = subprocess.run(
        [
            "hermes", "chat",
            "--query", prompt,
            "--quiet",
            "--max-turns", str(max_turns),
        ],
        capture_output=True,
        text=True,
        timeout=300,
    )

    return result.stdout
Enter fullscreen mode Exit fullscreen mode

The --max-turns parameter is important: it controls how many tool-calling iterations Hermes Agent can perform. For a repository audit, 15 turns gives it enough room to browse the repo, read the README, analyze the file structure, and generate the report.

What Hermes Agent Actually Does During an Audit

When I run python3 audit.py https://github.com/NousResearch/hermes-agent, Hermes Agent:

  1. Plans — breaks the audit task into sub-steps autonomously
  2. Browses — navigates to the GitHub repository using its browser tool
  3. Reads — fetches the README, file tree, and visible codebase information
  4. Reasons — synthesizes findings into quality observations and risk assessments
  5. Generates — produces a structured Markdown report following my template

This is genuine agentic behavior. I'm not sending the repository content to a language model — Hermes Agent fetches it itself.

The Output

Here's a real excerpt from a report generated on the Hermes Agent repository:

## Code Quality Score: 7/10

Strong documentation coverage (23.7% comment ratio) and a well-developed 
feature set. Areas for improvement include unknown/duplicate file categories 
and cross-language integration complexity.

## Risk Register (Top 5)

| # | Risk | Severity |
|---|------|----------|
| 1 | Dependency sprawl across 5+ languages | Medium |
| 2 | Documentation drift risk | Medium |
| 3 | Performance bottlenecks in Python core | Medium |
| 4 | Cross-language integration complexity | Medium |
| 5 | Security vulnerabilities in external tools | High |
Enter fullscreen mode Exit fullscreen mode

This is a first-pass review, not a replacement for manual code review. But as a starting point for human analysis, it is genuinely useful.


What I Think About Hermes Agent

After three days of building with it, here are my honest observations:

What Works Well

The installation is excellent. One command, handles everything, works on stock Ubuntu. This is the standard all CLI tools should meet.

The provider ecosystem is broad. If one provider has rate limits or cost issues, you switch to another without changing your code. The hermes setup command handles it cleanly.

Tool use is real. Hermes Agent actually browses, actually reads files, actually executes code. This is not simulated. When you ask it to analyze a repository, it goes and looks at it.

The --quiet flag is a gift. For programmatic use, -Q suppresses all banners and spinners and gives you clean output to parse. This made integration into Python trivial.

90 bundled skills. From GitHub workflows to Jupyter kernels to architecture diagrams — Hermes Agent ships with a large library of task-specific prompts and behaviors. I've only scratched the surface.

What to Watch Out For

Rate limits on free tiers are real. Gemini free tier allows 5 requests/minute. If you're building something that calls Hermes Agent repeatedly, budget for this or use a paid provider.

The browser tool needs resources. Hermes Agent installs Playwright and Chrome for its browser capability. This is about 300MB on disk. Not a problem on EC2, but worth knowing if disk space is tight.

The terminal inside Colab/browser environments has character encoding issues. I encountered escape sequences (^[]11;rgb:0000/0000/0000) corrupting commands when copy-pasting into browser-based terminals. Run Hermes Agent on a real SSH session or local terminal when possible.


The Bigger Picture

Hermes Agent is interesting not because of what it does today, but because of what it represents.

A lot of AI tooling today seems to fall into one of two categories: proprietary cloud services where you send your data and trust a vendor, or lightweight local wrappers that are really just API clients with a nicer interface.

Hermes Agent is neither. It is an open-source agent runtime that you deploy on your own infrastructure, configure with your choice of LLM provider, and extend with skills you write yourself. The agent logic — planning, tool use, multi-step reasoning — runs on your machine.

Of course, the configured LLM provider still receives the prompts and relevant context, so provider choice and data handling policies still matter.

For developers building on sensitive data (mine includes Italian public-sector procurement documents), this distinction matters.


Getting Started

If you want to try Hermes Agent yourself:

# Install
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

# Configure (interactive wizard)
hermes setup

# First test
hermes chat -q "What files are in my current directory?" -Q
Enter fullscreen mode Exit fullscreen mode

For a cloud environment without local Linux, AWS EC2 t2.micro free tier is the fastest path to a working setup.

The Hermes Agent documentation is thorough and the GitHub repository is active.


Try the Project

If you want to see Hermes Agent doing real work on a real codebase, try repo-audit-agent:

git clone https://github.com/MaurizioLisanti/repo-audit-agent
cd repo-audit-agent
python3 audit.py https://github.com/NousResearch/hermes-agent
Enter fullscreen mode Exit fullscreen mode

It uses Hermes Agent to perform first-pass technical reviews of any public GitHub repository and saves the report as a Markdown file.


Built during the Hermes Agent Challenge 2026. The environment struggles were real. The deadline was real. The tool works.

Top comments (0)