AI & AUTOMATIONSELF HOSTING

Hermes WebUI: Cách tốt nhất để dùng Hermes Agent từ trình duyệt và điện thoại

Tóm tắt nhanh:

  • Hermes WebUI là một giao diện web nhẹ, tối màu (dark theme), hoàn toàn mã nguồn mở (MIT) cho Hermes Agent – cung cấp gần như 100% parity với trải nghiệm CLI ngay trong trình duyệt.
  • Không build step, không framework nặng, không bundler – chỉ thuần Python phía server và vanilla JS phía client. Cài đặt trong 5 phút với một lệnh Docker Compose hoặc python3 bootstrap.py.
  • Bố cục ba panel: sidebar trái cho session, khu vực chat ở giữa, file workspace bên phải. Có context ring hiển thị token usage và Hermes Control Center cho mọi thiết lập.
  • Truy cập từ điện thoại dễ dàng qua Tailscale (mesh VPN dựa trên WireGuard) – giao diện responsive, có hamburger menu, tối ưu cho cảm ứng, có thể “Add to Home Screen” như app.
  • Tận dụng toàn bộ tính năng của Hermes Agent: persistent memory, scheduled jobs, self-improving skills, hỗ trợ 10+ nền tảng nhắn tin (Telegram, Discord, Slack, Signal, email…), provider-agnostic (OpenAI, Anthropic, Google, DeepSeek, OpenRouter…).
  • Self-hosted hoàn toàn: dữ liệu hội thoại, memory và phần cứng đều thuộc về bạn.

Hermes WebUI là gì?

Trong làn sóng AI agent năm 2026, hầu hết các công cụ vẫn buộc người dùng phải “kể lại từ đầu” mỗi phiên làm việc – chúng không nhớ bạn là ai, bạn đang làm dự án gì, hay convention coding bạn đang theo. Hermes Agent của Nous Research giải bài toán đó bằng một autonomous agent sống trên server của bạn, có persistent memory và càng dùng lâu càng “hiểu” môi trường của bạn hơn.

Tuy nhiên Hermes Agent gốc chủ yếu được thiết kế cho terminal và các messaging app. Đây là lúc Hermes WebUI bước vào – một dự án cộng đồng do Nesquena phát triển, mang lại trải nghiệm web/mobile gần như đồng đẳng với CLI mà không yêu cầu bất kỳ thiết lập bổ sung nào ngoài Hermes Agent đã có sẵn.

Điểm nổi bật của Hermes WebUI là:

  • Lightweight, không có build step phức tạp – chỉ Python và vanilla JavaScript.
  • Layout ba panel cố định: sidebar trái cho sessions, center chat, right panel cho workspace file browser.
  • Composer footer hiển thị model, profile, workspace và một context ring trực quan cho token usage.
  • Hermes Control Center tập trung mọi thiết lập vào một launcher ở đáy sidebar.
  • Một lệnh duy nhất để khởi động, một lệnh SSH tunnel duy nhất để truy cập an toàn từ máy local.

So sánh nhanh với các giải pháp khác

So với OpenClaw, Claude Code, Codex CLI hay OpenCode, Hermes (cùng WebUI) là giải pháp duy nhất tích hợp đầy đủ persistent memory tự động, scheduled jobs self-hosted, web UI self-hosted, self-improving skills, chạy native trong hệ sinh thái Python và provider-agnostic – tất cả dưới giấy phép mã nguồn mở.

Đối thủ gần nhất là OpenClaw, nhưng Hermes có hai khác biệt then chốt: agent tự viết và lưu skill từ kinh nghiệm thực tế (không cần marketplace), và stack Python giúp tích hợp dễ dàng với hệ sinh thái ML hiện đại.

Hướng dẫn cài đặt: ba con đường phổ biến nhất

Hermes WebUI hỗ trợ Linux, macOS và WSL2. Native Windows hiện chưa được hỗ trợ trong bootstrap (xem docs/wsl-autostart.md để chạy auto-start trên WSL).

Cách 1: Bootstrap script (đơn giản nhất cho lần đầu)

git clone https://github.com/nesquena/hermes-webui.git hermes-webui
cd hermes-webui
python3 bootstrap.py

Bootstrap sẽ tự động:

  1. Phát hiện Hermes Agent, nếu thiếu sẽ chạy installer chính thức từ NousResearch.
  2. Tìm hoặc tạo Python environment với các dependency cần thiết.
  3. Khởi động web server và đợi endpoint /health sẵn sàng.
  4. Mở trình duyệt (trừ khi bạn truyền cờ --no-browser).
  5. Đưa bạn vào first-run onboarding wizard ngay trong WebUI.

Nếu bạn thích shell launcher truyền thống: ./start.sh.

Cách 2: Docker Compose – 5 phút quickstart

Đây là cách được khuyến nghị cho self-hosted VM hoặc homelab:

git clone https://github.com/nesquena/hermes-webui
cd hermes-webui
cp .env.docker.example .env
# Chỉnh .env nếu UID không phải 1000 (ví dụ: macOS UID bắt đầu từ 501)
docker compose up -d
# Mở http://localhost:8787

Container tự dò UID/GID từ volume ~/.hermes mount vào, đảm bảo file mà agent ghi ra vẫn đọc được từ host. Pre-built images (amd64 + arm64) được publish trên GHCR mỗi lần release.

Để bật password auth (bắt buộc nếu mở port ra ngoài 127.0.0.1):

echo "HERMES_WEBUI_PASSWORD=change-me-to-something-strong" >> .env
docker compose up -d --force-recreate

Cách 3: Daemon control với ctl.sh

Cho ai chạy trên VPS không có sẵn fuser/pkill:

./ctl.sh start              # background daemon, PID lưu ở ~/.hermes/webui.pid
./ctl.sh status             # PID, uptime, host/port, log path, /health
./ctl.sh logs --lines 100   # tail ~/.hermes/webui.log
./ctl.sh restart
./ctl.sh stop

ctl.sh start chạy bootstrap ở foreground/no-browser mode bên dưới một daemon wrapper, tôn trọng .env và cho phép override inline kiểu HERMES_WEBUI_HOST=0.0.0.0 ./ctl.sh start.

Truy cập an toàn từ máy local qua SSH tunnel

Mặc định server bind vào 127.0.0.1 (chỉ loopback). Nếu Hermes chạy trên VPS, dùng SSH tunnel:

ssh -N -L 8787:127.0.0.1:8787 [email protected]

Sau đó mở http://localhost:8787 trên máy bạn. start.sh sẽ tự in lệnh này khi phát hiện bạn đang chạy qua SSH.

Truy cập từ điện thoại với Tailscale

Đây là phần khiến Hermes WebUI thực sự tỏa sáng. Hermes WebUI fully responsive với layout mobile-optimized: hamburger sidebar, sidebar top tabs trong drawer, controls thân thiện cảm ứng – đủ chất lượng để làm daily-driver agent interface trên điện thoại.

Các bước thiết lập:

  1. Cài Tailscale trên server và iPhone/Android.
  2. Khởi động WebUI listen trên mọi interface với password auth bật:
HERMES_WEBUI_HOST=0.0.0.0 HERMES_WEBUI_PASSWORD=your-secret ./start.sh
  1. Trên điện thoại, mở http://<server-tailscale-ip>:8787 (lấy IP bằng tailscale ip -4 trên server). Có thể “Add to Home Screen” để có cảm giác như app native.

Traffic được mã hóa end-to-end qua WireGuard, không cần port forwarding, không cần expose public.

Các biến môi trường quan trọng

BiếnMặc địnhMô tả
HERMES_WEBUI_AGENT_DIRauto-discoveredĐường dẫn checkout của hermes-agent
HERMES_WEBUI_HOST127.0.0.1Bind address (0.0.0.0 để listen mọi IPv4)
HERMES_WEBUI_PORT8787Port phục vụ
HERMES_WEBUI_STATE_DIR~/.hermes/webui-mvpNơi lưu sessions và state
HERMES_WEBUI_DEFAULT_WORKSPACE~/workspaceWorkspace mặc định
HERMES_WEBUI_DEFAULT_MODELopenai/gpt-5.4-miniModel mặc định
HERMES_WEBUI_PASSWORDunsetBật password authentication

Auto-discovery sẽ tự lo cho hầu hết các trường này. Bạn chỉ cần can thiệp khi setup không chuẩn.

Sử dụng thực tế: từ chat đầu tiên đến scheduled jobs

Sau khi bootstrap xong, mở browser ở port 8787 – bạn sẽ vào onboarding wizard. Wizard sẽ kiểm tra cấu hình provider (OpenAI key, Anthropic key…), nếu chưa hoàn tất sẽ chỉ bạn dùng hermes model ở terminal thay vì cố gắng replicate toàn bộ setup CLI trong UI.

Một số luồng làm việc phổ biến:

  • Tạo session mới: Nhấn nút “New Session” ở sidebar trái, chọn workspace (ví dụ ~/projects/my-app), chọn model trong composer footer rồi gõ prompt đầu tiên.
  • Theo dõi context: Nhìn vào context ring tròn ở góc – khi nó gần đầy bạn nên /compact để tóm tắt và giải phóng token.
  • Lập lịch job: Vào Hermes Control Center, mở tab Schedule, tạo cron job kiểu “mỗi 8 giờ sáng tóm tắt PR mới và gửi sang Telegram”. Job vẫn chạy khi máy bạn offline vì agent sống trên server.
  • Dùng skill tự sinh: Sau vài lần làm cùng một loại task, Hermes tự viết skill và lưu lại. Lần tới chỉ cần ra lệnh ngắn, agent gọi đúng skill cũ.
  • Spawn coding agent: Bạn có thể yêu cầu Hermes spawn Claude Code hoặc Codex để xử lý task code nặng, kết quả được merge ngược về memory của Hermes.

Kiểm tra sức khỏe và troubleshoot

Health check cơ bản:

curl http://127.0.0.1:8787/health

Một số lỗi thường gặp khi chạy Docker:

  • PermissionError khi khởi động → set UID=$(id -u) trong .env.
  • Workspace rỗng → cùng nguyên nhân UID mismatch trên /workspace mount.
  • git: command not found trong chat → giới hạn kiến trúc của setup hai container; dùng single-container hoặc extend Dockerfile.

Hermes WebUI lấp đúng một khoảng trống cụ thể trong stack AI agent self-hosted hiện đại: nó không cố thay thế CLI, không cố biến Hermes Agent thành một sản phẩm SaaS, mà mang đến lựa chọn truy cập tiện lợi qua web và mobile mà vẫn giữ trọn triết lý self-hosted. Với vài lệnh cài đặt, một SSH tunnel hoặc Tailscale, và không một dòng code framework JavaScript nặng nề nào, bạn có ngay một AI agent persistent, multi-platform, có khả năng tự học và lập lịch chạy nền – tất cả trên hạ tầng của chính bạn.

Nếu bạn đã dùng Hermes Agent qua terminal và bắt đầu tiếc rằng không thể tiếp tục cuộc hội thoại khi đang đi đường, đây chính là mảnh ghép còn thiếu.

Duy Nghiện
Hãy làm khán giả, đừng làm nhân vật chính :)

You may also like

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận