hermes-autonomous-server

Run Hermes Agent autonomously on your Linux server using systemd and native cron scheduler. Production-ready, headless setup with Nous Portal integration.

β˜… 4 Updated 3/1/2026
View on GitHub β†’

πŸš€ Hermes Agent – Autonomous Linux Server Setup

A clean, reboot-safe, headless deployment guide for Hermes Agent.

Linux Systemd Headless Cron Nous Portal Required

Run Hermes Agent autonomously on your own dedicated Linux server using the native Hermes scheduler and systemd gateway service.

No shell loops.
No fragile TTY hacks.
No third-party hosting required.

Clean, production-ready architecture.


πŸ“Œ Overview

This guide shows how to:

Once configured, Hermes runs fully autonomous.


🧩 What This Is Not

This is a deployment guide for running Hermes autonomously on your own infrastructure.


πŸ”‘ Requirements

You need an active Nous Portal subscription:

πŸ‘‰ https://portal.nousresearch.com/billing

Hermes uses Nous Portal for model access.

Without an active subscription or API credits:

πŸ’‘ At the time of writing, the basic subscription may be activated using the promotional code HERMESAGENT (availability subject to change).
Check the billing page for current eligibility.


πŸ–₯ Supported Environment


πŸ“¦ Installation

1️⃣ Create a Dedicated User

sudo adduser hermes
sudo usermod -aG sudo hermes
su - hermes

2️⃣ Install Hermes Agent

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

Verify installation:

which hermes

Expected:

/home/hermes/.local/bin/hermes

3️⃣ Authenticate with Nous Portal

hermes login

Complete browser authentication.

Verify:

hermes status

You should see:

Nous Portal βœ“ logged in

⏰ Create Autonomous Cron Job

Start Hermes:

hermes chat

Inside the interactive shell:

Create a cronjob that runs every 10 minutes.
The task should:
Write a short reflective paragraph about technology trends.
Limit response to 180 words.

Hermes will return a job ID.

Exit Hermes:

Ctrl + C

βš™ Enable Hermes Gateway (System-Level Service)

Some VPS environments do not support systemctl --user. Use a system-level service instead.

Create service file:

sudo nano /etc/systemd/system/hermes-gateway.service

Paste:

[Unit]
Description=Hermes Gateway Service
After=network.target

[Service]
User=hermes
WorkingDirectory=/home/hermes
ExecStart=/home/hermes/.local/bin/hermes gateway
Restart=always
RestartSec=10
Environment=PATH=/home/hermes/.local/bin:/usr/local/bin:/usr/bin:/bin

[Install]
WantedBy=multi-user.target

Enable and start:

sudo systemctl daemon-reload
sudo systemctl enable hermes-gateway
sudo systemctl start hermes-gateway

βœ… Verify Everything

Check gateway:

sudo systemctl status hermes-gateway

Check scheduler:

hermes cron status

Expected:

βœ“ Gateway is running β€” cron jobs will fire automatically

πŸ— Architecture

Systemd (system service)
        ↓
Hermes Gateway
        ↓
Hermes Cron Scheduler
        ↓
Claude Model (Nous Portal)
        ↓
Local Output Files

πŸ’° Cost Considerations

Example configuration:

Estimated usage:

~4,320 runs/month Typically ~$8–12/month depending on model and output size.

To adjust frequency:

Update cronjob <job_id> to run every 15 minutes.

πŸ“Š Monitoring

Gateway logs:

journalctl -u hermes-gateway -f

Cron jobs:

hermes cron list

Gateway status:

hermes cron status

πŸ”„ Reboot Safety

This setup:


🧼 Uninstall

sudo systemctl stop hermes-gateway
sudo systemctl disable hermes-gateway
hermes uninstall

🎯 Why This Approach?

βœ” Uses native Hermes scheduler βœ” Avoids shell-based infinite loops βœ” Avoids TTY emulation hacks βœ” Clean systemd integration βœ” Minimal operational complexity βœ” Fully self-hosted


⚠ Important Notes


πŸ”’ Security Considerations

This guide assumes a trusted VPS or dedicated environment.


Disclaimer

This repository is an independent deployment guide and is not affiliated with or endorsed by Nous Research.