diff --git a/.github/workflows/deploy-site.yml b/.github/workflows/deploy-site.yml index 44da745b9f..480b236f84 100644 --- a/.github/workflows/deploy-site.yml +++ b/.github/workflows/deploy-site.yml @@ -1,12 +1,11 @@ name: Deploy Site on: - release: - types: [published] push: branches: [main] paths: - 'website/**' + - 'landingpage/**' - 'skills/**' - 'optional-skills/**' - '.github/workflows/deploy-site.yml' @@ -21,14 +20,8 @@ concurrency: cancel-in-progress: false jobs: - deploy-vercel: - if: github.event_name == 'release' - runs-on: ubuntu-latest - steps: - - name: Trigger Vercel Deploy - run: curl -X POST "${{ secrets.VERCEL_DEPLOY_HOOK }}" - - deploy-docs: + build-and-deploy: + # Only run on the upstream repository, not on forks if: github.repository == 'NousResearch/hermes-agent' runs-on: ubuntu-latest environment: @@ -69,10 +62,20 @@ jobs: run: npm run build working-directory: website + - name: Stage deployment + run: | + mkdir -p _site/docs + # Landing page at root + cp -r landingpage/* _site/ + # Docusaurus at /docs/ + cp -r website/build/* _site/docs/ + # CNAME so GitHub Pages keeps the custom domain between deploys + echo "hermes-agent.nousresearch.com" > _site/CNAME + - name: Upload artifact uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3 with: - path: website/build + path: _site - name: Deploy to GitHub Pages id: deploy diff --git a/landingpage/apple-touch-icon.png b/landingpage/apple-touch-icon.png new file mode 100644 index 0000000000..c5da175f8e Binary files /dev/null and b/landingpage/apple-touch-icon.png differ diff --git a/landingpage/favicon-16x16.png b/landingpage/favicon-16x16.png new file mode 100644 index 0000000000..5bc67ef224 Binary files /dev/null and b/landingpage/favicon-16x16.png differ diff --git a/landingpage/favicon-32x32.png b/landingpage/favicon-32x32.png new file mode 100644 index 0000000000..8db2977a5b Binary files /dev/null and b/landingpage/favicon-32x32.png differ diff --git a/landingpage/favicon.ico b/landingpage/favicon.ico new file mode 100644 index 0000000000..8586c395f6 Binary files /dev/null and b/landingpage/favicon.ico differ diff --git a/landingpage/hermes-agent-banner.png b/landingpage/hermes-agent-banner.png new file mode 100644 index 0000000000..2c4a160ceb Binary files /dev/null and b/landingpage/hermes-agent-banner.png differ diff --git a/landingpage/icon-192.png b/landingpage/icon-192.png new file mode 100644 index 0000000000..126a395793 Binary files /dev/null and b/landingpage/icon-192.png differ diff --git a/landingpage/icon-512.png b/landingpage/icon-512.png new file mode 100644 index 0000000000..c5b4c63a57 Binary files /dev/null and b/landingpage/icon-512.png differ diff --git a/landingpage/index.html b/landingpage/index.html new file mode 100644 index 0000000000..e24ed11c48 --- /dev/null +++ b/landingpage/index.html @@ -0,0 +1,665 @@ + + +
+ + ++ It's not a coding copilot tethered to an IDE or a chatbot wrapper + around a single API. It's an autonomous agent that + lives on your server, remembers what it learns, and gets more capable + the longer it runs. +
+ ++ Works on Linux, macOS & WSL2 · No prerequisites · Installs + everything automatically +
+curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
+ + Installs uv, Python 3.11, clones the repo, sets up everything. + No sudo needed. +
+# Interactive setup wizard
+hermes setup
+
+# Or choose your model
+hermes model
+ + Connect to Nous Portal (OAuth), OpenRouter (API key), or your + own endpoint. +
+hermes
+ + That's it. Full interactive CLI with tools, memory, and skills. +
+# Interactive gateway setup wizard
+hermes gateway setup
+
+# Start the messaging gateway
+hermes gateway
+
+# Install as a system service
+hermes gateway install
+ + Walk through connecting Telegram, Discord, Slack, or WhatsApp. + Runs as a systemd service. +
+hermes update
+ + Pulls the latest changes and reinstalls dependencies. Run + anytime to get new features and fixes. +
++ Native Windows support is extremely experimental and unsupported. + Please install + WSL2 + and run Hermes Agent from there. +
++ Telegram, Discord, Slack, WhatsApp, and CLI from a single gateway + — start on one, pick up on another. +
++ Persistent memory and auto-generated skills — it learns your + projects and never forgets how it solved a problem. +
++ Natural language cron scheduling for reports, backups, and + briefings — running unattended through the gateway. +
++ Isolated subagents with their own conversations, terminals, and + Python RPC scripts for zero-context-cost pipelines. +
++ Five backends — local, Docker, SSH, Singularity, Modal — with + container hardening and namespace isolation. +
++ Web search, browser automation, vision, image generation, + text-to-speech, and multi-model reasoning. +
++ 40+ built-in — web search, terminal, file system, browser + automation, vision, image generation, text-to-speech, code + execution, subagent delegation, memory, task planning, cron + scheduling, multi-model reasoning, and more. +
++ Telegram, Discord, Slack, WhatsApp, Signal, Email, and CLI — all + from a single gateway. Connect to + Nous Portal, OpenRouter, or any OpenAI-compatible API. +
++ Run locally, in Docker, over SSH, on Modal, Daytona, or + Singularity. Container hardening with read-only root, dropped + capabilities, and namespace isolation. +
++ 40+ bundled skills covering MLOps, GitHub workflows, research, + and more. The agent creates new skills on the fly and shares + them via the open + agentskills.io + format. Install community skills from + ClawHub, + LobeHub, and GitHub. +
++ Batch trajectory generation with parallel workers and + checkpointing. Atropos integration for RL training. Export to + ShareGPT for fine-tuning with trajectory compression. +
+