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

推荐订阅源

Know Your Adversary
Know Your Adversary
N
News and Events Feed by Topic
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy & Cybersecurity Law Blog
P
Privacy International News Feed
Recent Announcements
Recent Announcements
T
Threatpost
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Last Week in AI
Last Week in AI
博客园 - 叶小钗
AWS News Blog
AWS News Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
月光博客
月光博客
The Cloudflare Blog
罗磊的独立博客
P
Palo Alto Networks Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Tailwind CSS Blog
PCI Perspectives
PCI Perspectives
Forbes - Security
Forbes - Security
Latest news
Latest news
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
有赞技术团队
有赞技术团队
N
News and Events Feed by Topic
爱范儿
爱范儿
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
I
Intezer
S
Secure Thoughts
Hacker News: Ask HN
Hacker News: Ask HN
C
CERT Recently Published Vulnerability Notes
TaoSecurity Blog
TaoSecurity Blog
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
H
Hacker News: Front Page
Recent Commits to openclaw:main
Recent Commits to openclaw:main
V2EX - 技术
V2EX - 技术
Microsoft Azure Blog
Microsoft Azure Blog
O
OpenAI News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Webroot Blog
Webroot Blog

Tianhe Gao

荐《给阿嬷的情书》 夏雨 我思 园区的猫 去深圳国际美术馆——艺术源于生活,是对生活的总结和升华 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 跑步七公里,木星冲日 2025 年终总结 | Tianhe Gao Teeth Cleaning | Tianhe Gao 洗牙 | Tianhe Gao Romeo and Juliet (musical) | Tianhe Gao
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