Zero-Prereqs by Design: Why Only Git Is Required

+15 Mana ✨

Introduction

Most developer tools that need Python, Node, or external binaries assume you already have them. Hermes makes the opposite bet: assume you have nothing, and bring everything you need with you, except Git. This single design choice is why "install Hermes" works the same way on a brand-new laptop, a dev container, and a fresh VPS.

Key Concepts

  • Single prerequisite: Git. Hermes uses it both to fetch its own code during install and as a working tool inside sessions.
  • Bundled runtime: All language runtimes (Python, Node) and CLI tools (ripgrep, ffmpeg) ship with Hermes itself, isolated from your system versions.
  • Reproducibility: Two machines that run the same hermes version have functionally identical environments, regardless of what else is installed.

Real World Context

Consider the alternative: a tool that requires "Python 3.11+, Node 20+, ripgrep, ffmpeg" before you can start. On a typical machine that is three or four brew install / apt install rounds, possibly a Python version manager, possibly a node_modules cleanup later. Multiply by every contributor on a team and the install becomes the entire onboarding experience. Hermes' answer: the installer hands you a binary and walks away. Onboarding is one command.

Deep Dive

The reason Git is the single exception is pragmatic. The installer needs some way to fetch the Hermes source from a repository, and Git is the universal mechanism for that across platforms. Once Hermes is installed, Git is also one of its most-used tools, sessions read diffs, write commits, and check out branches.

text
What you bring:           Git
What Hermes brings:       Python 3.11 (via uv)
                          Node.js v22
                          ripgrep
                          ffmpeg
                          (Windows) portable Git fallback

The installer detects whether you already have Git and uses your installation if available. On Windows, where Git often is not preinstalled, Hermes deploys a portable Git itself, so even the one prerequisite is handled transparently.

A useful mental model: Hermes is a self-contained appliance. Git is the cable. Everything else is inside the box.

Common Pitfalls

  1. Assuming your system Python or Node will be used, Hermes deliberately ignores them. If you change your system's Python version, Hermes is unaffected.
  2. Trying to save space by removing the bundled runtime, Do not. The runtime is what makes Hermes reproducible. Removing it breaks the agent.

Best Practices

  1. Do not preinstall the bundled tools, Even if you already have ripgrep or ffmpeg, let Hermes use its bundled copies. This guarantees version compatibility.
  2. Treat the install as immutable, Do not patch the bundled runtime by hand.
  3. Recover narrow-to-wide, When the install misbehaves, work down a funnel: first hermes doctor (add --fix for auto-repairs) to diagnose, then a narrow command like hermes model if a single subsystem is at fault, then the full hermes setup wizard if more is broken, and finally hermes --continue to verify the install is healthy on a real session. Diagnose before changing anything.

Summary

  • Hermes installs cleanly because it ships its entire runtime.
  • The only manual prerequisite is Git, used both during install and as a tool inside sessions.
  • The bundled approach trades disk space for reproducibility, a deliberate choice.
  • Recovery follows a funnel: doctor → narrow fix → setup wizard → resume.

Code Examples

bash
# Linux / macOS install, one command, one prerequisite (Git)
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | sh

# Verify the install brought its own runtime
~/.local/bin/hermes --version
hermes doctor      # checks bundled Python, Node, ripgrep, ffmpeg
✓ Completed