Hermes USB Portable runs natively on Windows, macOS, and Linux across both x86_64 and ARM64 CPU architectures. Because each platform requires its own Python, Node.js, and toolchain binaries, the launcher automatically detects the current operating system and architecture at startup, then downloads and caches the correct runtimes under a per-platform subfolder insideDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/techjarves/Hermes-USB-Portable/llms.txt
Use this file to discover all available pages before exploring further.
.cache/runtimes/. This means a single portable folder can serve multiple operating systems without any manual configuration.
Support Matrix
| Operating System | CPU Architecture | Status | Notes |
|---|---|---|---|
| Windows 10 / 11 | x86_64 | ✅ Supported | Default PowerShell ExecutionPolicy bypassed for script |
| macOS 13+ | Apple Silicon (ARM64) | ✅ Supported | Native M1/M2/M3 execution |
| macOS 13+ | Intel (x86_64) | ✅ Supported | Legacy Intel Mac support |
| Linux (Ubuntu/Arch/Debian) | x86_64 | ✅ Supported | Fully self-contained |
| Linux (Fedora/CentOS) | ARM64 | ✅ Supported | Supports SBCs and ARM servers |
Multi-Platform USB Usage
When you use the same portable folder or USB drive across multiple operating systems, each platform downloads its own runtime binaries into a separate subdirectory:data/) is shared across all platforms — your conversations, memories, API keys, and skills are always available regardless of which computer you plug into.
Because every platform gets its own runtime cache, using the same USB drive across Windows, macOS, and Linux will multiply your storage usage. Each platform cache is approximately 800 MB–1.5 GB.
Storage Requirements
| Use Case | Recommended Free Space |
|---|---|
| One platform only | 2 GB minimum, 4 GB recommended |
| Windows + one Unix platform | 4–6 GB recommended |
| Windows + macOS + Linux runtimes | 8 GB+ recommended |
| Heavy long-term use with many sessions/backups | 16–32 GB recommended |
Component Breakdown
| Component | Approximate Size | Notes |
|---|---|---|
| Launchers & scripts | < 1 MB | Metadata and setup automation |
| Windows x64 runtime | ~800 MB | Python, Node.js, uv, Git, ripgrep, venv, and downloaded archives |
| Playwright / local app cache | ~400–500 MB | Chromium browser cache used by Hermes web tools |
| Hermes source code | ~100 MB | Downloaded Hermes Agent source tree |
| User data | ~10 MB → 2 GB+ | Grows as memory, logs, sessions, skills, and backups accumulate |
Platform-Specific Notes
Windows — PowerShell ExecutionPolicy and Defender
Windows — PowerShell ExecutionPolicy and Defender
PowerShell ExecutionPolicyThis flag applies only to that single PowerShell session and does not modify your system’s global execution policy.Windows Defender / SmartScreen false positiveWindows SmartScreen may flag
launch.bat invokes the setup script with the -ExecutionPolicy Bypass flag so PowerShell can run the setup-windows.ps1 file without requiring any permanent system policy change:launch.bat or setup-windows.ps1 because they download files from remote sources (GitHub and Node.js servers) at first run. This is a false positive.- Click More info on the SmartScreen dialog, then click Run anyway.
- All scripts are fully open-source and human-readable inside the
scripts/directory.
macOS — Developer Verification and Finder Launch
macOS — Developer Verification and Finder Launch
Developer verification promptWhen you first run The setup script (macOS recognizes
launch.sh (or launch.command) on macOS, Gatekeeper may display: “cannot be opened because the developer cannot be verified.”To work around this:- Right-click the file, choose Open With → Terminal, then click Open in the dialog.
- Or open Terminal and strip the quarantine attribute from the entire portable folder:
setup-unix.sh) also runs this command automatically on all downloaded runtime binaries during first-run setup.Renaming to .command for Finder double-clickmacOS does not execute .sh files by double-clicking in Finder. To enable double-click launching, rename the file:.command files and opens them in Terminal automatically.Linux — exFAT Drives and Virtual Environment Location
Linux — exFAT Drives and Virtual Environment Location
exFAT drive limitationsPython virtual environments require hardlinks, which the exFAT filesystem does not support. If your portable folder lives on an exFAT-formatted USB drive, the launcher automatically creates the virtual environment in A unique ID derived from the runtime directory path is used so multiple Hermes drives can coexist on the same machine without conflict.Venv rebuild after rebootBecause
/tmp instead:/tmp is typically cleared on reboot, the venv stored there will be missing after a system restart. The launcher detects this automatically and rebuilds the venv from the cached packages on the drive. This rebuild is fast (usually under a minute) because all package archives remain cached in .cache/runtimes/.Playwright browser sandboxingSome Linux distributions restrict Chromium from starting inside external or removable directories. If Playwright or web-tool features fail, copy the hermes-portable folder to a local SSD path and run from there.Architecture Detection
The launcher automatically determines the correct runtime directory to use at startup without any user input. On macOS and Linux,launch.sh calls uname -s and uname -m to identify the operating system and CPU architecture:
launch.bat hard-codes the runtime directory to windows-x64 since the batch launcher only runs on Windows x86_64 hosts:
RUNTIME_DIR path is then used for all subsequent environment variable setup, ensuring the correct Python, Node.js, and uv binaries are loaded into PATH for that session.