New request
#2364: Running Hermes Agent on ARM64 mobile via AVF — real-world performance data point
We'll provision a sandbox, run an agent against the issue, and open a draft PR. You can pull the branch and iterate from there.
Title: Running Hermes Agent on ARM64 mobile via AVF — real-world performance data point
Description:
Hi Hermes team,
I've been running Hermes Agent on an unconventional setup — a mid-range Android phone via AVF (Android Virtualization Framework) — and wanted to share real-world performance data that might be useful for ARM64 optimization and mobile use cases.
Hardware used:
- Device: Xiaomi Redmi Note 13 Pro 4G (model 23117RA68G)
- SoC: MediaTek Helio G99-Ultra (6nm, 8-core: 2x Cortex-A76 @ 2.2GHz + 6x Cortex-A55 @ 2.0GHz)
- RAM: 8 GB physical (no memory extension active)
- Storage: 256 GB
- OS: Xiaomi HyperOS 3.0.2.0 (Android 16)
Execution environment:
- Hermes runs inside a Debian 12 (Bookworm) VM via AVF
- VM is allocated 3.8 GiB RAM (out of 8 GB physical)
- 8 CPU cores visible to the VM
- Kernel:
6.1.0-34-avf-arm64 - Disk: 46 GB virtual (29 GB free)
- Memory at rest: ~694 MB used (82% available)
- Swap: 981 MiB (unused)
Hermes versions:
- Agent CLI: v0.13.0 (2026.5.7)
- WebUI: stage-362 (commit 352064e)
Setup details:
- All inference is cloud-based (NVIDIA NIM free tier + OpenCode Zen free tier)
- Accessed via Chrome on Android at
localhost:8787(standard tab, not PWA) - Performance mode: OFF
- Battery optimization: OFF for Hermes (to prevent background killing)
- Custom persistence script prevents Android from terminating terminal threads
- Connection: 4G Plus mobile data
Performance findings:
| Provider | Peak speed | Notes |
|---|---|---|
| OpenCode Zen (DeepSeek Free) | 819 t/s 🆠| Peak observed under normal 4G+ conditions |
| Nous (DeepSeek V4 Flash) | — | No tok/s metric exposed by Nous provider |
Benchmark: Nous DeepSeek V4 Flash vs OpenCode Zen DeepSeek Free (May 16, 2026):
| Test | Nous (v4 Flash) | OpenCode Zen (Free) | Difference |
|---|---|---|---|
| Letter counting (reasoning) | 51.0s | 35.4s | 31% faster |
| Fibonacci DP (code generation) | 45.8s | 38.1s | 17% faster |
| Average | 48.4s | 36.8s | ~24% faster |
Both models produced correct results. OpenCode Zen Free was consistently faster.
Thermal behavior (Helio G99-Ultra):
| Condition | Temperature |
|---|---|
| Normal Hermes usage | ✅ Cool — no heat |
| Charging + Wi-Fi hotspot active | 🔥 Warm (external load, not AI-related) |
| Charging alone or hotspot alone | ✅ Normal |
The SoC handles AI inference streaming without overheating. Heat only appears under combined external loads (charging + hotspot).
Context length degradation:
- Short/medium conversations: Stable — no speed loss
- Extremely long contexts: ~30% estimated degradation
Hermes footprint:
- Agent install: 1.3 GB
- WebUI: 220 MB
- Config/sessions/skills/logs: 199 MB
- Total: ~1.7 GB
What works well:
- ARM64 architecture is fully compatible
- AVF provides stable virtualization for the Debian environment
- 3.8 GiB is sufficient RAM for Hermes + background processes
- Chrome renders the WebUI smoothly even at +800 t/s streaming
- The mid-range Helio G99-Ultra handles inference rendering without lag
Known limitations / observations:
- Model cache confusion —
models_cache.jsonhas a 24h TTL and persists on disk across restarts. Adding new models to_PROVIDER_MODELSrequires manually deleting the cache file (rm -f ~/.hermes/webui/models_cache.json) — the UI won't pick up changes otherwise until the TTL expires. - PWA / native app gap — on mobile, switching to another app (gallery, WhatsApp, browser) causes the Chrome tab to reload, interrupting the session. The session recovers (Hermes persists state), but it disrupts workflow. A robust PWA or native wrapper would solve this.
- No ARM64 pre-built wheels — some dependencies compile from source on first install, which adds setup time on the phone.
Questions for the team:
- Are there any known plans for ARM64-specific optimizations or pre-built wheels?
- Has anyone else tested Hermes via AVF or similar mobile virtualization?
- Would a PWA manifest be accepted upstream to improve mobile UX?
Happy to provide more data, run specific tests, or help with ARM64 compatibility testing. Running Hermes on a phone feels like the future — this thing works surprisingly well on mid-range mobile hardware.
Keyos/
User-contributed ARM64 mobile performance data point to be incorporated into existing documentation and examples.
- docs/mobile.md
- docs/performance.md
- README.md