Re: [NonGNU] new: hermes
Jean Louis <[email protected]> Tue, 11 Aug 2026 21:43:34 +0300
| Newsgroups | gmane.emacs.devel |
|---|---|
| Organization | GNU Support |
| Message-ID | <[email protected]> |
Hello Eli,
On 2026-08-11 14:21, Eli Zaretskii wrote:
> You are wrong. The phrase "Let's configure your installation" means
> the program is already installed, and the following procedure will
> configure the installed program. It does NOT mean that the configure
> step configures the installation process which has not yet begun.
In short: the installer technically allows skipping the SaaS
registration (by exiting the wizard or selecting another option), but it
does not communicate that possibility clearly. The defaults and
messaging steer the user firmly toward the remote Nous Portal.
Your interpretation that the banner itself conveys a way to “skip the
SaaS LLM” is therefore inaccurate. You are entitled to your opinion. Yet
you could follow Nielsen's advice and ask some users to go through the
process to see what they feel about it.
You argued that the phrase "Let's configure your installation" means the
program is already installed, and that users should understand that
pressing Ctrl+C merely exits the configuration wizard without removing
the installed files.
But can a user actually know that? The installer does not print any
message saying "Installation complete" or "All files have been
installed" before the wizard appears. Instead, the user sees a stream of
dependency checks and cloning, then immediately this banner:
→ Starting setup wizard...
┌─────────────────────────────────────────────────────────┐
│ ⚕ Hermes Agent Setup Wizard │
├─────────────────────────────────────────────────────────┤
│ Let's configure your Hermes Agent installation. │
│ Press Ctrl+C at any time to exit. │
└─────────────────────────────────────────────────────────┘
> When I say "with my Emacs installation I see such-and-such behavior",
> I allude to the behavior of Emacs that is already installed, not the
> process of its installation. Same here.
>
> So if you understood the banner as telling you that the installation
> has not yet begun, it's a misunderstanding: the installation is
> already complete, and the next step is to configure the package which
> was just installed.
Your analogy doesn’t hold. When you talk about “my Emacs installation”
you’re referring to a program you already know is installed—because you,
the user, deliberately installed it and saw clear completion output. The
Hermes installer never prints “Installation complete” before the wizard;
instead it slides straight from cloning and dependency checks into the
configuration wizard without any demarcation. The phrase “Let's
configure your installation” in that context can easily mean “let’s
finish installing by configuring it”—not “the installation is already
done.” A user cannot be expected to infer that the file-placement stage
is over just from those words.
> Thus, if you interrupt that configuration, the package is installed,
> but not configured to use the LLMs which you might not want to use.
Thanks, I understand the technical point: files are on disk, and Ctrl+C
only aborts the wizard. But that's irrelevant if the user isn't told.
The installer never announces "Installation complete" before the wizard,
never says "the agent is already installed and usable without the
portal," and never indicates that pressing Ctrl+C preserves a working
local setup. In the actual user experience, the wizard appears as the
final phase of a continuous install process, and exiting it feels like
killing the entire thing. That's the whole point—it's a usability
failure, not a technical one.
>> Even if they can skip registration on their SaaS LLM portal, Ctrl+C in
>> the terminal has a long-established meaning: it sends a SIGINT signal,
>> asking the program to break execution.
>
> Yes, and "the program" in this case is the "configuration wizard",
> i.e. a tool that guides you through the registration process and the
> rest of the configuration stage. Ergo, if you interrupt it, there
> will be no registration.
You're redefining "the program" after the fact. The user sees one
continuous installation script—the banner doesn't say "configuration
wizard sub-process, separate from installation." Ctrl+C's established
meaning is indeed to break execution, and the user has every reason to
believe that will kill the entire install, not just gracefully skip
registration. The installer never marks the boundary between "files
installed" and "optional wizard," so saying "if you interrupt it, there
will be no registration" assumes knowledge the user cannot have. That's
the twist.
> IOW, it's the same as if some site unexpectedly asks you for
> registration or money or some private information, and you click on
> the "Cancel" button or that top-right button which says "x", which
> closes the dialog -- you abort whatever was about to happen.
Your website analogy doesn’t work because on a website, the user can see
the loaded page behind the dialog—they know the site is already there
and that closing the popup simply dismisses it. The Hermes installer
offers no such visual or textual separation: the wizard appears as the
direct continuation of the installation output, with no “installation
complete” signal and no underlying “already installed” state visible.
The user experiences it as a monolithic process, not as an optional
overlay. So pressing Ctrl+C feels like closing the entire installer, not
dismissing a popup.
>> In any case, Hermes doesn't say to user that it is possible to skip
>> the SaaS LLM registration on their portal.
>
> Yes, it does, see the above and the banner it shows.
>
>> It would be misleading to say it is "easy" to skip the SaaS LLM by
>> pressing Ctrl+C, especially since this was never announced during the
>> installation process.
>>
>> Pressing Ctrl+C in the Hermes installer aborts the entire
>> installation—it does not offer a documented path to continue with a
>> local-only setup while skipping the portal registration.
>
> I think you made these conclusions based on misunderstanding of what
> the banner says and means.
Nowhere does it say you can skip SaaS registration. “Exit” is not “skip
registration.” A user reading that has no way to know that pressing
Ctrl+C will leave a functioning local agent rather than aborting the
entire installation. So your claim that the banner tells them how to
avoid the portal is simply false—the words aren’t in the text.
I welcome any evidence from you that a typical first‑time user would
interpret that banner as a safe way to skip the portal.
--
Jean Louis
P.S.
Full installation script (with some things missing) pasted here below
was one single action starting from "curl"
Notice that “✓ Installation Complete” appears only after the wizard
finishes — not before. The user is never told that the file‑placement
phase is over before being pushed into the wizard.
user2@rtx:~$ curl -fsSL https://hermes-agent.nousresearch.com/install.sh
| bash
┌─────────────────────────────────────────────────────────┐
│ ⚕ Hermes Agent Installer │
├─────────────────────────────────────────────────────────┤
│ An open source AI agent by Nous Research. │
└─────────────────────────────────────────────────────────┘
✓ Detected: linux (debian)
→ Installing managed uv into /home/user2/.hermes/bin ...
→ Checking Python 3.11...
✓ Python found: Python 3.11.15
→ Checking Git...
✓ Git 2.47.3 found
→ Checking Node.js (for browser tools)...
✓ Node.js v22.23.2 found
→ Checking internet connectivity for package install and web tools...
✓ Internet connectivity looks good
→ Checking ripgrep (fast file search)...
✓ ripgrep 14.1.1 found
→ Checking ffmpeg (TTS voice messages)...
✓ ffmpeg 7.1.5-0+deb13u1 found
→ Installing to /home/user2/.hermes/hermes-agent...
→ Trying SSH clone...
→ SSH failed, trying HTTPS...
Cloning into '/home/user2/.hermes/hermes-agent'...
remote: Enumerating objects: 9611, done.
remote: Counting objects: 100% (9611/9611), done.
remote: Compressing objects: 100% (8826/8826), done.
remote: Total 9611 (delta 213), reused 7587 (delta 168), pack-reused 0
(from 0)
Receiving objects: 100% (9611/9611), 61.43 MiB | 11.43 MiB/s, done.
Resolving deltas: 100% (213/213), done.
✓ Cloned via HTTPS
✓ Repository ready
→ Creating virtual environment with Python 3.11...
Using CPython 3.11.15
Creating virtual environment at: venv
Activate with: source venv/bin/activate
✓ Virtual environment ready (Python 3.11)
→ Installing dependencies...
→ Trying tier: hash-verified (uv.lock) ...
→ (this resolves + downloads the curated [all] set — first run on a
→ fresh venv can take 1-5 minutes; uv prints progress below)
Resolving despite existing lockfile due to removal of global exclude
newer
⠼ hermes-agent==0.20.0
Resolved 249 packages in 8.69s
error: The lockfile at `uv.lock` needs to be updated, but `--locked` was
provided.
hint: To update the lockfile, run `uv lock`.
⚠ uv.lock sync failed (see uv output above), falling back to PyPI
resolve...
→ Trying tier: all ...
✓ Main package installed (all)
⚠ Note: installed via fallback tier (all).
→ Some optional features may be missing. After resolving any
→ PyPI/network issue, re-run: /home/user2/.hermes/bin/uv pip install -e
'.[all]'
✓ Main package installed
✓ All dependencies installed
→ Installing Node.js dependencies (browser tools)...
✅ Browser tools ready. Run: python run_agent.py --help
✓ Node.js dependencies installed
→ Installing browser engine (Playwright Chromium)...
⚠ No sudo available — skipping system-library install (--with-deps).
→ Ask an administrator to run, one time, as root:
→ sudo npx playwright install-deps chromium
→ (from /home/user2/.hermes/hermes-agent, after Node.js deps are
installed)
→ Installing Chromium binary into this user's Playwright cache...
✓ Browser engine setup complete
→ Installing TUI dependencies...
→ Setting up hermes command...
✓ Installed hermes launcher → ~/.local/bin/hermes
✓ Installed hermes-agent launcher → ~/.local/bin/hermes-agent
✓ Installed hermes-acp launcher → ~/.local/bin/hermes-acp
→ ~/.local/bin already on PATH
✓ hermes command ready
→ Setting up configuration files...
✓ Created ~/.hermes/.env from template
✓ Created ~/.hermes/config.yaml from template
✓ Created ~/.hermes/SOUL.md (edit to customize personality)
✓ Configuration directory ready: ~/.hermes/
→ Syncing bundled skills to ~/.hermes/skills/ ...
Syncing bundled skills into ~/.hermes/skills/ ...
+ computer-use
+ claude-code
+ codex
+ merge-reconciler
+ opencode
+ hermes-agent
+ obsidian
+ gif-search
+ youtube-content
+ songsee
+ test-driven-development
+ plan
+ requesting-code-review
+ spike
+ hermes-agent-skill-authoring
+ simplify-code
+ dogfood
+ python-debugpy
+ inspecting-hermes-desktop-dom
+ node-inspect-debugger
+ systematic-debugging
+ openhue
+ github-repo-management
+ github-issue-to-pr
+ github-code-review
+ github-issues
+ github-auth
+ codebase-inspection
+ github-pr-workflow
+ himalaya
+ email-inbox-triage
+ findmy
+ apple-reminders
+ apple-notes
+ imessage
+ product-price-monitor
+ docx
+ meeting-action-items
+ airtable
+ notion
+ google-workspace
+ pdf
+ xlsx
+ nano-pdf
+ powerpoint
+ ocr-and-documents
+ weekly-review-planning
+ document-to-action-items
+ teams-meeting-pipeline
+ maps
+ blogwatcher
+ arxiv
+ llm-wiki
+ competitor-news-monitor
+ grounded-citations
+ research-paper-writing
How would you like to set up Hermes?
↑↓ navigate ENTER/SPACE select ESC cancel
→ (●) Quick Setup (Nous Portal) — free OAuth login, no API keys, model
+ tools (recommended)
(○) Full setup — configure every provider, tool & option yourself
(bring your own keys)
(○) Blank Slate — everything off except the bare minimum; opt in to
each capability
Done: 79 new, 0 updated, 0 unchanged. 79 total bundled.
✓ Skills synced to ~/.hermes/skills/
→ Starting setup wizard...
┌─────────────────────────────────────────────────────────┐
│ ⚕ Hermes Agent Setup Wizard │
├─────────────────────────────────────────────────────────┤
│ Let's configure your Hermes Agent installation. │
│ Press Ctrl+C at any time to exit. │
└─────────────────────────────────────────────────────────┘
◆ Configuration Location
Config file: /home/user2/.hermes/config.yaml
Secrets file: /home/user2/.hermes/.env
Data folder: /home/user2/.hermes
Install dir: /home/user2/.hermes/hermes-agent
You can edit these files directly or use 'hermes config edit'
◆ Inference Provider
Choose how to connect to your main chat model.
Guide:
https://hermes-agent.nousresearch.com/docs/integrations/providers
Select provider:
↑↓ navigate ENTER/SPACE select ESC cancel
→ (●) Nous Portal (Everything your agent needs, 300+ models with
bundled tool use)
(○) Fireworks AI (OpenAI-compatible direct model API)
(○) OpenRouter (Pay-per-use API aggregator)
(○) Mixture of Agents (named presets; aggregator acts after reference
models)
(○) NovitaAI (Cloud: Model API, Agent Sandbox, GPU Cloud)
(○) LM Studio (Local desktop app with built-in model server)
(○) Anthropic (Claude models via API key or Claude Code)
(○) OpenAI ▸ (Codex CLI or direct OpenAI API)
(○) Qwen ▸ (Qwen Cloud / DashScope, Coding Plan & Qwen CLI OAuth)
(○) xAI Grok ▸ (Direct API or SuperGrok / Premium+ OAuth)
(○) Xiaomi MiMo (MiMo-V2.5 and V2 models: pro, omni, flash)
(○) Tencent TokenHub (Hy3 Preview via tokenhub.tencentmaas.com)
(○) NVIDIA NIM (Nemotron models via build.nvidia.com or local NIM)
(○) GitHub Copilot ▸ (GitHub token API or copilot --acp process)
(○) Hugging Face Inference Providers
(○) Google AI Studio (Native Gemini API)
(○) Google Vertex AI (Gemini via GCP; OAuth2 service account or ADC,
GCP billing/quotas)
(○) DeepSeek (V3, R1, coder, direct API)
(○) Z.AI / GLM (Zhipu direct API)
(○) Kimi / Moonshot ▸ (Coding Plan, Moonshot global & China
endpoints)
(○) StepFun Step Plan (Agent / coding models via Step Plan API)
(○) MiniMax ▸ (Global, OAuth Coding Plan & China endpoints)
(○) Ollama Cloud (Cloud-hosted open models, ollama.com)
(○) Arcee AI (Trinity models, direct API)
(○) GMI Cloud (Multi-model direct API)
(○) Kilo Code (Kilo Gateway API)
(○) OpenCode ▸ (Zen pay-as-you-go or Go subscription)
(○) AWS Bedrock (Claude, Nova, Llama, DeepSeek; IAM or API key)
(○) Azure Foundry (OpenAI-style or Anthropic-style endpoint, your
Azure AI deployment)
(○) Vercel AI Gateway (Multi-model aggregator)
(○) Actual Computer - hosted inference via api.actual.inc, or local
offline inference via ACTUAL_BASE_URL
(○) custom (direct API)
(○) DeepInfra — 100+ open models, pay-per-use
(○) Upstage (Solar API)
(○) Custom endpoint (enter URL manually)
(○) Configure auxiliary models...
→ (○) Leave unchanged
--- 🌐 Browser Automation - Choose a provider ---
✓ Browser set to local mode
✓ agent-browser already installed, nothing to do
✓ Chromium browser already installed, nothing to do
✓ Local Browser - no configuration needed!
--- 🖱️ Computer Use (macOS/Windows/Linux) (cua-driver (background))
---
Background computer-use via cua-driver — does NOT steal your cursor
or focus. Works with any model.
Installing cua-driver (background computer-use)...
note: installing cua-driver via the Rust implementation.
==> using baked release: cua-driver-rs-v0.19.3
==> downloading
https://github.com/trycua/cua/releases/download/cua-driver-rs-v0.19.3/cua-driver-rs-0.19.3-linux-x86_64-binary.tar.gz
==> extracting
==> installed
/home/user2/.cua-driver/packages/releases/0.19.3-x86_64-unknown-linux-gnu/cua-driver
(version 0.19.3, target x86_64-unknown-linux-gnu)
==> current -> releases/0.19.3-x86_64-unknown-linux-gnu
==> symlinked /home/user2/.local/bin/cua-driver ->
/home/user2/.cua-driver/packages/current/cua-driver
==> stopping any running cua-driver daemons before swap
Telemetry defaults to enabled for new installations; saved preferences
and environment overrides are honored.
When enabled, Cua collects a pseudonymous installation ID and bounded,
content-free usage metadata.
No prompts, tool arguments, screen contents, or file paths are
collected.
Disable persistently at any time: /home/user2/.local/bin/cua-driver
telemetry disable
cua-driver-rs 0.19.3 installed.
Choose a provider:
↑↓ navigate ENTER/SPACE select ESC cancel
→ (●) Nous Subscription [subscription] — Managed FAL image generation
billed to your subscription ★ via Nous Portal (login on select)
(○) DeepInfra [paid] — FLUX, Qwen-Image, … — live catalog from
api.deepinfra.com
(○) FAL.ai [paid] — Pick from flux-2-klein, flux-2-pro, gpt-image,
nano-banana-2, nano-banana-pro, etc. — text-to-image & image editing
(○) Krea [paid] — Krea 2 foundation model — Medium ($0.03), Large
($0.06), Medium Turbo ($0.015). Style transfer, moodboards,
reference-guide
(○) Nous Portal (image) [subscription] — Reference-grounded image
generation via Nous Portal (OpenRouter-backed)
(○) OpenAI [paid] — gpt-image-2 at low/medium/high quality tiers —
text-to-image & image editing
(○) OpenAI (Codex auth) [free] — gpt-image-2 via ChatGPT/Codex OAuth
— no API key required; supports text and image inputs
(○) OpenRouter (image) [paid] — Gemini Flash Image & more via
OpenRouter; uses OPENROUTER_API_KEY
(○) xAI Grok Imagine (image) [paid] — grok-imagine-image -
text-to-image & image editing; uses xAI Grok OAuth or XAI_API_KEY. xAI
Imagine sto
(○) Skip — keep defaults / configure later
◆ Tool Availability Summary
6/10 tool categories available:
✓ Vision (image analysis)
✗ Web Search & Extract (missing EXA_API_KEY, PARALLEL_API_KEY,
FIRECRAWL_API_KEY/FIRECRAWL_API_URL, TAVILY_API_KEY, or SEARXNG_URL)
✓ Browser Automation (Local browser)
✗ Image Generation (missing FAL_KEY or OPENAI_API_KEY)
✓ Text-to-Speech (Edge TTS)
✗ Speech-to-Text (Local Whisper — not installed) (missing run 'hermes
tools' → Speech-to-Text)
✗ Skills Hub (GitHub) (missing GITHUB_TOKEN)
✓ Terminal/Commands
✓ Task Planning (todo)
✓ Skills (view, create, edit)
⚠ Some tools are disabled. Run 'hermes setup tools' to configure them,
⚠ or edit ~/.hermes/.env directly to add the missing API keys.
┌─────────────────────────────────────────────────────────┐
│ ✓ Setup Complete! │
└─────────────────────────────────────────────────────────┘
📁 All your files are in ~/.hermes/:
Settings: /home/user2/.hermes/config.yaml
API Keys: /home/user2/.hermes/.env
Data: /home/user2/.hermes/cron/, sessions/, logs/
────────────────────────────────────────────────────────────
📝 To edit your configuration:
hermes setup Re-run the full wizard
hermes setup model Change model/provider
hermes setup terminal Change terminal backend
hermes setup gateway Configure messaging
hermes setup tools Configure tool providers
hermes config View current settings
hermes config edit Open config in your editor
hermes config set <key> <value>
Set a specific value
Or edit the files directly:
nano /home/user2/.hermes/config.yaml
nano /home/user2/.hermes/.env
────────────────────────────────────────────────────────────
🚀 Ready to go!
hermes Start chatting
hermes gateway Start messaging gateway
hermes doctor Check for issues
┌─────────────────────────────────────────────────────────┐
│ ✓ Installation Complete! │
└─────────────────────────────────────────────────────────┘
📁 Your files:
Config: /home/user2/.hermes/config.yaml
API Keys: /home/user2/.hermes/.env
Data: /home/user2/.hermes/cron/, sessions/, logs/
Code: /home/user2/.hermes/hermes-agent
─────────────────────────────────────────────────────────
🚀 Commands:
hermes Start chatting
hermes setup Configure API keys & settings
hermes config View/edit configuration
hermes config edit Open config in editor
hermes gateway install Install gateway service (messaging + cron)
hermes update Update to latest version
─────────────────────────────────────────────────────────
⚡ Reload your shell to use 'hermes' command:
source ~/.bashrc