Your First Conversation with Hermes Agent

Starting Your First Session

After installing Hermes Agent, you're ready to have your first conversation. When you launch Hermes, it opens an interactive session where you can type messages just like chatting with a colleague β€” except this colleague has access to your file system, the internet, and an ever-growing set of skills.

Start Hermes from your terminal:

hermes

You'll see the welcome prompt:

πŸš€ Hermes Agent is active and ready.

Session: default | Model: anthropic/claude-3.5-sonnet

Type your message or use /help for commands.

Try typing your first message:

> What can you help me with?

Hermes will respond with an overview of its capabilities β€” from code generation to file management, web search to task automation. The key thing to understand is that Hermes doesn't just answer questions; it can do things on your behalf.

Understanding the Response Format

Hermes communicates in a structured way:

  • Thinking blocks β€” Internal reasoning (shown in gray, collapsible)
  • Text responses β€” Natural language replies
  • Tool calls β€” Actions taken on your behalf (file reads, web searches, etc.)
  • Code blocks β€” Executable code with one-click copy

> Create a Python script that fetches the current Bitcoin price

πŸ€” Thinking...

I'll create a Python script using the CoinGecko API...

πŸ“„ Created: bitcoin_price.py

───────────────────────────────

import requests

def get_bitcoin_price():

url = "https://api.coingecko.com/api/v3/simple/price"

params = {"ids": "bitcoin", "vs_currencies": "usd"}

response = requests.get(url, params=params)

data = response.json()

return data["bitcoin"]["usd"]

if __name__ == "__main__":

price = get_bitcoin_price()

print(f"Current Bitcoin price: ${price:,.2f}")

───────────────────────────────

βœ… File saved. Run it with: python bitcoin_price.py

Managing Sessions

Sessions are the backbone of Hermes' memory. Each session maintains its own conversation history and context, so you can work on multiple projects without mixing things up.

Create a New Session

hermes --session my-project

Or switch sessions within the app:

> /session new web-scraper

βœ… Created and switched to session: web-scraper

List All Sessions

> /sessions

Active sessions:

* web-scraper (current)

default (3 messages)

my-project (12 messages)

Switch Between Sessions

> /session switch default

βœ… Switched to session: default

Why Sessions Matter

Each session has its own context window β€” the amount of conversation history the AI model can "see." When your session gets very long, older messages fall out of the context window. By using focused sessions, you keep the context relevant and the responses accurate.

Pro tip: Create one session per task or project. Name them descriptively: blog-rewrite, api-debug, data-analysis.

Essential Conversation Patterns

Asking Questions

Simple questions get direct answers:

> What is the MCP protocol?

MCP (Model Context Protocol) is an open standard that allows AI

models to connect with external tools and data sources. Think of

it as a universal adapter that lets Hermes plug into GitHub,

databases, APIs, and more...

Giving Instructions

Be specific about what you want Hermes to do:

> Read the file src/utils.js and add error handling to the fetchData function

Hermes will:

  • Read the file
  • Analyze the fetchData function
  • Add try-catch blocks and error handling
  • Show you the diff
  • Ask for confirmation before saving
  • Multi-Step Tasks

    Hermes excels at complex, multi-step instructions:

    > I need to set up a new Express.js API with these endpoints:
    

    - GET /users - list all users

    - POST /users - create a user

    - GET /users/:id - get a single user

    Use TypeScript, add input validation, and include a README

    Hermes will scaffold the entire project, creating multiple files, installing dependencies, and writing documentation β€” all in one conversation turn.

    Iterating on Results

    The real power comes from iteration. After Hermes produces something, you can refine it:

    > Add rate limiting to the API
    

    Also add pagination to the GET /users endpoint

    Actually, change the database from in-memory to SQLite

    Each follow-up builds on the previous context, so Hermes understands exactly which project and files you're referring to.

    Context and Memory

    How Context Works

    Hermes maintains context within a session. When you mention "the file" or "that function," Hermes knows what you're referring to because it remembers the conversation history.

    > Read package.json
    

    (Hermes reads and displays the file)

    Add a "lint" script to it

    (Hermes knows "it" = package.json)

    Now run it

    (Hermes knows "it" = the lint script)

    Long-Term Memory

    Beyond session context, Hermes has a memory system that persists across sessions. When you mention preferences or important facts, Hermes can store them:

    > /memory save I prefer TypeScript over JavaScript for all new projects
    

    βœ… Saved to long-term memory

    /memory save My deployment target is always Cloudflare Workers

    βœ… Saved to long-term memory

    Now, even in new sessions, Hermes will default to TypeScript and consider Cloudflare Workers for deployment.

    Clearing Context

    If the conversation gets confused or you want a fresh start:

    > /clear
    

    βœ… Conversation history cleared. Starting fresh.

    Useful Commands Reference

    Here's a quick reference for the most common commands:

    | Command | Description |

    |---------|-------------|

    | /help | Show all available commands |

    | /session new | Create a new session |

    | /session switch | Switch to a session |

    | /sessions | List all sessions |

    | /clear | Clear conversation history |

    | /memory save | Save to long-term memory |

    | /memory list | View saved memories |

    | /model | Switch AI model |

    | /exit | Exit Hermes |

    Common Beginners' Mistakes

    Mistake 1: Being Too Vague

    ❌ "Fix my code"
    

    βœ… "Fix the TypeError on line 42 of src/parser.ts β€” the split() method is called on undefined"

    Mistake 2: Not Providing Context

    ❌ "Deploy this"
    

    βœ… "Deploy this Node.js app to my DigitalOcean droplet at 192.168.1.100 using PM2"

    Mistake 3: Ignoring Confirmations

    Hermes asks for confirmation before destructive actions (deleting files, overwriting code). Always review the proposed changes before confirming.

    Next Steps

    Now that you know the basics of talking to Hermes, explore these guides:


    Last updated: April 15, 2026 Β· Hermes Agent v0.8