Hermes Agents 101: Always-On AI on Your Machine
Hermes lets you run a persistent AI agent on your own machine that wakes up on triggers, executes tasks with local tools, and keeps running without a cloud dependency.
Key Takeaways
- Comprehensive strategies proven to work at top companies
- Actionable tips you can implement immediately
- Expert insights from industry professionals
Most AI agent workflows are request-response: you send a message, the agent replies, the interaction ends. Hermes flips the model. A Hermes agent runs as a persistent service on your machine, listening for events, waking up on triggers, and executing tasks without anyone asking it to. It is the difference between an assistant you summon and an assistant who is always on the job.
This post covers what Hermes is, how to install and configure it, and how to define and run your first always-on agent.
What Makes Hermes Different
Hermes is a local agent runtime built around three ideas.
Local-first. The agent runs on your machine and can access your local filesystem, databases, and applications. Your data does not leave your machine unless the agent explicitly sends it somewhere. This makes Hermes appropriate for sensitive data that cannot touch cloud infrastructure.
Event-driven. Agents wake up on triggers: a file appearing in a folder, a cron schedule, a webhook arriving on a local port, or a message on a queue. Between triggers they are idle. This is more efficient and reliable than a polling loop.
Tool-native. Each agent is configured with a set of tools it can use: shell commands, Python scripts, HTTP calls, file operations, and database queries. Tools are defined in the agent config and the model decides when to invoke them.
Installing Hermes
Hermes is installed as a Python package and managed with a CLI. You will also need a local model runtime such as Ollama or a configured API key for a cloud model.
# Install Hermes
pip install hermes-agents
# Initialize a new Hermes workspace
hermes init ~/my-agents
# Verify the installation
hermes --version
# If using Ollama as the local model backend
ollama pull nous-hermes2
hermes config set model.backend ollama
hermes config set model.name nous-hermes2
Defining Your First Agent
Agents are defined in YAML files inside your workspace. Each file specifies the agent's name, its trigger, its system prompt, and the tools it has access to. Here is a file monitor agent that summarizes new documents as they appear in a folder:
# ~/my-agents/agents/doc-summarizer.yaml
name: doc-summarizer
description: Summarize new documents as they appear in the inbox folder
trigger:
type: file_watcher
path: ~/inbox
pattern: '*.txt,*.md,*.pdf'
event: created
system_prompt: |
You are a document summarizer. When given the content of a new file,
produce a concise three-sentence summary. Include the main topic,
the key points, and any action items for the reader.
tools:
- name: read_file
type: builtin
description: Read the content of a local file by path
- name: write_file
type: builtin
description: Write text content to a local file at the given path
- name: send_notification
type: builtin
description: Send a desktop notification with a title and message
output:
format: markdown
destination: ~/summaries/{filename}.summary.md
Prompt
"You are a document summarizer running on a user's local machine. A new file has arrived in their inbox. Read it carefully and write a three-sentence summary: one sentence on the main topic, one sentence on the key takeaways, and one sentence on any required actions. Keep the language clear and direct."
Running It as a Persistent Service
Once your agent YAML is defined, start the Hermes daemon. It loads all agent definitions in your workspace and begins watching for their triggers.
# Start the Hermes daemon in the foreground (for testing)
hermes start --workspace ~/my-agents
# Check which agents are loaded and their trigger status
hermes status
# Run as a background service (macOS launchd or Linux systemd)
hermes service install
hermes service start
# View recent agent activity
hermes logs --agent doc-summarizer --tail 50
Drop a file into your inbox folder and the doc-summarizer agent wakes up, reads the file, calls the model, writes the summary to the output folder, and sends you a desktop notification. No browser, no cloud, no terminal interaction required.
Want to build this live with Aki?
Join a Lightning Lesson and go deeper on this topic. Browse upcoming sessions →
Aki Wijesundara
Expert team of AI professionals and career advisors with experience at top tech companies. We've helped 500+ students land internships at Google, Meta, OpenAI, and other leading AI companies.
Ready to Launch Your AI Career?
Join our comprehensive program and get personalized guidance from industry experts who've been where you want to go.
Table of Contents
Share Article
Get Weekly AI Career Tips
Join 5,000+ professionals getting actionable career advice in their inbox.
No spam. Unsubscribe anytime.