Hướng dẫn về Windows (Bản địa) — Bản Beta sớm
:::cảnh báo BETA sớm Hỗ trợ Windows gốc là beta sớm. Nó cài đặt, chạy và vượt qua lint Windows-footgun của chúng tôi, nhưng nó chưa được thử nghiệm trên quy mô mà các đường dẫn Linux/macOS/WSL2 của chúng tôi có. Mong đợi các khía cạnh thô - đặc biệt là xung quanh việc xử lý quy trình con, các đường dẫn lạ và đầu ra bảng điều khiển không phải ASCII. Vui lòng tập tin vấn đề với các bước kiểm tra lại khi bạn chạm vào thứ gì đó. Nếu bạn muốn có một thiết lập đã được thử nghiệm ngay hôm nay, hãy sử dụng trình cài đặt Linux/macOS trong WSL2. :::
Hermes chạy nguyên bản trên Windows 10 và Windows 11 — không WSL, không Cygwin, không Docker. Trang này cung cấp thông tin chi tiết: những gì hoạt động tự nhiên, chỉ dành cho WSL, những gì trình cài đặt thực sự làm và các nút dành riêng cho Windows mà bạn có thể cần chạm vào.
Nếu bạn chỉ muốn cài đặt, một dòng trên trang đích hoặc Trang cài đặt là tất cả những gì bạn cần. Hãy quay lại đây khi có điều gì đó làm bạn ngạc nhiên.
Nếu bạn thích môi trường POSIX thực sự (dành cho thiết bị đầu cuối nhúng của bảng thông tin, ngữ nghĩa fork, trình theo dõi tệp kiểu Linux, v.v.), hãy xem Hướng dẫn Windows (WSL2). Cả hai cùng tồn tại một cách rõ ràng: dữ liệu gốc nằm trong %LOCALAPPDATA%\hermes, dữ liệu WSL nằm trong ~/.hermes.
Cài đặt nhanh
Mở PowerShell (hoặc Windows Terminal) và chạy:
irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 | iex
Không cần quyền quản trị. Trình cài đặt đi tới %LOCALAPPDATA%\hermes\ và thêm hermes vào ĐƯỜNG DẪNNgười dùng của bạn — mở một thiết bị đầu cuối mới sau khi quá trình cài đặt hoàn tất.
Tùy chọn trình cài đặt (yêu cầu biểu mẫu scriptblock để truyền tham số):
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1))) -NoVenv -SkipSetup -Branch main
| Parameter | Default | Purpose |
|---|---|---|
-Branch | main | Clone a specific branch (useful for testing PRs) |
-NoVenv | off | Skip venv creation (advanced — you manage Python yourself) |
-SkipSetup | off | Skip the post-install hermes setup wizard |
-HermesHome | %LOCALAPPDATA%\hermes | Override data directory |
-InstallDir | %LOCALAPPDATA%\hermes\hermes-agent | Override code location |
Trình cài đặt thực sự làm gì
Từ trên xuống dưới, theo thứ tự:
- Bootstraps
uv— Trình quản lý Python nhanh của Astral. Đã cài đặt vào%USERPROFILE%\.local\bin. - Cài đặt Python 3.11 qua
uv. Không cần Python hiện có. - Cài đặt Node.js 22 (winget nếu có, nếu không thì tarball Node di động được giải nén trong
%LOCALAPPDATA%\hermes\node). Được sử dụng cho công cụ trình duyệt và cầu nối WhatsApp. - Cài đặt Git di động — nếu
gitđã có trên PATH thì trình cài đặt sẽ sử dụng nó; nếu không, nó sẽ tải xuống PortableGit được cắt bớt, độc lập (~45 MB, từ bản phát hànhgit-for-windowschính thức) xuống%LOCALAPPDATA%\hermes\git. Không có quản trị viên, không có sổ đăng ký trình cài đặt Windows, không can thiệp vào bất kỳ thứ gì khác trên hộp. - Sao chép repo thành
%LOCALAPPDATA%\hermes\hermes-agentvà tạo một virtualenv bên trong nó. uv pip install— thử.[all]trước tiên, quay lại các tập hợp nhỏ hơn dần dần ([messaging,dashboard,ext]→[messaging]→.) nếugit+httpsdep hoạt động trên GitHub có giới hạn tốc độ. Ngăn chặn chế độ lỗi "một mảnh khiến bạn phải cài đặt trần".- SDK nhắn tin tự động cài đặt đã tắt
.env— nếu cóTELEGRAM_BOT_TOKEN/DISCORD_BOT_TOKEN/SLACK_BOT_TOKEN/SLACK_APP_TOKEN/WHATSAPP_ENABLED, hãy chạypython -m Ensurepip --upgradevà các lệnh gọipip installđược nhắm mục tiêu để mỗi lệnh gọi này SDK của nền tảng thực sự có thể nhập được. - Đặt
HERMES_GIT_BASH_PATHthànhbash.exeđã giải quyết để Hermes tìm thấy nó một cách xác định trong vỏ mới. - Thêm
%LOCALAPPDATA%\hermes\binvào PATH của người dùng — hiển thị lệnhhermessau khi bạn mở một thiết bị đầu cuối mới. - Chạy
hermes setup— trình hướng dẫn chạy lần đầu thông thường (kiểu máy, nhà cung cấp, bộ công cụ). Bỏ qua bằng-SkipSetup.
Ma trận tính năng
Mọi thứ ngoại trừ ngăn thiết bị đầu cuối nhúng của bảng điều khiển đều chạy tự nhiên trên Windows.
| Feature | Native Windows | WSL2 |
|---|---|---|
CLI (hermes chat, hermes setup, hermes gateway, …) | ✓ | ✓ |
Interactive TUI (hermes --tui) | ✓ | ✓ |
| Messaging gateway (Telegram, Discord, Slack, WhatsApp, 15+ platforms) | ✓ | ✓ |
| Cron scheduler | ✓ | ✓ |
| Browser tool (Chromium via Node) | ✓ | ✓ |
| MCP servers (stdio and HTTP) | ✓ | ✓ |
| Local Ollama / LM Studio / llama-server | ✓ | ✓ (via WSL networking) |
| Web dashboard (sessions, jobs, metrics, config) | ✓ | ✓ |
Dashboard /chat embedded terminal pane | ✗ (needs POSIX PTY) | ✓ |
| Auto-start at login | ✓ (schtasks) | ✓ (systemd) |
Tab /chat của trang tổng quan nhúng một thiết bị đầu cuối thực thông qua POSIX PTY (ptyprocess). Windows gốc không có nguyên thủy tương đương; pywinpty / Windows ConPTY của Python sẽ hoạt động nhưng là một triển khai riêng biệt - coi như công việc trong tương lai. Phần còn lại của trang tổng quan hoạt động nguyên bản — chỉ một tab đó hiển thị biểu ngữ "sử dụng WSL2 cho mục này".
Cách Hermes chạy lệnh shell trên Windows
Công cụ đầu cuối của Hermes chạy lệnh thông qua Git Bash, chiến lược tương tự mà Claude Code sử dụng. Điều này giúp vượt qua khoảng cách POSIX-so với Windows mà không cần viết lại mọi công cụ.
Thứ tự giải quyết cho bash.exe:
- Biến môi trường
HERMES_GIT_BASH_PATHnếu được đặt. %LOCALAPPDATA%\hermes\git\usr\bin\bash.exe(PortableGit do trình cài đặt quản lý).%LOCALAPPDATA%\hermes\git\bin\bash.exe(bố cục Git-for-Windows cũ hơn).- Cài đặt hệ thống Git-for-Windows (
%ProgramFiles%\Git\bin\bash.exe, v.v.). - MSYS2, Cygwin hoặc bất kỳ
bash.exenào trên PATH là phương sách cuối cùng.
Trình cài đặt đặt HERMES_GIT_BASH_PATH một cách rõ ràng để các phiên PowerShell mới không cần phải khám phá lại. Ghi đè nó nếu bạn muốn Hermes sử dụng một bash cụ thể - ví dụ: Git Bash hệ thống của bạn hoặc bash được lưu trữ trên WSL thông qua một liên kết tượng trưng.
Cạm bẫy: Bố cục của MinGit khác với trình cài đặt Git-for-Windows đầy đủ — bash tồn tại dưới usr\bin\bash.exe, không phải bin\bash.exe. Hermes kiểm tra cả hai. Nếu bạn đang giải nén zip MinGit theo cách thủ công, hãy đảm bảo bạn chọn biến thể non-busybox (MinGit-*-64-bit.zip, không phải MinGit-*-busybox*.zip) — busybox xây dựng tàu ash thay vì bash và hầu hết các coreutils đều bị thiếu.
Bảng điều khiển UTF-8 trên Windows
Stdio mặc định của Python trên Windows sử dụng trang mã hoạt động của bảng điều khiển (thường là cp1252 hoặc cp437). Biểu ngữ, danh sách lệnh gạch chéo, nguồn cấp công cụ, bảng Rich và mô tả kỹ năng của Hermes đều chứa Unicode. Nếu không có sự can thiệp, bất kỳ lỗi nào trong số đó sẽ gặp sự cố với UnicodeEncodeError: codec 'charmap' không thể mã hóa ký tự….
Bản sửa lỗi nằm trong hermes_cli/stdio.py::configure_windows_stdio(), được gọi sớm ở mọi điểm vào (cli.py::main, hermes_cli/main.py::main, gateway/run.py::main). Nó:
- Lật trang mã bảng điều khiển sang CP_UTF8 (65001) thông qua
kernel32.SetConsoleCP/SetConsoleOutputCP. - Định cấu hình lại
sys.stdout/sys.stderr/sys.stdinthành UTF-8 vớierrors='replace'. - Đặt
PYTHONIOENCODING=utf-8vàPYTHONUTF8=1(thông quasetdefault, vì vậy các giá trị người dùng rõ ràng sẽ giành chiến thắng) để các quy trình con Python con kế thừa UTF-8. - Đặt
EDITOR=notepadnếu cảEDITORvàVISUALđều không được đặt (xem phần Trình soạn thảo bên dưới).
Bình thường. Không hoạt động trên máy không phải Windows.
Chọn không tham gia: HERMES_DISABLE_WINDOWS_UTF8=1 trong môi trường quay trở lại đường dẫn stdio cp1252 cũ. Hữu ích cho việc chia đôi một lỗi mã hóa; không chắc là cài đặt đúng trong hoạt động bình thường.
Trình soạn thảo (Ctrl-X Ctrl-E, /edit)
Trước #21561, việc nhấn Ctrl-X Ctrl-E hoặc gõ /edit một cách im lặng không làm gì trên Windows. nhắc_toolkit có danh sách dự phòng tuyệt đối POSIX được mã hóa cứng (/usr/bin/nano, /usr/bin/pico, /usr/bin/vi, ...) không bao giờ giải quyết được trên Windows — ngay cả khi đã cài đặt Git cho Windows đầy đủ.
Miếng chêm stdio Windows của Hermes hiện đặt EDITOR=notepad làm mặc định. Notepad đi kèm với mọi bản cài đặt Windows và hoạt động như một trình chỉnh sửa chặn — subprocess.call(["notepad", file]) chặn cho đến khi cửa sổ đóng lại.
Phần ghi đè của người dùng vẫn thắng (chúng được kiểm tra trước cài đặt mặc định):
| Editor | PowerShell command |
|---|---|
| VS Code | $env:EDITOR = "code --wait" |
| Notepad++ | $env:EDITOR = "'C:\Program Files\Notepad++\notepad++.exe' -multiInst -nosession" |
| Neovim | $env:EDITOR = "nvim" |
| Helix | $env:EDITOR = "hx" |
Cờ --wait trên VS Code rất quan trọng — nếu không có nó, trình soạn thảo sẽ quay lại ngay lập tức và Hermes nhận lại bộ đệm trống.
Đặt nó vĩnh viễn trong hồ sơ PowerShell của bạn:
# In $PROFILE
$env:EDITOR = "code --wait"
Hoặc dưới dạng biến môi trường Người dùng trong Cài đặt hệ thống để mọi shell mới sẽ chọn nó.
Ctrl+Enter để xuống dòng trong CLI
Windows Terminal chuyển Ctrl+Enter dưới dạng một chuỗi phím chuyên dụng. Hermes liên kết nó với "chèn dòng mới" để bạn có thể soạn lời nhắc nhiều dòng trong CLI mà không cần quay lại Esc-then-Enter. Hoạt động trong Windows Terminal, thiết bị đầu cuối tích hợp VS Code và bất kỳ máy chủ bảng điều khiển Windows hiện đại nào tôn trọng trình tự thoát VT.
Trên bảng điều khiển cmd.exe cũ, Ctrl+Enter thu gọn về Enter — thay vào đó hãy sử dụng Esc Enter hoặc nâng cấp lên Windows Terminal (nó miễn phí và được cài đặt theo mặc định trên Windows 11).
Chạy cổng khi đăng nhập Windows
cài đặt cổng hermes trên Windows sử dụng Tác vụ theo lịch với dự phòng thư mục Khởi động — không cần quản trị viên.
Cài đặt
hermes gateway install
Điều gì xảy ra dưới mui xe:
schtasks /Create /SC ONLOGON /RL LIMITED /TN HermesGateway— đăng ký một tác vụ chạy khi bạn đăng nhập với các quyền tiêu chuẩn (không nâng cao). Không có lời nhắc UAC.- Nếu schtask bị chặn bởi chính sách nhóm, hãy quay lại viết lối tắt
start /min cmd.exe /d /c <wrapper>vào%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup. Hiệu ứng tương tự, hơi thô hơn. - Tạo ra cổng được tách ra thông qua
pythonw.exe— không phảipython.exe.pythonw.exekhông có bảng điều khiển nào được đính kèm, điều này giúp nó miễn nhiễm với các chương trình phát sóngCTRL_C_EVENTtừ các tiến trình anh em (một vấn đề thực sự thường giết chết cổng khi bạn Ctrl+C bất kỳ thứ gì trong cùng một nhóm tiến trình).
Cờ được sử dụng khi sinh sản: DETACHED_PROCESS | TẠO_NEW_PROCESS_GROUP | TẠO_NO_WINDOW | TẠO_BREAKAWAY_FROM_JOB.
Quản lý
hermes gateway status # Merged view: schtasks + Startup folder + running PID
hermes gateway start # Starts the scheduled task now
hermes gateway stop # Graceful SIGTERM equivalent (TerminateProcess via psutil)
hermes gateway restart
hermes gateway uninstall # Removes schtasks entry, Startup shortcut, pid file
trạng thái cổng Hermes là bình thường — hãy gọi nó hàng nghìn lần liên tiếp và nó sẽ không bao giờ vô tình giết chết cổng. (Trước PR #21561, điều đó đã âm thầm thực hiện, thông qua os.kill(pid, 0) va chạm với CTRL_C_EVENT ở cấp độ C — hãy xem "nội bộ quản lý quy trình" bên dưới nếu bạn quan tâm đến câu chuyện.)
Tại sao không phải là Dịch vụ Windows?
Các dịch vụ yêu cầu quyền quản trị viên để cài đặt và gắn vòng đời của cổng vào việc khởi động máy chứ không phải thông tin đăng nhập của người dùng. Người dùng Hermes điển hình muốn: đăng nhập → cổng khả dụng, đăng xuất → cổng biến mất. Nhiệm vụ theo lịch trình thực hiện chính xác điều đó mà không cần nâng cao. Nếu bạn thực sự muốn một dịch vụ, hãy sử dụng nssm hoặc sc create theo cách thủ công — nhưng có thể bạn sẽ không làm như vậy.
Bố cục dữ liệu
| Path | Contents |
|---|---|
%LOCALAPPDATA%\hermes\hermes-agent\ | Git checkout + venv. Safe to Remove-Item -Recurse and reinstall. |
%LOCALAPPDATA%\hermes\git\ | PortableGit (only if the installer provisioned it). |
%LOCALAPPDATA%\hermes\node\ | Portable Node.js (only if the installer provisioned it). |
%LOCALAPPDATA%\hermes\bin\ | hermes.cmd shim, added to User PATH. |
%USERPROFILE%\.hermes\ | Your config, auth, skills, sessions, logs. Survives reinstalls. |
Việc phân chia là có chủ ý: %LOCALAPPDATA%\hermes là cơ sở hạ tầng dùng một lần (bạn có thể loại bỏ nó và một lớp lót sẽ khôi phục nó). %USERPROFILE%\.hermes là dữ liệu của bạn — cấu hình, bộ nhớ, kỹ năng, lịch sử phiên — và có hình dạng giống hệt với bản cài đặt Linux. Phản chiếu nó giữa các máy móc và Hermes của bạn sẽ di chuyển cùng bạn.
Ghi đè HERMES_HOME: đặt biến môi trường để trỏ đến một thư mục dữ liệu khác. Hoạt động tương tự như trên Linux.
Công cụ trình duyệt
Công cụ trình duyệt sử dụng agent-browser (trình trợ giúp Node) để điều khiển Chrome. Trên Windows:
- Trình cài đặt đặt
agent-browsertrên PATH thông qua npm. shutil.which("agent-browser", path=...)tự động chọn shim.cmd—CreateProcessWkhông thể thực thi shebang không có phần mở rộng, vì vậy Hermes luôn phân giải thành trình bao bọc.CMD. Đừng gọi tập lệnh shebang theo cách thủ công; luôn đi qua.cmd.- Playwright Chrome được cài đặt tự động trong lần chạy đầu tiên (
npx playwright install crom). Nếu quá trình cài đặt không thành công,hermes doctorsẽ đưa ra gợi ý khắc phục.
Chạy Hermes trên Windows — những lưu ý thực tế
PATH sau khi cài đặt
Trình cài đặt thêm %LOCALAPPDATA%\hermes\bin vào User PATH của bạn thông qua [Environment]::SetEnvironmentVariable. Các thiết bị đầu cuối hiện tại không nhận được điều này - hãy mở cửa sổ PowerShell mới (hoặc tab Windows Terminal) sau khi cài đặt. Đóng và mở lại, đừng $env:PATH += … bằng tay trừ khi bạn biết mình đang làm gì.
Xác minh:
Get-Command hermes # should print C:\Users\<you>\AppData\Local\hermes\bin\hermes.cmd
hermes --version
Biến môi trường
Hermes tôn trọng cả hai biến môi trường $env:X (phạm vi quy trình) và Người dùng (vĩnh viễn, được đặt trong Thuộc tính hệ thống → Biến môi trường). Đặt khóa API trong %USERPROFILE%\.hermes\.env là đường dẫn thông thường - giống như Linux:
OPENROUTER_API_KEY=sk-or-...
TELEGRAM_BOT_TOKEN=...
Đừng đặt bí mật vào các biến môi trường Người dùng trừ khi bạn đặc biệt muốn mọi quy trình Windows nhìn thấy chúng (đó không phải là điều bạn muốn).
Các biến env dành riêng cho Windows
Những điều này chỉ ảnh hưởng đến cài đặt Windows gốc:
| Variable | Effect |
|---|---|
HERMES_GIT_BASH_PATH | Override bash.exe discovery. Point at any bash — full Git-for-Windows, WSL bash via symlink, MSYS2, Cygwin. The installer sets this automatically. |
HERMES_DISABLE_WINDOWS_UTF8 | Set to 1 to disable the UTF-8 stdio shim and fall back to the locale code page. Useful for bisecting an encoding bug. |
EDITOR / VISUAL | Your editor for /edit and Ctrl-X Ctrl-E. Hermes defaults to notepad if both are unset. |
Gỡ cài đặt
Từ PowerShell:
hermes uninstall
Đó là đường dẫn rõ ràng — xóa mục nhập schtasks, lối tắt thư mục Khởi động, hermes.cmd shim, xóa %LOCALAPPDATA%\hermes\hermes-agent\ và cắt bớt PATH của người dùng. Nó chỉ để lại %USERPROFILE%\.hermes\ (cấu hình, xác thực, kỹ năng, phiên, nhật ký của bạn) trong trường hợp bạn cài đặt lại.
Để hạt nhân hóa mọi thứ:
hermes uninstall
Remove-Item -Recurse -Force "$env:USERPROFILE\.hermes"
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\hermes"
Lệnh phụ CLI hermes uninstall cũng xử lý trường hợp mục schtasks được đăng ký dưới một tên tác vụ khác (cài đặt cũ hơn) — nó tìm kiếm theo đường dẫn cài đặt thay vì theo tên tác vụ được mã hóa cứng.
Nội bộ quản lý quy trình
Đây là tài liệu cơ bản - bỏ qua trừ khi bạn đang gỡ lỗi một điều kỳ lạ "nó đang tự giết chết".
Trên Linux và macOS, thành ngữ POSIX os.kill(pid, 0) là một kiểm tra quyền không hoạt động: "PID này có hoạt động không và tôi có thể báo hiệu cho nó không?" Trên Windows, os.kill của Python ánh xạ sig=0 tới CTRL_C_EVENT — chúng va chạm ở giá trị số nguyên 0 — và định tuyến nó thông qua GenerateConsoleCtrlEvent(0, pid), phát sóng Ctrl+C tới toàn bộ nhóm quy trình bảng điều khiển chứa PID mục tiêu. Đó là bpo-14484, mở từ năm 2012. Nó sẽ không được sửa vì việc thay đổi nó sẽ phá vỡ các tập lệnh phụ thuộc vào hành vi hiện tại.
Hậu quả: bất kỳ đường dẫn mã nào có nội dung "kiểm tra xem PID này có còn hoạt động hay không" thông qua os.kill(pid, 0) trên Windows đều âm thầm tiêu diệt mục tiêu. Hermes đã di chuyển mọi trang web như vậy (14 trên 11 tệp) sang gateway.status._pid_exists(), sử dụng psutil.pid_exists() (lần lượt sử dụng OpenProcess + GetExitCodeProcess trên Windows - không có tín hiệu). Nếu bạn đang viết plugin hoặc bản vá, hãy sử dụng trực tiếp psutil.pid_exists() hoặc gateway.status._pid_exists() — không bao giờ sử dụng os.kill(pid, 0).
scripts/check-windows-footguns.py thực thi điều này trong CI: mọi lệnh gọi os.kill(pid, 0) mới đều không kiểm tra được Windows footguns (chặn) trừ khi dòng mang dấu # windows-footgun: ok — <reason>.
Những cạm bẫy thường gặp
hermes: không tìm thấy lệnh ngay sau khi cài đặt.
Mở một cửa sổ PowerShell mới. Trình cài đặt đã thêm %LOCALAPPDATA%\hermes\bin vào PATH của người dùng, nhưng các shell hiện có cần phải được khởi động lại để tiếp tục. Trong lúc chờ đợi, bạn có thể chạy & "$env:LOCALAPPDATA\hermes\bin\hermes.cmd".
WinError 193: %1 không phải là ứng dụng Win32 hợp lệ khi chạy một công cụ.
Bạn đã thực hiện một lời gọi shebang-script bỏ qua miếng chêm .cmd. Hermes giải quyết các lệnh thông qua shutil.which(cmd, path=local_bin) vì vậy PATHEXT chọn .CMD — thay vào đó, nếu bạn đang gọi công cụ thông qua một đường dẫn được mã hóa cứng, hãy chuyển sang biến thể .cmd (ví dụ: npx.cmd, không phải npx).
[scriptblock]::Create(...) không thành công với Biểu thức gán không hợp lệ.
Bản tải xuống install.ps1 của bạn đã nhận được BOM UTF-8. irm | biểu mẫu iex tự động loại bỏ BOM; [scriptblock]::Create((irm ...)) thì không. Chạy lại với lệnh irm | iex hoặc tải xuống tập lệnh theo cách thủ công và lưu nó mà không cần BOM thông qua [IO.File]::WriteAllText($path, $text, (New-Object Text.UTF8Encoding $false)).
Cổng sẽ không tiếp tục chạy sau khi khởi động lại.
Kiểm tra trạng thái cổng hermes — nó hợp nhất mục nhập schtasks, lối tắt thư mục Khởi động (nếu được sử dụng) và PID trực tiếp. Nếu schtasks đã được đăng ký nhưng không chạy, chính sách nhóm có thể đang chặn trình kích hoạt ONLOGON. Chạy schtasks /Query /TN HermesGateway /V /FO LIST để xem lý do lỗi của tác vụ hoặc quay lại đường dẫn thư mục Khởi động bằng cách gỡ cài đặt và cài đặt lại với HERMES_GATEWAY_FORCE_STARTUP=1.
/edit vẫn không làm gì sau khi cài đặt $env:EDITOR.
Bạn chỉ đặt nó trong quy trình hiện tại; đóng và mở lại shell hoặc đặt nó ở phạm vi Người dùng trong Thuộc tính hệ thống → Biến môi trường. Xác minh bằng echo $env:EDITOR trong cửa sổ PowerShell mới.
Công cụ trình duyệt khởi chạy nhưng công cụ đã hết thời gian chờ.
Chrome được cài đặt tự động trong lần chạy đầu tiên. Nếu quá trình cài đặt không thành công (tốc độ giới hạn GitHub, Playwright CDN bị trục trặc), hãy chạy hermes doctor — nó sẽ hiển thị phần Crom bị thiếu và in lệnh npx playwright install crom chính xác để khắc phục.
trình duyệt tác nhân không thành công với lỗi phiên bản Node kỳ lạ.
Trình cài đặt cung cấp Nút 22 tại %LOCALAPPDATA%\hermes\node nhưng PATH của bạn trước tiên có thể có Nút 18 hệ thống cũ hơn. Di chuyển thư mục nút của Hermes sớm hơn trên PATH hoặc xóa cài đặt hệ thống nếu bạn không sử dụng Nút ở nơi khác.
Ký tự tiếng Trung / tiếng Nhật / tiếng Ả Rập hiển thị dưới dạng ? trong CLI.
Miếng chêm stdio UTF-8 không kích hoạt. Kiểm tra xem HERMES_DISABLE_WINDOWS_UTF8 KHÔNG được đặt chưa (Get-ChildItem env:HERMES_DISABLE_WINDOWS_UTF8). Nếu nó trống và bạn vẫn thấy ?, thì máy chủ bảng điều khiển (cmd.exe rất cũ) có thể không hỗ trợ UTF-8 chút nào — hãy chuyển sang Windows Terminal.
Cổng không thể gửi ảnh Telegram — "BadRequest: tải trọng chứa các ký tự không hợp lệ".
Điều này không liên quan đến Windows nhưng đôi khi xuất hiện đầu tiên ở đó. Thông thường, điều đó có nghĩa là đường dẫn tệp của bạn chứa dấu gạch chéo ngược không thoát trong phần nội dung JSON. Telegram sẽ nhận được các đường dẫn mà Hermes bình thường hóa, chứ không phải các đường dẫn thô của Windows — nếu bạn thấy điều này bên trong một plugin tùy chỉnh, hãy đảm bảo rằng bạn đang chuyển qua đường dẫn do Hermes cung cấp chứ không phải str(Path(...)) từ đầu vào của người dùng.
Sự kỳ lạ về mã hóa "Hoạt động trên máy khác của tôi" sau git pull.
Nếu bạn chỉnh sửa cấu hình Hermes hoặc một kỹ năng trên Windows bằng trình chỉnh sửa không phải UTF-8 (Notepad trên các phiên bản Windows cũ hơn, một số IME Trung Quốc), tệp có thể đã được lưu bằng BOM. Hermes chấp nhận utf-8-sig trên hầu hết các lần đọc cấu hình, nhưng BOM bên trong vô hướng YAML được gấp (description: >) âm thầm phá vỡ phân tích cú pháp YAML. Lưu lại tệp dưới dạng UTF-8 đơn giản không có BOM.
Đi đâu tiếp theo
- Installation — trang cài đặt đầy đủ, bao gồm Linux/macOS/WSL2/Termux.
- Hướng dẫn Windows (WSL2) — nếu bạn muốn ngữ nghĩa POSIX hoặc khung thiết bị đầu cuối bảng thông tin.
- CLI Reference — mọi lệnh phụ
hermes. - FAQ — các câu hỏi phổ biến không dành riêng cho Windows.
- Cổng nhắn tin — chạy Telegram/Discord/Slack trên Windows.