惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
腾讯CDC
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
博客园 - 司徒正美
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
Vercel News
Vercel News
爱范儿
爱范儿
Last Week in AI
Last Week in AI
G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
D
DataBreaches.Net
博客园_首页
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
V
V2EX
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理

Tianhe Gao

第一次去佛山,看王菀之演唱会 给林夕 荐《奥德赛》电影――十年苦难让奥德修斯更具人性 永远的新裤子——新裤子30周年演唱会 听艾怡良深圳演唱会 一把开不了门的钥匙 荐《欢迎来龙餐馆》 确定性的忧伤 荐《给阿嬷的情书》 夏雨 我思 园区的猫 去深圳国际美术馆——艺术源于生活,是对生活的总结和升华 Evening Run 傍晚跑步 五一回忆——永远记得抬头看天上的星星 May Day memories--Always remember to look up at the stars How to Deploy LobeHub on Railway Watch spoken drama 'Rhinoceros in Love' 看话剧《恋爱的犀牛》 What am I really leaving behind when I put pen to paper? 当我写日记时,我在记录什么 My relationship with computers 我与计算机之缘 The taste of sea 海的味道 How to self-host Forgejo with docker on Ubuntu 24.04 Hong Kong Marathon in 2026 参加26年香港马拉松 Run 7 kilometers, Jupiter at opposition
How to deploy Hermes Agent on Ubuntu
Tianhe Gao · 2026-05-20 · via Tianhe Gao

Hermes Desktop is an Electron GUI for Hermes Agent. Shares the same ~/.hermes/ config, sessions, skills, and memory as the CLI. Runs on macOS, Windows, Linux.

Desktop defaults to local mode (starts a local hermes dashboard backend). Remote mode turns Desktop into a thin client — agent runs on VPS, Desktop renders UI via WebSocket.

Server-side Setup

The dashboard must bind to 0.0.0.0 (not 127.0.0.1) so Tailscale IPs can reach the WebSocket endpoint. --insecure disables Host header validation which rejects non-loopback connections.

  1. Restart dashboard on 0.0.0.0:
hermes dashboard --host 0.0.0.0 --port 9120 --no-open --insecure
  1. Get session token (used by Desktop for auth):
# from terminal (run on VPS):
curl -s http://127.0.0.1:9120/ | grep -oP '__HERMES_SESSION_TOKEN__="\\K[^"]+'

# or open http://127.0.0.1:9120/ in browser, open console, type:
__HERMES_SESSION_TOKEN__
  1. Pin the token (optional — avoids token change after restart):
# Add to ~/.hermes/.env:
HERMES_DASHBOARD_SESSION_TOKEN=<token-from-step-2>

Fixed token lets Desktop use a stable HERMES_DESKTOP_REMOTE_TOKEN that survives dashboard restarts.

Network: Tailscale

SSH tunnel (ssh -L 9120:localhost:9120) works but breaks on disconnect. Tailscale is more stable — zero port exposure, auto-reconnection.

Install native Tailscale on VPS:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

Desktop connects via http://<tailscale-ip>:9120. No basic auth needed — port is only reachable inside tailnet.

tailscale serve trap: If you previously ran tailscale serve on this port, the rule persists in state and intercepts traffic silently, returning 404. Fix:

sudo tailscale serve --http=9120 off

Clash Verge conflict: If you use Clash Verge TUN mode on the same machine, it may hijack Tailscale traffic (100.64.0.0/10) and route it through the proxy, making the Tailscale IP unreachable. Fix: add bypass rules at the top of Clash config:

IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
DOMAIN-SUFFIX,ts.net,DIRECT

If using Fake-IP DNS mode, also add *.ts.net to fake-ip-filter.

Desktop Client Setup

On Arch (CLI already installed):

On Windows: download .exe from https://hermes-agent.nousresearch.com/desktop.

In Desktop settings → Gateway → Remote Gateway:

  • Remote URL: http://<tailscale-ip>:9120
  • No auth (open inside tailnet), or use token from step 2

Experience Notes

  • First connection: session list loads slowly (initial sync of all history)
  • After warm-up: chat is smooth, no perceptible latency
  • Both Arch and Windows work
  • Thin client — all tools (terminal, file ops) execute on VPS