Skip to content

unrealandychan/Hermes-Agent-Cloud

Repository files navigation

Header

Stars Forks Language AWS


Hermes Agent Cloud

One command. Three clouds. Four LLM providers. Deploy the Hermes Agent to AWS, Azure, or GCP with a beautiful wizard-first CLI — zero plaintext secrets, zero manual infra wiring.

License: MIT GitHub


Monorepo Structure

Hermes-Agent-Cloud/
│
├── cli/                                 # 🖥️  The CLI tool
│   ├── hermes-deploy                    # Main executable (bash, chmod +x)
│   ├── install.sh                       # One-line installer (detects macOS / Linux)
│   │
│   ├── lib/                        # Shared bash libraries
│   │   ├── enums.sh                # ⭐ All valid values + validation functions (extend here)
│   │   ├── ui.sh                   # gum wrappers — wizard, banners, spinners, post-deploy guide
│   │   ├── preflight.sh            # Dependency checks (gum, terraform, jq, cloud CLIs)
│   │   ├── config.sh               # ~/.hermes-agent-cloud/config key-value store
│   │   ├── aws.sh                  # AWS wizard + status/ssh/logs/secrets/destroy
│   │   ├── azure.sh                # Azure wizard + status/ssh/logs/secrets/destroy
│   │   └── gcp.sh                  # GCP wizard + status/ssh/logs/secrets/destroy
│   │
│   ├── terraform/
│   │   ├── aws/                    # EC2 + Security Group + IAM + SSM Parameter Store
│   │   │   ├── main.tf
│   │   │   ├── variables.tf
│   │   │   ├── outputs.tf
│   │   │   ├── security_group.tf
│   │   │   ├── iam.tf
│   │   │   └── ssm.tf
│   │   ├── azure/                  # VM + VNet + NSG + Azure Key Vault + Managed Identity
│   │   │   ├── main.tf
│   │   │   ├── variables.tf
│   │   │   ├── outputs.tf
│   │   │   ├── network.tf
│   │   │   └── keyvault.tf
│   │   └── gcp/                    # Compute Engine + Firewall + Secret Manager + Service Account
│   │       ├── main.tf
│   │       ├── variables.tf
│   │       ├── outputs.tf
│   │       ├── firewall.tf
│   │       └── secretmanager.tf
│   │
│   ├── scripts/
│   │   ├── bootstrap.sh            # VM user-data: installs Docker, Hermes, pulls secrets, sets up systemd
│   │   └── configure.sh            # 7-point on-instance health check
│   │
│   ├── config/
│   │   └── hermes.yaml.tpl         # Hermes Agent config template (rendered at deploy time)
│   │
│   ├── README.md                   # CLI-specific documentation
│   └── RELEASE-NOTE.md             # Changelog
│
├── website/                             # 🌐  Marketing website (Next.js 15)
│   ├── src/
│   │   ├── app/
│   │   │   ├── layout.tsx          # Root layout — Geist fonts, metadata
│   │   │   ├── page.tsx            # Page assembly — imports all sections
│   │   │   ├── globals.css         # Design tokens, utility classes
│   │   │   └── error.tsx           # Next.js error boundary
│   │   └── components/
│   │       ├── Navbar.tsx          # Fixed top nav with anchor links
│   │       ├── Hero.tsx            # Full-width hero + animated TerminalDemo
│   │       ├── TerminalDemo.tsx    # Auto-replaying wizard terminal animation
│   │       ├── FeaturesOverview.tsx# 3 pillar cards
│   │       ├── CloudsSection.tsx   # AWS / Azure / GCP detail cards
│   │       ├── ProvidersSection.tsx# 4 LLM provider cards
│   │       ├── FeatureGrid.tsx     # 12-feature grid
│   │       ├── HowItWorks.tsx      # 4-step numbered guide
│   │       ├── SecuritySection.tsx # Security guarantee cards
│   │       ├── InstallSection.tsx  # curl one-liner + commands table
│   │       └── Footer.tsx          # Brand, nav, license
│   ├── next.config.ts
│   ├── postcss.config.mjs
│   ├── tsconfig.json
│   └── package.json
│
├── .gitignore                      # Monorepo-wide ignores
└── README.md                       # This file

Packages at a Glance

Package Language Purpose
cli/ Bash + Terraform CLI that provisions Hermes Agent on cloud VMs
website/ Next.js 15 / TypeScript Marketing website

Quick Start

Install the CLI

curl -sSL https://raw.githubusercontent.com/unrealandychan/Hermes-Agent-Cloud/main/cli/install.sh | bash

Or manually:

git clone https://github.com/unrealandychan/Hermes-Agent-Cloud
cd Hermes-Agent-Cloud/cli
./install.sh

Run

hermes-agent-cloud                          # interactive wizard
hermes-agent-cloud deploy --cloud aws       # flags mode
hermes-agent-cloud status --cloud azure
hermes-agent-cloud ssh    --cloud gcp
hermes-agent-cloud logs   --cloud aws
hermes-agent-cloud secrets --cloud azure
hermes-agent-cloud destroy --cloud aws

Multi-Profile Support

Run multiple isolated Hermes Agent instances on the same machine — each with its own API keys, config, port, and systemd service.

Use Cases

  • Separate work and personal profiles with different API keys
  • Run different LLM providers side-by-side (e.g. OpenRouter vs Anthropic)
  • Isolate projects that need different agent configurations

Profile Commands

# Create a new profile (prompts for API keys)
hermes-agent-cloud profile create work
hermes-agent-cloud profile create personal

# List all profiles and their ports
hermes-agent-cloud profile list

# Switch the active profile
hermes-agent-cloud profile use work

# Show details of a profile
hermes-agent-cloud profile show work

# Remove a profile
hermes-agent-cloud profile remove work

Port Allocation

Each profile gets an automatically assigned port pair:

Profile Web Dashboard API Gateway
default 9119 8080
1st extra 9120 8081
2nd extra 9121 8082

Profile Storage

~/.hermes-profiles/
├── default/          # backward-compatible with v1.x
│   ├── .env          # API keys (chmod 600)
│   └── config.yaml
├── work/
│   ├── .env
│   └── config.yaml
└── personal/
    ├── .env
    └── config.yaml

Each profile runs as its own systemd service (hermes-default, hermes-work, hermes-personal), so they start independently on reboot.

Backward compatibility: Existing single-instance deployments continue to work unchanged — they are automatically treated as the default profile.


Run the Website Locally

cd website
npm install
npm run dev          # http://localhost:3000

Cloud Support

Cloud Compute Secret Store SSH Options
AWS EC2 (Ubuntu 24.04) SSM Parameter Store Direct SSH · SSM Session Manager
Azure VM Standard_D2s_v3 Azure Key Vault Direct SSH · az ssh extension
GCP Compute Engine e2-standard-2 Secret Manager Direct SSH · gcloud compute ssh

Web Dashboard

Hermes Agent ships with a built-in web dashboard (v1.0.2+) that provides a browser-based UI for managing and interacting with the agent.

Endpoint Port Description
Web Dashboard 9119 Browser UI — docs
API Gateway 8080 REST/WebSocket API endpoint

Both ports are restricted to your deployer IP at provision time. To access the dashboard after deployment:

http://<instance-ip>:9119

LLM Providers

Provider Env Var Notes
OpenRouter OPENROUTER_API_KEY 600+ models, recommended
OpenAI OPENAI_API_KEY GPT-5, GPT-5.4, GPT-4.1, o3
Anthropic ANTHROPIC_API_KEY Claude 4.6 Sonnet, Claude 4.6 Haiku
Google Gemini GEMINI_API_KEY Gemini 3.1 Flash / Pro, Gemini 2.5 Pro

At least one provider required. Mixed-provider setups fully supported.


Extending

All valid option values live in a single file — cli/lib/enums.sh. To add a new cloud region, instance type, or LLM provider, edit only that file.


Contributing

  1. Fork the repo
  2. Create a feature branch (git checkout -b feat/my-feature)
  3. Commit your changes
  4. Open a Pull Request against main

License

MIT © unrealandychan

About

Simple deployment tool to deploy your Hermes Agent to Cloud

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors