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.pyBootstrap sẽ tự động:
- Phát hiện Hermes Agent, nếu thiếu sẽ chạy installer chính thức từ NousResearch.
- Tìm hoặc tạo Python environment với các dependency cần thiết.
- Khởi động web server và đợi endpoint
/healthsẵn sàng. - Mở trình duyệt (trừ khi bạn truyền cờ
--no-browser). - Đư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:8787Container 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-recreateCá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 stopctl.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:
- Cài Tailscale trên server và iPhone/Android.
- 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- Trên điện thoại, mở
http://<server-tailscale-ip>:8787(lấy IP bằngtailscale ip -4trê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ến | Mặc định | Mô tả |
|---|---|---|
HERMES_WEBUI_AGENT_DIR | auto-discovered | Đường dẫn checkout của hermes-agent |
HERMES_WEBUI_HOST | 127.0.0.1 | Bind address (0.0.0.0 để listen mọi IPv4) |
HERMES_WEBUI_PORT | 8787 | Port phục vụ |
HERMES_WEBUI_STATE_DIR | ~/.hermes/webui-mvp | Nơi lưu sessions và state |
HERMES_WEBUI_DEFAULT_WORKSPACE | ~/workspace | Workspace mặc định |
HERMES_WEBUI_DEFAULT_MODEL | openai/gpt-5.4-mini | Model mặc định |
HERMES_WEBUI_PASSWORD | unset | Bậ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/healthMột số lỗi thường gặp khi chạy Docker:
PermissionErrorkhi khởi động → setUID=$(id -u)trong.env.- Workspace rỗng → cùng nguyên nhân UID mismatch trên
/workspacemount. git: command not foundtrong 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.








