

Terms "JEV" and "Laya" are banned
If you are using something similar in your setup please refer to it as pre-deterministic routing or something similar. You get the idea.
Too much astro-turfing going on for both of those right now.
Nous Research on X: "Hermes Desktop now sets up local models in one click. It automatically reads your hardware, picks the best model for you, then downloads it and configures the runtime." / X
The new easy setup feature is presented automatically upon downloading the app, or you can access it within the Providers section in Settings.
160 Hermes Agent PRs merged in the last 24 hours — through September 2, 2026, 1:30 PM ET
GitHub merged 160 pull requests in NousResearch/hermes-agent during the 24 hours ending September 2, 2026, 1:30 PM ET. I grouped them by area below and sorted each section newest to oldest by merge time.
Models, providers & routing
- #101456 feat(providers): an ACP provider can ship out of tree, and installed provider plugins are discovered (#74743 part 2, salvage #101346)
- #101450 feat(models): Gemini 3.8 Flash now pickable on Nous Portal + OpenRouter
- #100351 fix(copilot-acp): show provider in pickers, correct sign-in command, honest auth status
- #101288 feat(tts): read-aloud / conversation-mode toggles warm and release plugin and command TTS providers
- #101286 fix(compression): provider-proven context overflow gets one real compaction attempt during the failure cooldown (#100661)
- #101281 fix(providers): one Alibaba key no longer lights both intl and CN picker rows (#101122, salvage #101163)
- #100938 Dashboard auth gate answers an opaque/non-JWT bearer with 401, not 503 'Auth provider unreachable' (refs #94558)
- #100924 fix(agent): GLM on Ollama Cloud no longer falsely truncated (#72316, #98406)
- #100959 feat(image_gen): add Meta Model API (muse-image) provider plugin (salvages #97283)
- #97354 fix(nous): honour the org model policy in the model pickers
- #100586 fix(models): route model aliases and configured vendor/model prefixes to their providers (#87189 salvage of #87210 + #87246)
- #100577 feat(models): claude-fable-5.1 selectable on OpenRouter and Nous Portal
Prompts, skills & agent behavior
- #101188 fix(compression): busy steer survives compaction and never replays a consumed request (#100053, salvage #100114)
- #101074 fix(agent): background review fork gets a structural transcript clone, not a shallow list (salvage #100802)
- #100891 fix(agent): thinking-only length truncations no longer wedge continuations (salvage #99622)
- #99742 fix(compression): keep hygiene turn-hold worker's commit admission — adopt thinking-model summaries instead of burning them
- #100936 Abandoned compression summary streams now stop at the host deadline on every aux wire (#99692, salvage #99779)
- #100937 fix(agent): model.streaming: false honored; retired Codex stream no longer returned as completed (salvage #80789, #98956)
- #100906 fix(agent): delegated children and cron turns stream again (inline, no worker) — z.ai 524 / #100260 child deaths
- #100746 fix(agent): overflow recovery no longer resends a still-oversized request (salvage #100614)
Desktop & UI
- #101455 feat(desktop): browser comments carry the element's DOM, and land as a few grouped tasks
- #101439 fix(desktop): deleting a chat no longer toasts "Resume failed / Session not found"
- #101336 fix(update): Desktop rebuild stages and swaps so a failed pack never removes the working app (#86443, salvage #44234/#78431)
- #101267 fix(desktop): sessions, windows, transcripts and new chats follow their owning profile under multiplex (#79005 #82768 #61286, salvage #97042 #99333 #99387 #89100)
- #101298 Desktop backend announces its socket ~300ms sooner: MCP SDK import no longer races the web_server import (salvage #96751)
- #101293 fix(bot-mode): DMs to a Desktop-owned Bot Chat land in the live session instead of being dropped (#100523)
- #101320 feat(cli): bell flags also raise OSC 9 desktop and Warp OSC 777 agent notifications (salvage #58957, #100805)
- #101304 feat(desktop): Desktop can start on a fresh chat instead of reopening the last one (#60812, salvage #60816)
- #101211 fix(desktop): a split-dragged Bot tab keeps its Bot workspace scope
- #101207 fix(desktop): group chat picker rows truncate long bot names instead of scrolling the list sideways
- #101260 Desktop: restored background tabs show their session title without a click (#94167, salvage #94212)
- #101227 Desktop: cold resume paints the REST transcript before a slow session.resume settles (salvage #90130)
- #101204 Desktop Projects sidebar no longer goes stale after external session create/delete/rename/cwd change (#100354)
- #101261 fix(desktop): Bot Mode tabs caption a Bot Chat with the bot's name, not "Bot Chat"
- #101208 fix(desktop): backend-pinned messaging and cron sessions can be unpinned — pin sync reconciles every sidebar slice
- #101213 fix(desktop): one conversation never opens as two tabs after compaction
- #101214 fix(desktop): tile, cron and reconnected transcripts stay fresh (#94779; salvage #96386 #99333 #89728)
- #101284 feat(cli,tui): display.bell_on_prompt rings the terminal bell on every blocking prompt (salvage #98817)
- #101287 fix(desktop): switching models in the picker no longer silently rewrites your default (#90235)
- #99357 fix(desktop): keep drafts editable while connecting
- #101155 fix(desktop): a bot row click always lands on the Bot Chat the row previews (Bots sessions out of sync)
- #101146 feat(desktop): status bar can show live cache-hit rate and tokens/sec, off by default
- #101139 fix(desktop): group chat rooms are serial again; keep only the push-woken turn poll (#92760)
- #101112 perf(desktop): group chat rooms answer in the time of one bot, not the sum of all (#92760)
- #100930 fix(desktop): approvals on single-connection installs route through the event's exact owner (#96394, salvage #97519)
- #100902 fix(desktop): build guard refuses a partial install before clean, for every declared dep (#86443, salvage #87980 + #100637)
- #100710 fix(desktop): stop stale session-scoped RPC storms and heal reaped runtimes (salvage of #95647)
- #100989 fix(desktop): 'Switch models mid-thread' tip no longer appears over the model pill
- #100914 fix(sessions): Desktop resume of a heavily-compacted chat no longer fails with 4130
- #97979 feat(tool-search): core-tool deferral — curated event-triggered set behind the bridge (−6.5K tok/call desktop, −49% schemas)
- #100879 fix(desktop): a branched session loads on the backend that owns its parent
- #100867 fix(desktop): the sidebar keeps its sessions when a scan hits transient SQLite I/O
- #100866 fix(desktop): Check for Updates updates this app, not the remote backend
- #100863 fix(desktop): the update-complete banner clears itself instead of dead-ending
- #100102 fix(desktop): keep deleted sessions from rebinding
- #100621 fix(cli): context meter no longer drops hundreds of K at turn boundaries on reasoning models
- #100667 feat: local models — managed llama.cpp runtime with one-click desktop setup
- #100644 fix(desktop): bare new sessions start detached in remote mode too (salvage #57926)
- #100590 fix(desktop): score default ~/.hermes/state.db in first-boot profile migration
- #100581 fix(desktop): stop the HUD transcript-band probe once the viewport mounts (salvage #98408)
Gateway, channels & integrations
- #101464 fix(nous): idle gateway/dashboard agents no longer 401 every hour — keepalive refreshes before the token expires (salvage #84928)
- #101118 fix(gateway): quiesce the thread pool before closing state.db at shutdown
- #101252 fix(platforms): IRC/ntfy/Photon/WeCom/Mattermost/SimpleX/Matrix/Teams settings resolve per multiplexed profile (#89168, salvage nftpoetrist series #89169 #80825 #69042)
- #101255 fix(gateway): per-profile hooks, MCP discovery, webhook skills, and scoped browser/Hindsight threads under multiplex (#92672 #95518 #86402 #92608 #67277, salvage #92682 #95542 #86472)
- #101248 fix(gateway): per-profile /voice state, off-loop startup hydration, session-recovery owner fence, int route ids (#84872 #74285 #88381 #86470, salvage #99519 #70815 #85245)
- #101254 fix(gateway): Raft/A2A identity, A2A authz, webhook disable, TTS cache and log files scoped per multiplexed profile (#100697 #99634 #85637 #80884, salvage #100392 #100382 #100709 #98756 #85712 #80956)
- #101253 fix(gateway): Google Chat scoped + ADC fail-closed, runner bound on all adapters, WhatsApp alias routes, relay profile carry (#73439, salvage #73445 #70831 #85081 #61012)
- #101251 fix(feishu): multiplexed profiles keep their own WS loop and admission gates; cloned app credentials refused (#73779 #76793 #86905, salvage #76800 #86908 #84165)
- #101246 fix(gateway): slash config writes, executor hops, personality and status follow the routed profile (#87939 #75684 #89161, salvage #87976 #78440 #69118)
- #101244 fix(gateway): routed multiplex profiles stop leaking .env into os.environ or borrowing default creds (#77562 #84079 #88441, salvage #77592 #84154 #100211)
- #101319 feat: /model picker catalogs refresh every 20 minutes, gateway keeps them warm
- #101250 fix(gateway): inline-button and early auth honor the routed profile, bot policy and per-profile Slack gates (#86296 #92840, salvage #65589 #86308 #72657)
- #101249 fix(telegram): multiplexed profiles keep separate DM topic lanes in the shared state.db (#76423 #87239, salvage #76487)
- #101247 fix(gateway): handoffs fail closed and load secrets off-loop; Discord slash commands honor profile_routes (#97693 #100014 #69178 #91633, salvage #97694 #100049)
- #101212 fix(tui_gateway): session.resume reuses live sessions only within the requesting profile
- #101242 fix(gateway): routed multiplex profiles get their own terminal cwd/backend/docker config; container boot honors config multiplex_profiles (#68559 #85413, salvage #99225 #85437)
- #101283 fix(slack): user-token Web API posts from allowlisted users are treated as human (salvage #100964)
- #101282 feat(email): Proton Mail Bridge and local relays work — configurable IMAP/SMTP TLS mode (salvage #99641)
- #99673 fix(profiles): profile delete refuses to kill another profile's gateway (#89315)
- #101192 fix(compression): tripped sessions recover across gateway agent rebuilds — durable recovery deadline column (salvage #100185)
- #101194 Gateway adapters honor one gateway.trust_env key instead of hard-coded aiohttp trust_env (#48820 bug 3, supersedes #76309, salvage #70119 #56229)
- #101161 perf(bot-mode): cold DM hops skip the live /models probe; relay replies land within 250ms (#92760)
- #100898 gateway: explicit platforms.<x>.enabled: false no longer overridden by env credentials (#48820 Bug 2, salvage #48852)
- #100972 Gateway follow-ups queued during a busy/compression window no longer vanish; overflow survives shutdown (#99882, salvage #99912)
- #100917 fix(gateway): live foreign token lock at startup exits 78 instead of retry-queueing forever (salvage #83183)
- #100893 hermes config set platforms.<name>.<display_setting> now writes the display.platforms key the gateway reads (#71047, salvage #78111)
- #100909 fix(gateway): Matrix password-auth configs stay in the reconnect retry queue (salvage #100234)
- #100962 fix(gateway): Windows gateways get a real loop-liveness witness over TCP loopback (salvage #100793)
- #100907 fix(recovery): session salvage no longer drops the gateway delivery ledger (#100313 salvage gap, salvage #100350)
- #100910 fix(gateway): unreadable state.db transcript no longer resumes as a new conversation (#100788, salvage #100798)
- #101025 fix(mcp): keepalive no longer respawns a healthy stdio server that silently drops ping (#97245, salvage #97258)
- #100987 fix(mcp): stdio tool calls survive a dead subprocess — respawn+retry, and Linux child-PID tracking actually works (salvage #100814)
- #100950 fix(gateway): multiplexed hygiene compaction no longer loses the profile secret scope (salvage #100849)
- #100920 fix(mcp): stdio tool calls no longer leak an un-awaited watcher coroutine per call (#95938, salvage #96251)
- #100915 fix(gateway): Windows gateway no longer logs an AttributeError traceback on every start (#96956, salvage #96989)
- #100601 fix(telegram): stop duplicate final bubble after flood-capped finalize with reply_to_mode=first (#71047)
- #100594 fix(gateway): survive Windows Job-Object teardown across gateway restarts (#48820)
- #100504 fix(tui-gateway): gate the ws-orphan interrupt of running turns on activity staleness
- #100533 fix(gateway): judge delivery success against final content, not flag trust (#95382, #98552 class)
Core runtime, state & reliability
- #101468 Subagent batch tags read "set N" instead of a hex id slice
- #101470 Stop compacted chats from rendering as an empty transcript
- #101442 fix(auth): shared Nous login no longer 401s every process when its hourly token expires under concurrent subagents
- #101373 feat(cron): per-job failure_deliver — route or suppress failure notices (salvage #100375)
- #101316 fix(sessions): state.db auto-prunes ended sessions by default (90d) and VACUUM only runs above 25% freelist (#54189)
- #101367 fix(tools): tools[] stays frozen for the session — prefix preserved, survives agent-cache eviction, /reload-mcp re-probes (salvage #100638)
- #101245 fix(cron): multiplex ticks isolate per profile, fire the bound port, deliver satellites fail-closed (#74878 #100489 #101113 #86519, salvage #70747 #84755 #96944)
- #101256 fix(api_server): runs are owned by the requesting profile; handoff/readiness answer for the routed profile (#93689 #90415, salvage #93747 #100054 #94147)
- #101322 fix(doctor): disabled MEMORY.md/USER.md no longer reported as active memory (#100668, salvage #100677)
- #101265 hermes serve dispatches without building the full CLI parser tree (salvage #96749)
- #101290 Bots roster gets user-named sections with drag-and-drop filing, dialog rename and undoable delete (salvage #100745)
- #101221 fix(state): refuse SessionDB open and writes on a deleted WAL generation (salvage #101081)
- #101206 fix(sessions): the auto-titler can no longer rename a canonical Bot Chat whose title is derived-provenance
- #101210 fix(bot-mode): empty Bot Chat lookup fails closed instead of minting; group tab hands off to remote bots
- #101285 feat(fast): /fast auto|cold give bounded fast-mode windows behind one route-aware gate (salvage #89991)
- #101280 fix(kanban): notify subscriptions on stale blocked tasks are reaped (#100955, salvage #101103)
- #101278 fix(kanban): unachievable goals land in blocked, not done (#100954, salvage #101108)
- #101224 fix(state): quarantine SessionDB handle after structural corruption (salvage of #101095)
- #101191 fix(state): stop concurrent startup from multiplying state.db writers
- #101129 fix(cron): fire the overdue run after a timezone-offset migration instead of silently re-anchoring (salvage #101090)
- #100931 Manual /compress no longer reports a false 120s timeout on compute-host sessions — late ack adopted (#97948, salvage #99630)
- #100903 fix(state): auto-prune closes and later deletes stale open cron/kanban/subagent sessions (#54189, salvage #94095)
- #100981 Subagent progress lines name their delegation batch — concurrent/nested fan-outs no longer indistinguishable
- #100929 Profiles never fork single-use OAuth grants: clone-all strips them, borrowed rotations write through to root (#100339, supersedes #100389/#100703)
- #100908 fix(cron): live-adapter delivery is confirmed by positive evidence, empty payloads fail closed, cron pushes notify (#77763, salvage #100284 #58262)
- #100916 fix(cron): delivery failures record last_status=delivery_failed and surface in list/doctor/manual run (#83993, salvage #100163 #86622)
- #101027 fix(update): Windows progress self-test stops racing its own server; script tests gated to their lane
- #100928 fix(update): a successful update no longer credits or ignores surviving unmanaged serve runtimes (#100479, salvage #100490 + #100493)
- #100967 fix(guardrails): tool-call loops hard-stop on unattended platforms, identical replays halt for any tool (#49075, #89069; salvage #49189, #47231)
- #100901 fix(contributors): add_contributor.py refuses case-colliding email files (salvage #88472, supersedes #100055)
- #100911 Lazily installed backends are byte-compiled at install time so first import is not a foreground cold-compile stall (refs #100461, salvage #100829)
- #100895 fix(state): unopenable state.db admission lock now defers destructive work (#100368 amplifier, salvage #100399)
- #100979 fix(tool-search): deferred tool_call arguments no longer bypass schema validation (#73175, salvage #73179)
- #100912 feat(tts): speech toggles pre-load and unload the voice engine — first spoken reply no longer starts with silence (#100881)
- #100830 fix(scale-to-zero): count an attached dashboard WS client as inbound activity
- #100152 fix(linux): stop installing the Mint panel icon as a PNG in hicolor/scalable
- #100837 TUI: pasting into a slash command no longer hands the skill a truncation placeholder
- #95278 feat(telemetry): opt-in shared-metrics exporter
- #100720 fix: re-disable e2e
- #100643 fix(update): post-update state.db guard covers every profile (salvage #99954)
- #100657 fix(update): surface leftover update autostashes older than 7 days (#63717)
- #100580 fix(codex): extend Happy-Eyeballs racing to Codex OAuth clients; pin native async racing (#13834 residual)
- #100591 fix(delegate): defer timed-out child teardown and drain in-flight transports FD-safely (#94248 native half)
- #100564 fix(redact): value-aware gating — mask keyword assignments only on secret-shaped values (salvage #96615)
- #100599 fix(dashboard): lock-free /api/model/options scope — salvage #74275 (#58576 lock-contention leg)
- #100574 fix(install): select a supported Python on Termux, with TUR fallback (#59877)
- #100552 feat(web): Tavily returns as an explicit opt-in web backend, off the keyless ring (salvage #99731)
- #100525 fix(state): break provably-orphaned repair/FTS-rebuild locks left by dead holders (#100108)
- #100519 fix(state): stop the on-write identity probe cancelling our own POSIX locks (#100368 producer candidate)
- #100540 fix(web): configs pinned to a removed backend no longer fail silently (post-#99199)
Maintenance, documentation & formatting
- #101481 fmt(js):
npm run fixauto-fix - #101150 fmt(js):
npm run fixauto-fix - #101107 fmt(js):
npm run fixauto-fix - #101102 fmt(js):
npm run fixauto-fix - #100951 test(gateway): AF_UNIX witness tests skip cleanly on native Windows (#98039, salvage #98059)
- #100752 ci: every ci.yaml run 0-jobbed since 24f5a60ed1 — e2e-desktop disable as bare if: false
- #100685 fmt(js):
npm run fixauto-fix - #100636 ci: block tracked paths that collide case-insensitively
- #100453 ci: re-enable the Desktop E2E lane — harness root-fixed by #99671
- #100500 test(gateway): async goal tests no longer drop the goal write on slow CI runners
- #100496 test: loaded CI runners no longer flake seven tight wall-clock bounds
Source
- GitHub merged-PR search for this exact window
- Window:
2026-09-01T17:30:00Zthrough2026-09-02T17:30:00Z(end exclusive)
131 Hermes Agent PRs merged in the last 24 hours — through September 1, 2026, 1:30 PM ET
GitHub merged 131 pull requests in NousResearch/hermes-agent during the 24 hours ending September 1, 2026, 1:30 PM ET. I grouped them by area below and sorted each section newest to oldest by merge time.
Models, providers & routing
- #100494 fix(auth): look up keyed custom providers by durable pool slug
- #100173 fix(anthropic): alias session_search/memory OAuth billing-classifier triggers (salvage #78025)
- #100142 fix(gemini): echo bridged tool_call name on the OpenAI-compatible path
- #100137 fix(cache): declared conversation keys now keep a warm affinity scope (#96811, salvage #98811)
- #93575 fix(compression): preflight display-seed must not overwrite real provider usage
- #100135 fix(agent): run init-time fallback for ANY exhausted primary provider (salvage #93439)
- #99702 fix(agent_init): clamp compressor window to Ollama num_ctx resolved after construction (#57275)
- #99633 fix(models): OpenRouter @preset references no longer rejected by /model (salvage #89129)
Prompts, skills & agent behavior
- #100427 fix(compression): roll the live transcript back when an in-place compaction commit fails (#99477)
- #100377 feat(skills): skills.create_dir — new skills land where the config points, instructions included (#13963, salvage #13996)
- #100159 fix(agent): preserve foreground resources after background review (salvage #82288)
- #99878 fix(bot-mode): keep Bot Chat open on its compression lineage (supersedes #97416)
- #99888 fix(compression): accept reasoning_content as the summary (supersedes #95231, #98496)
- #99772 fix(agent): surface preflight compression timeout as typed result, not generic error
- #99758 fix(agent): turn liveness watchdog surfaces silent turn stalls (#95548, salvage of #95663)
- #99687 feat(agent): escalate repeated transcript-sanitiser heals — counters, one ERROR, one-time user notice (#96870)
- #99735 fix(compression): Fast Mode reaches Codex summaries; hygiene cooldowns and dead workers stop blocking compression (salvage #98856)
- #99725 fix(compression): OpenRouter fallback survives credit-limited 402s by clamping to the affordable budget (salvage #41055)
- #99710 fix(agent): stop compression retries after host timeout (salvage #98741)
- #99700 fix(agent): cap compaction threshold floor at 85% of the context window (salvage #87490, #57275)
- #99660 fix(compression): dead Codex summary streams fail over in 60s instead of stacking 5-minute waits
- #98424 fix(context): fail closed when preflight compression stalls
- #96779 fix(compression): truncated summaries no longer become compaction checkpoints (port of pi#7048)
Desktop & UI
- #100514 fix(desktop/update): preserve active profile and config model settings across updates
- #100452 fix(desktop-update): self-heal a TCC-anchor-bricked venv in the posix hand-off (#95759)
- #100429 feat(desktop,i18n): Hermes Desktop speaks Russian (#84418, salvage #42705)
- #100442 fix(desktop): never lose HERMES_BACKEND_READY emitted before the port wait attaches
- #100440 fix(updater): rebuild desktop on Windows hand-off repair path (#100044 salvage)
- #100136 fix(desktop): use Chromium's userns sandbox on Linux — no sudo, never --no-sandbox (salvage #98135 + #89349)
- #95925 fix(tui): keep edited recalled prompts from being lost
- #100119 feat(desktop): full built-in optional-skills catalog appears in Capabilities → Skills with one-click install
- #100124 fix(desktop): Windows update-preflight family — deferral evidence, hindsight daemon reap, gateway stop/restore (salvage #98350/#75477/#76057)
- #100086 feat(desktop): Browser pane offers real-profile browsing on first open
- #100083 feat(desktop): comment mode for the in-app browser — pin, note, attach crops to the composer (salvage #100063)
- #99916 fix(desktop): dock the sidebar rails down to 640px
- #96612 feat(desktop): collapse Yesterday / Last week groups in the sessions sidebar
- #99764 fix(desktop): make /stop interrupt active turns
- #97067 fix(desktop): recycle stale SSH backend after post-update Models-page 503 (#97046)
- #99890 fix(desktop): restore the transcript when regenerate is rejected (supersedes #95848)
- #99881 fix(desktop): stop hidden session panes from yanking the visible chat (supersedes #81829)
- #99891 fix(desktop): stop dead runtimes from stealing composer focus (supersedes #97874)
- #99885 fix(desktop): keep remote profiles on their own models (supersedes #96714)
- #99892 fix(desktop): stop a stale composer model pinning every new chat (supersedes #91482)
- #98203 fix(desktop): preserve terminal startup output
- #99863 fix(desktop): route /btw through prompt.btw so the answer reaches the chat (supersedes #99078)
- #99866 fix(desktop): skip cold process probes for dead backend-ownership PIDs (supersedes #92897)
- #98104 fix(desktop): keep project previews visible on drill-in
- #76472 fix(desktop): answer the visible clarify card, not the first-mounted one
- #95636 fix(desktop): keep SSH serve teardown across re-entrant quit
- #99697 fix(desktop): heal v1 SSH gateway routes into the v2 connections registry
- #99694 fix(desktop): bounded auto-restart for no-mux SSH tunnel flaps — stop SIGTERMing a healthy backend (#96266)
- #99678 fix(cli): supervised gateway launches keep their own profile identity (#74872)
- #99674 fix(desktop): prevent venv scan timeout on busy Windows hosts (salvage #75570)
- #99672 fix(desktop): keep primary SSH session resumes remote (salvage #96895)
- #99655 fix(cli): explain mixed-install ImportError at chat startup (salvage #96911)
- #99671 fix(desktop): resolve the e2e Electron binary per platform and layout (salvage #88103)
- #99664 fix(desktop): heal bound views after stale runtime (salvage of #98876)
- #99667 fix(desktop): recover incomplete transcript turns (salvage #88127)
- #99625 fix(cli): honour model_aliases api_key, stop cross-provider key leak (salvage #84199)
Gateway, channels & integrations
- #100524 fix(gateway): persist api_server async-delegation completions as deliveries, not user-turn wakes
- #100521 fix(gateway): never print ✓ for a Windows gateway that dies after the liveness poll
- #100450 fix(update): break the gateway restart vs auto-update three-way deadlock
- #100201 fix(state): consolidate gateway SessionDB writers via process-wide shared registry
- #100432 fix(telegram): promote connect success line to WARNING so healthy startup is terminal-visible
- #100153 fix: fail closed on corrupt config.yaml in non-interactive runs (salvage #81988, extended to gateway/serve/cron)
- #100095 fix(gateway): keep the drain-marker read off the event loop
- #99906 fix(tui_gateway): retire recovery marker on local stop (supersedes #72231)
- #99799 fix(gateway): Discord stops reply-pinging on every interim progress message
- #99770 fix(gateway): give the routing index one store instead of the ambient one (salvage #99559)
- #99781 fix(gateway): session listings show the current session and explain declined 'all' scope (fixes #68547, salvage #68556)
- #92316 fix(gateway): startup-liveness watchdog for pre-event-loop deadlocks (salvage of #89750)
- #99726 fix(gateway): persist the platform message id on every user turn (salvage of #71904)
- #99714 fix(gateway): persist routing identity on lazily-created session rows (salvage of #88804 leg 1)
- #99691 fix(telegram): recover Windows CLOSE-WAIT getUpdates reconnect deadlock
- #99696 fix(gateway): keep long turns controllable without blocking Telegram (salvage of #93914)
- #99698 fix(gateway): relay compute-host clarify state so cards survive session switches (salvage #98571)
- #99653 fix(estop): honor canonical ~/.hermes/ESTOP from profile gateways (salvage #97779)
- #99675 fix(gateway): run MCP shutdown off-loop with a bounded wait on the SIGTERM path
- #99663 fix(gateway): bound SIGTERM post-interrupt grace (salvage of #65084)
- #99265 fix(redact): stop large manual compressions from starving the gateway
- #99623 fix(feishu): gate approval/update-prompt card clicks on operator allowlist, not group policy (salvage #99004)
Core runtime, state & reliability
- #100534 fix(streaming): superseded streams keep their completion marker — no more false drops (#94614, salvage #94625)
- #100515 fix(streaming): complete Portal/vLLM streams no longer misread as mid-stream drops (#90848, #91373; salvages #91189, #91376, #96333)
- #100426 fix(backup): import into the active HERMES_HOME instead of the root home (salvage #99853)
- #100434 fix(oauth): surface actionable guidance when sign-in windows lapse (salvage #98716)
- #100439 fix(installer): require Hermes-managed Python on Windows (salvage #94898)
- #100458 fix(restore): fail closed on in-process holders before unlinking state.db sidecars (#90837 audit)
- #100488 fix(browser): orphan reaper no longer deletes freshly created session dirs (flake root-fix; salvage #100297 + #100352)
- #100462 refactor(state): flatten registry acquire flow; restore mirror cleanup assertion
- #100445 fix(cron): surface missed-fire catch-up lateness in hermes cron list/status
- #100425 agent: expose streaming TTFB via first_chunk_at in the post_api_request hook (salvage #98555)
- #100420 Bedrock redacted reasoning survives replay (salvage #93815)
- #100155 fix(update): back up HEAD to a bounded rescue ref before orphan-history reset (salvage #87745)
- #100165 fix(update): recover the hermes serve generation after an aborted restart phase (salvage #96235)
- #100156 fix(auth): purge silent OpenRouter paid-default adoption (#81952 class fix)
- #100144 fix(terminal): strict Linux-only gating for background-executor systemd scopes (#70716 follow-up)
- #100059 fix(openviking): route remember through session extraction
- #100101 fix(security): profile exports never land in source or image contexts (resurrect #92689)
- #96839 Make the tips/tours switches reach the agent
- #99210 refactor(dashboard-auth): replace PKCE cookie payload with base64url(JSON) codec
- #99753 fix(state): a state.db swapped under a live process halts writes instead of corrupting (#89332, salvage #89364)
- #99724 fix(update): defer ledger-verified serve/dashboard venv holders to the updater (Windows os error 32)
- #99709 fix(auxiliary): Codex timeout Timer no longer releases shared-client FDs (salvage #72260)
- #99715 fix(update): stop reporting success when SQLite remains vulnerable (salvage #95801)
- #99711 fix(update): defer Windows runtime repair when the updater holds the venv (salvage #93163)
- #99719 fix(sessions): enforce per-session exclusivity independently of max_concurrent_sessions
- #99703 fix(agent_init): reserve Gemini's default maxOutputTokens in the compressor when max_tokens is unset (#57275)
- #99683 fix(update): self-heal broken Git-for-Windows trampoline on Windows (salvage #88136)
- #99701 fix(model_metadata): parse Google's 'supports up to N' context-limit phrasing (#57275)
- #99699 fix(config): support literal dots in config key paths (set/get/unset)
- #99682 fix(state): defer corrupt FTS rebuilds past live operations (salvage #89073)
- #99650 fix(redact): keep dotted config-key scans linear past the keyword pre-gate
- #99652 fix(state): structurally corrupt state.db no longer keeps accepting writes (#97940, salvage #96038)
- #99637 fix(docker): keep forwarded secret values out of world-readable argv
- #98691 fix(state): bound state.db read connections per file, not per SessionDB
- #97835 fix(profiles): make_targz writes to a temp file and renames, not the destination directly
- #99505 fix(install): never adopt a pre-release Node.js build (salvage #96601)
- #99509 fix(state): self-heal SessionDB writes after close() races an in-flight worker (#94736)
- #99506 fix(terminal): bound env.execute wait so a wedged poll cannot disable every timer (#94285)
- #99558 fix(windows): fail-closed process-identity guard before every unverified taskkill
Maintenance, documentation & formatting
- #100517 fmt(js):
npm run fixauto-fix - #100416 chore: case-colliding contributor email file no longer breaks macOS/Windows checkouts
- #100128 fmt(js):
npm run fixauto-fix - #100092 docs(desktop): the in-app browser comment mode is now in the user guide (follow-up to #100083)
- #100096 fmt(js):
npm run fixauto-fix - #99917 fmt(js):
npm run fixauto-fix - #99871 fmt(js):
npm run fixauto-fix - #99862 fmt(js):
npm run fixauto-fix - #99718 chore: release v0.21.0 (2026.8.31)
- #99668 test(state): physical acceptance tests — canonical B-tree vs FTS-only corruption (#97940 gate)
- #99645 chore: AUTHOR_MAP entries for fangliquanflq (99265) and sycamoregroupltd (97779)
Source
- GitHub merged-PR search for this exact window
- Window:
2026-08-31T17:30:00Zthrough2026-09-01T17:30:00Z(end exclusive)
Hermes Agent v0.21.0 “The Pantheon Release” is out
Nous Research has released Hermes Agent v0.21.0, tagged v2026.8.31, under the name “The Pantheon Release.” It rolls up the v0.20.1 through v0.20.6 patch windows and is available now with hermes update.[1][2]
The main changes:
- Bot Mode is now built into the desktop app, with named agents, deterministic avatar faces, shared rosters, group chats, @mentions, and named rooms.[1]
hermes peeradds bot-to-bot messaging across profiles and gateways, with durable Bot Chat history instead of fire-and-forget handoffs.[1]- Cron jobs now remember through persistent memory, continuity between runs, durable scratchpads, change-suppressed monitor mode, and Bot Chat delivery.[1]
- Subagents can be steered or stopped live, with structured output schemas, cost reporting, and higher delegation defaults.[1]
- MCP gets a unified command center with paste-anything import, health checks, cost and usage visibility, and explicit
hermes://install links.[1] - The in-app browser is now directly drivable by the agent, including navigation, clicks, and reading pages.[1]
- The release also adds providers and model catalog entries, plus broad security hardening including protected agent-instruction files, deeper redaction, and Windows destructive-command approval coverage.[1]
My read: this is less a single feature drop than a move toward Hermes as a coordinated team of persistent agents. State, delegation, and agent-to-agent communication are becoming first-class product features.[1]
Update:
hermes update
Nous Research announcement on X
Sources
57 Hermes Agent PRs merged on August 29, 2026, grouped by area
GitHub merged 57 pull requests in NousResearch/hermes-agent on August 29, 2026 (UTC). I grouped them by area below and sorted each section newest to oldest by merge time.
Models, providers & routing
- #98034 fix(models): accept live Nous Portal recommendations in /model validation (salvage #71315)
- #98000 fix(custom): omit Ollama-only think=false on strict OpenAI-compat endpoints
- #97917 feat(providers): add Tencent TokenPlan + hy4-preview default (salvage #96939)
- #97916 feat(providers): add Nebius Token Factory provider (salvage #28253)
- #97915 feat(providers): add Ramp Router (router.com) provider plugin (salvage #93548)
- #97827 fix(opencode): delisted keyless free models no longer 401 the picker — catalog revalidates live (#95914, salvage #95943)
- #97746 refactor(vertex): fold _creds_cache_key into _sa_snapshot (post-#97701 simplify)
- #97708 fix(cache): preserve the configured 1h TTL on the OpenCode Go route (salvage of #97582)
- #97701 fix(vertex): pick up rotated service-account files — signature-keyed creds cache
- #97710 fix(prompt-caching): tool-using sessions no longer 400 behind LiteLLM Anthropic proxies (salvage of #89931)
- #97612 Add
tencent/hy4-previewto model pickers
Prompts, skills & agent behavior
- #98030 fix(compression): arm the failure cooldown when codex compaction fails (#75364)
- #97974 /btw answers now ride the background-review warm-cache fork (full context, cache-read cost)
- #97937 /btw answers side questions with conversation context; /background retired in favor of /bg
- #97921 feat(todo): task lists now nest — subtasks via a ~45-token parent field
- #97930 feat(system_prompt): two-line conversation clock — anchored start + rebuild-day line (salvages #96224)
- #97926 feat(prompt): DEFAULT_AGENT_IDENTITY — behavior spec replaces trait list (concise-by-default)
- #97918 fix(prompt): skills section — de-dupe hermes-agent teaching, presence-gate the skill pointer, drop '(mandatory)'
- #97899 refactor(prompt): platform-hint diet — 7 heavies compressed, −657 tok across the map (facts probe-pinned)
- #97872 fix(skills): grill-me keeps its name (reverts #97831 rename, keeps content upgrade)
- #97833 feat(optional-skills): decision-questionnaire — async questionnaires for blocked decisions
- #97832 feat(optional-skills): setup-wizard-generator — bash wizards for human-only setup steps
- #97831 feat(skills): grill-me becomes plan-interrogation with frontier-rounds interviewing
- #80708 feat(skills): add optional grill-me skill — adversarial plan interview (salvages #43694)
- #97760 refactor(prompt): memory/skills guidance — one builder, positive posture, session-accurate wording (537 → 255 served, −282/call)
- #97650 fix(skill_manage): missing-old_string errors teach recovery instead of dead-ending into write_file clobbers (#33064, salvage #63879)
- #97695 fix(agent): count only substantive auxiliary progress (#96667 salvage)
- #97451 fix(skill_manage): batch failures keep the failing op's file_preview — models no longer recover blind
Desktop & UI
- #96880 fix(desktop): reserve space for pane tab close button
- #97850 refactor(prompt): desktop platform hint — recipe-first widget teaching, source-verified (442 → 307 tok/call)
- #97829 fix(desktop): ::preview inline widgets work on remote/URL connections
- #97816 feat(desktop): Download button on preview file cards
- #97812 fix(desktop): MEDIA: any-file delivery — preview card + Download button for non-media files; guidance aligned
- #97659 refactor(desktop-tools): consolidate preview + project, diet the desktop_ui suite (3,861 → 2,293 tok/call, −41%)
- #97704 fix: P0 batch — five prompt-cache fixes + two desktop persistence fixes (salvage of #97618 #96755 #97327 #96768 #96608 #95886)
- #97705 fix(desktop): HUD clicks, links, and right-click on Linux X11
- #97666 feat(cli): Ghostty-level pets in the interactive CLI
- #97640 fix(desktop): board switcher crashed on every render
- #97636 Kanban board export / import, plus board rename and delete in the desktop switcher
Gateway, channels & integrations
- #97957 fix(relay): Slack force-on unfurl for streamed finals — fresh stamped post + additive delete op cleanup
- #97932 fix(gateway): make /busy available on gateway platforms (salvage of #97875, supersedes #18366)
- #97873 fix(prompt)+feat(gateway): platform-hint truth pass + universal voice-bubble transcode (all 22 hints source-verified)
- #92318 fix(gateway): bound the hygiene-compression turn-hold (salvage of #90845)
- #63755 fix(agent): normalize list-shaped streaming content deltas
- #97677 fix(teams): authenticate Bot Framework connector attachment downloads (pasted images 401)
- #97458 fix(mcp-oauth): avoid locking across resource requests
Core runtime, state & reliability
- #97929 fix(update): unrelated transitional Windows services no longer abort updates (salvage of #96381)
- #97924 fix(skills): a failed batch rollback never destroys the skill or its snapshots (salvage of #97715)
- #97676 perf(state): route 39 pure-read SessionDB methods off the writer lock + AST gate
Maintenance, documentation & formatting
- #97912 chore: map provider-salvage contributor emails (Neel49, amrrs)
- #97946 fmt(js):
npm run fixauto-fix - #97896 fmt(js):
npm run fixauto-fix - #71419 docs(user-stories): add 65 new community stories, newest first
- #97713 fmt(js):
npm run fixauto-fix - #97706 fmt(js):
npm run fixauto-fix - #97642 fmt(js):
npm run fixauto-fix - #97638 fmt(js):
npm run fixauto-fix
Source
How to Use Hermes Anywhere: Mobile, Messaging & Remote Access Megathread
LAST UPDATED: August 29, 2026
VERIFIED AGAINST: Hermes Agent v0.20.6 (release tag v2026.8.27)[1]
A compilation of comments from the sub over the last few weeks -JR MODEL 5.6 Sol
Hermes is no longer just something you run in one terminal. The same agent can now meet you in a messenger, the official desktop app, a browser, a community mobile client, or a remotely connected machine. The hard part is choosing the right interface—and understanding where your tools, files, credentials, and sessions actually live.
This guide is the umbrella reference for that decision.
TL;DR — pick the interface that matches the job
| Your priority | Start here | Why | Main tradeoff |
|---|---|---|---|
| Fastest phone setup | Telegram | Mature gateway, files, images, voice notes, threads, streaming | Your conversation passes through Telegram |
| Team or project channels | Discord or Slack | Threads, files, reactions, typing, streaming, channel separation | Shared bots need strict user and tool boundaries |
| Apple-native texting without an always-on Mac | Photon | Managed iMessage route; no webhook or public URL required | Managed intermediary; inbound attachments are metadata-only today |
| Apple-native texting with your own Mac relay | BlueBubbles | Self-operated iMessage bridge with two-way media | Requires an always-on Mac and more setup |
| Rich native iPhone control | Hermex + Hermes WebUI | Sessions, models, profiles, tasks, skills, files | Community stack; server/client version skew can break features |
| Rich native Android control | Hermes Console | Chat, bots, approvals, voice, admin surfaces, notifications | Very new community client; expect fast changes and early bugs |
| Android with WebUI parity | Hermes-Android | Wraps the full Hermes WebUI with native sharing, downloads and notifications | Requires a working Hermes WebUI server |
| Best workstation interface | Official Hermes Desktop | Same sessions and state as CLI, files, previews, terminals, voice, profiles | Native app on each workstation; remote backend needs setup |
| Browser administration | Official Web Dashboard | Config, credentials, sessions, logs, profiles, cron and embedded chat | An admin surface, not something to expose carelessly |
| Rich browser chat on every device | Hermes WebUI | Mobile-responsive chat, sessions, files, approvals, profiles | Community-maintained and separately versioned |
| Generic OpenAI-style frontend | Open WebUI or another API client | Connects through Hermes' API server | Generic clients may not expose every Hermes-native control |
| Private access to a home server | Tailscale + authenticated WebUI/dashboard | Keeps the service inside your private tailnet | Every client device needs tailnet access and the host must stay online |
| Long asynchronous jobs | Send a detailed request and receive the result later | Slower interaction; sender authentication matters | |
| Full-duplex voice | Desktop/CLI voice mode | Continuous spoken conversation and interruption support | Audio dependencies and provider choices require setup |
There is no universal winner. A lot of people end up with two surfaces: a fast messenger for quick requests and Desktop/WebUI for sessions, files, approvals, and troubleshooting.
First: the phone usually isn't running Hermes
Most “Hermes on my phone” setups look like this:
Phone, tablet, laptop, or browser
│
messenger / HTTPS / VPN
│
Hermes runtime host
│
sessions, tools, files, memory
The interface sends requests. The runtime host—your workstation, home server, or VPS—runs the agent and its tools. If Open WebUI on a laptop talks to a Hermes API server on a VPS, terminal commands, file access, browser tools, and local MCP tools run on the VPS, not on the laptop.[6][7]
This distinction explains a lot of confusing behavior:
- A phone client can browse files that exist on the server without having access to files stored only on the phone.
- A sleeping home computer makes its messenger bot or mobile client unavailable.
- Giving a remote Hermes terminal access gives it access on the runtime host, not just inside the chat app.
- Moving the interface does not move the trust boundary.
The messaging gateway is one background process that connects configured platforms, routes each chat into a session, runs cron scheduling, and delivers replies.[2]
Three surfaces beginners often mix up
- The gateway connects messengers, runs cron, and hosts the optional API server when that feature is enabled.[2][6]
- The dashboard is a separate browser administration and chat process, local-only by default.[5]
- The Desktop app either starts a local backend or connects to an authenticated dashboard on another machine.[4][5]
What the official messaging adapters support
This is a direction-aware adaptation of the official capability table for the interfaces most discussed here. “Voice” means transcription and/or spoken replies; it does not always mean a live call. BlueBubbles can transport audio or voice notes as files even though its adapter does not provide the voice-mode feature. Photon can send outbound generated spoken audio and media files, but inbound attachments—including voice notes—currently arrive as filename/MIME metadata rather than readable bytes.[2][10][11]
| Platform | Voice | Images | Files | Threads | Typing | Streaming |
|---|---|---|---|---|---|---|
| Telegram | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Discord | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Slack | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| — | ✅ | ✅ | ✅ | — | — | |
| Matrix | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BlueBubbles | —* | ✅ | ✅ | — | ✅ | — |
| Photon iMessage | Outbound* | Outbound / metadata inbound* | Outbound / metadata inbound* | — | ✅ | — |
Hermes supports more channels than this—WhatsApp, Signal, Mattermost, Google Chat, Teams, LINE, SimpleX, WeCom, and others—but an evergreen guide becomes useless if it gives twenty platforms equal space. Start with the interface you already use and the trust model you can explain.
The quickest setup path
hermes gateway setup
hermes gateway install
hermes gateway start
hermes gateway status
The wizard configures channels and the installed service keeps the gateway available after you close the terminal. Use a user allowlist or DM pairing. Do not turn on unrestricted public access for a bot that can run terminal commands.[2]
Telegram: still the easiest general-purpose phone route
Telegram remains the practical default when the goal is “get Hermes on my phone today.” The official adapter handles text, voice memos, images, files, groups, topics, scheduled results, and progressive streaming.[2]
Use Telegram when:
- You want the shortest setup path.
- You need mobile and desktop access without running another UI.
- You want cron results and generated files delivered into a familiar chat.
- You value convenience more than keeping all chat traffic inside your own network.
Watch for:
- Bot credentials and platform message history become part of the trust boundary.
- Group chats need mention rules, chat allowlists, and deliberate session separation.
- A messenger is a weak place to debug complex tool activity compared with Desktop or WebUI.
- Long projects become easier to lose in one linear DM unless you use topics or named sessions.
Telegram is the simplest recommendation, not automatically the most private one.
Discord and Slack: better when the work already has channels
Both adapters support files, threads, voice input/replies, reactions, typing indicators, and streaming.[2]
Discord
Discord is a good fit for:
- A private server with channels for research, coding, home automation, and alerts.
- Several Hermes profiles or bots with visible separation.
- Discord voice-channel conversations.
- Personal users who want threads but do not want every task in one DM.
Use DMs for a private personal bot. In servers, require mentions unless the channel was intentionally created for free-response operation.
Slack
Slack is a good fit for:
- Work already organized around channels and threads.
- Long-running jobs whose results belong beside a team discussion.
- Separate channels for separate profiles or projects.
- File-heavy operational workflows.
Slack's native slash commands do not work inside thread replies; Hermes documents a !command fallback for that surface. Also verify the app scopes—missing file or channel-history scopes can leave the bot able to chat but unable to read attachments or channel messages.[25]
Shared-bot rule
A channel name is not an isolation boundary. If several people can reach a bot with terminal, email, calendar, or file tools, they are interacting with the same underlying runtime unless you separated it mechanically.
Email: underrated for long jobs
One of the highest-rated answers in the community preference thread was simply: “I email my Hermes.” The workflow was asynchronous—send a long research request, walk away, and receive the result later.[19]
The official adapter uses ordinary IMAP and SMTP, replies in-thread, caches inbound files locally, and can attach generated files to outgoing mail. The docs recommend a dedicated agent inbox, app passwords where applicable, and an explicit sender allowlist.[12]
Email is best for:
- Detailed prompts that do not need rapid back-and-forth.
- Reports, PDFs, spreadsheets, and other deliverables.
- People who already treat an inbox as their task queue.
Do not:
- Point Hermes at an unrestricted personal inbox.
- Accept arbitrary senders by default.
- Treat the visible
From:line alone as strong authorization. - Let an inbound email silently trigger sending, deleting, purchasing, or credential operations.
Email's default behavior is intentionally stricter than chat adapters: without an allowlist, unknown senders are ignored unless you explicitly enable pairing or open access.[12]
iMessage: Photon or BlueBubbles?
The recent iMessage thread is a good summary of the appeal: putting the same agent inside the messaging interface someone already uses increased how often they reached for it. The replies also surfaced the real tradeoff—Photon is easier, while BlueBubbles gives you a self-operated relay but needs a Mac.[21]
| Dimension | Photon | BlueBubbles |
|---|---|---|
| Operated by | Managed Photon service | You, on your Mac |
| Always-on Mac required | No | Yes |
| Inbound delivery | Persistent outbound connection; no webhook or public URL | BlueBubbles posts to a Hermes webhook reachable from the Mac; it can stay on LAN/tailnet and does not need to be public |
| User authorization | Pairing or phone allowlist | Pairing or address/phone allowlist |
| Inbound attachments | Metadata only today | Full images, audio, video and documents |
| Outbound attachments | Images, voice, video and documents | Images, audio, video and documents |
| New outbound conversations | Shared/free lines require recipient to text first | Depends on your BlueBubbles/Private API setup |
| Best for | Fast Apple-native access | Self-operated Apple-native access |
Photon
Photon allocates an iMessage line and maintains a persistent connection, so you do not need to expose a webhook or keep a Mac relay online. The free shared-line pool is the documented starting point.[11]
Current caveats:
- Incoming attachments expose filename and MIME metadata, not the attachment bytes.
- Shared lines cannot initiate a conversation with a new number until that number messages the line first.
- Cron and standalone sends require the Hermes gateway—and its Photon sidecar—to be running.
- This is a managed service, so it is not the same privacy model as a relay you operate.
BlueBubbles
BlueBubbles runs on an always-on Mac signed into Messages. Hermes receives new messages by webhook and sends replies through the BlueBubbles REST API. Basic text and media work without its optional Private API helper; reactions, typing indicators, read receipts, and creating chats by address need that helper.[10]
Current caveats:
- The Mac, Messages, BlueBubbles server, Hermes gateway, and network path all need to stay healthy.
- Port, webhook, and self-chat misconfiguration can create confusing loops or duplicate behavior—the community thread includes firsthand reports of both smooth setups and finicky ones.[21]
- A dedicated Apple identity for the agent is cleaner than mixing the bot into a personal self-chat.
Bottom line: choose Photon for convenience; choose BlueBubbles when operating the bridge yourself matters enough to justify the extra Mac and maintenance.
Native mobile clients: useful, real, and community-maintained
As of this update, I did not verify an official first-party Hermes Agent mobile app. I did verify active community clients for both iPhone and Android. That wording matters: “no official app” is not the same thing as “no mobile app.”
iPhone: Hermex
Hermex is an MIT-licensed native SwiftUI client for iOS 18+. Its repository links an App Store release, and the app connects to a self-hosted Hermes WebUI server. Its documented surfaces include streamed chat, files and images, sessions, models, profiles, projects, cron tasks, skills, a server workspace browser, memory, and usage insights.[13]
Best for: someone who wants more than a chat bubble and already runs—or is willing to run—Hermes WebUI.
Caveats:
- Hermex is a client, not a hosted Hermes service.
- You are responsible for the server, authentication, uptime, and network path.
- The repo explicitly warns that upstream Hermes WebUI does not yet guarantee API stability; server/client version skew can break individual features.[13]
Android: Hermes Console
Hermes Console is a GPLv3 Flutter client available through Google Play and GitHub releases. Version 1.2.7 documents streamed chat, sessions, files, generated images, profiles/bots, rooms, runs, approvals, cron, kanban, skills, memory, artifacts, voice, app lock, notifications, widgets, sharing, QR pairing, and Android Keystore-backed credential storage.[14]
This is the closest current Android option to a full pocket control plane rather than a simple chat wrapper.
Caveats:
- The public repository was only days old when this edition was researched.
- The release thread includes positive hands-on reports, but also an HTTP 400 setup failure and a keyboard/input glitch that the maintainer said would be investigated.[23]
- Treat QR codes and pairing links as credentials.
Android: Hermes-Android
Hermes-Android is a Kotlin/Jetpack Compose shell around Hermes WebUI. The WebUI remains the application surface; the app adds Android-native sharing, uploads, downloads, camera capture, notifications, secure settings, server profiles, recovery, and update handling. Version 1.1.0 was current during this review.[15]
Best for: someone who wants the same WebUI on desktop and Android with native phone integration.
Caveat: it requires a reachable Hermes WebUI instance. It is not an independent Hermes runtime.
What I did not treat as released
There are more mobile announcements, prototypes, PWAs, Termux experiments, and “I built this” threads than can fit here. Inclusion in the recommendation table requires a verifiable repository or store listing, a usable release path, and current maintenance. A mockup or announcement is evidence of demand, not evidence of a deployable client.
Desktop, Dashboard, WebUI, and client surfaces are different things
| Surface | Status | Best use | What it actually connects to |
|---|---|---|---|
| Hermes Desktop | Official | Full workstation chat and management | Local Hermes backend or authenticated remote dashboard |
| Web Dashboard | Official | Browser administration plus embedded TUI chat | The Hermes installation on that machine |
| Hermes WebUI | Community | Rich responsive chat/workspace UI | Hermes installed on the WebUI host, or an optional gateway-backed mode |
| Open WebUI | External project + official integration | Generic polished chat frontend | Hermes' OpenAI-compatible API server |
| Hermex | Community iOS | Native pocket control | Hermes WebUI |
| Hermes-Android | Community Android | Native wrapper with WebUI parity | Hermes WebUI |
| Hermes Console | Community Android | Native control and admin client | Hermes Gateway and optional Dashboard surfaces |
Official Desktop
The desktop app runs on macOS, Windows, and Linux and uses the same config, sessions, memory, skills, and agent core as the CLI and gateway. Sessions can be started in one official surface and resumed in another. It adds drag-and-drop files, previews, a file browser, terminals, artifacts, voice, profiles, bot mode, cron management, and other workstation controls.[4]
The community desktop thread was genuinely split: the top reply praised its comfort and usability, while other experienced users described confusing navigation, update friction, or a preference for WebUI on multiple devices.[20] That is why “Desktop versus WebUI” is not a quality contest—it is usually a single-workstation versus reach-anywhere decision.
Official Web Dashboard
hermes dashboard starts locally at 127.0.0.1:9119. It manages configuration, credentials, profiles, sessions, logs, skills, cron, models, and gateway state, and its Chat tab embeds the real Hermes TUI.[5]
For remote use, the dashboard is also what Hermes Desktop attaches to. The remote host must already be running it. The messaging gateway is a separate service.[5]
A non-loopback dashboard fails closed unless an authentication provider is configured. That is a good guardrail, not an inconvenience to bypass.[5]
Hermes WebUI
Hermes WebUI is a large community project focused on browser and phone use. It provides responsive chat, sessions, a workspace browser, approvals, attachments, profiles, tasks, skills, memory, authentication, and PWA behavior.[16]
It is not the official dashboard and it versions independently from Hermes Agent. Read its compatibility and deployment notes before upgrading one side without the other.
Open WebUI and other OpenAI-compatible clients
Hermes' API server exposes Chat Completions and Responses endpoints. Standard clients can stream text and tool progress while Hermes executes the tools on the API-server host.[6][7]
This route is excellent when you already like Open WebUI, LobeChat, LibreChat, or another OpenAI-style client. It is not automatically equivalent to the complete Hermes Desktop or Dashboard control surface. Test approvals, session continuity, stopping, file flow, and model selection in the exact frontend/version you plan to rely on.
Four remote-access patterns
Pattern 1: messenger + existing computer
Phone → Telegram/Discord/Slack/iMessage → gateway on your computer
Pros: smallest infrastructure change.
Cons: the computer and gateway must stay awake and online.
Install the gateway as a service and verify that it returns after a reboot. If the host sleeps, the mobile interface is just a disconnected remote control.
Pattern 2: home server + Tailscale
Phone → private tailnet → authenticated dashboard/WebUI → home server
This is the best general recommendation for a private rich interface. Tailscale Serve can publish a local web service inside your tailnet, and tailnet access-control rules still apply.[17]
Use both layers:
- Network access through Tailscale.
- Application authentication on the dashboard or WebUI.
Do not confuse Tailscale Funnel with Serve. Funnel intentionally makes a service reachable from the broader internet.[18]
Pattern 3: official Desktop + remote backend
Hermes Desktop can connect to a dashboard running on a VM, homelab server, or other machine. The remote dashboard must be reachable, bound appropriately, and protected by authentication. A successful status probe does not prove that the authenticated chat WebSocket will work.[5]
This is the cleanest route when you want the official desktop experience but the runtime belongs on an always-on server.
Pattern 4: VPS
A VPS is useful when uptime matters more than access to files and applications on your personal computer.
Good VPS jobs:
- Research and web tasks
- Scheduled reports
- Messaging and email workflows
- Server administration
- Hosted WebUI/API clients
VPS tradeoffs:
- It does not automatically have your laptop's files, browser session, Apple apps, or local network devices.
- You own updates, backups, service supervision, logs, firewall rules, and secret rotation.
- Public services need authentication, TLS, and a deliberately limited exposed surface.
A VPS is not “more private” merely because you control the software; it moves the data and attack surface to another computer you must maintain.
Sessions: continuity is real, but not magical
Hermes stores conversations as sessions with source platform, title, model, system-prompt snapshot, history, tool calls, token counts, and timestamps.[3]
Useful gateway commands:
/new project-name
/sessions
/sessions search project-name
/resume project-name
/status
/sethome
/compress
Cross-platform handoff
From a CLI session, /handoff telegram, /handoff discord, or another configured destination can transfer the same live session to that platform's home channel. Telegram, Discord, and Slack can create a fresh topic/thread; platforms without thread support fall back to the configured home channel. Resume the same named session later from CLI.[3]
That is stronger than “memory will probably remember.” It is an explicit transfer of the session and transcript.
What does not automatically follow
- A generic API client's local conversation is not automatically the same thing as a gateway session.
- A community client's compatibility depends on the API it uses and the server version.
- Starting a new chat creates a new context even if the profile's durable memory is shared.
- Attachments are turn-scoped; raw media bytes are not endlessly re-injected into future prompts.[3]
Name important sessions. Use /new for unrelated work. Use /compress when a long session is valuable but text/tool output has filled the active context.
Bots, profiles, and account isolation
Profiles separate Hermes state: config, credentials, memory, sessions, skills, cron jobs, logs, and gateway state. They are the right boundary for “personal,” “work,” “family,” or a public/community bot.[9]
hermes profile create personal
hermes profile create work
hermes profile create shared-bot
hermes -p personal gateway install
hermes -p work gateway install
Each gateway should use its own bot token. Hermes documents token locks that prevent accidentally reusing the same bot token across profiles on Telegram, Discord, Slack, WhatsApp, and Signal.[9]
Critical distinction: a profile is not a filesystem sandbox. On the local terminal backend, two profiles still run with the permissions of the same operating-system user unless you add a stronger boundary.[9]
Use stronger separation when users do not fully trust each other:
- Separate OS account
- Container or sandbox with restricted mounts
- Separate VM or VPS
- Reduced toolset
- No personal credentials in the shared runtime
Prompt instructions are not a substitute for those boundaries.
Attachments and generated deliverables
Hermes can recognize generated file paths in a gateway response and upload supported images, audio, video, documents, spreadsheets, archives, presentations, and other artifacts as native chat attachments.[24]
But attachment support is not identical everywhere:
- Telegram, Discord, Slack, Matrix, and email have broad two-way file support.[2]
- BlueBubbles supports two-way images, audio (including voice notes as files), video, and documents; that file transport is separate from Hermes' voice-mode feature.[10]
- Photon currently sends outbound media but only exposes metadata for inbound attachments.[11]
- OpenAI-compatible API endpoints accept inline images, but uploaded non-image files are not accepted through those standard request shapes.[6]
- A file generated inside a container still has to be readable by the gateway process that uploads it.
If files are central to your workflow, test four separate actions before committing to an interface:
- Send a photo to Hermes.
- Send a PDF or archive.
- Ask Hermes to return a generated image.
- Ask Hermes to return a PDF or spreadsheet.
“Supports attachments” is too broad unless all four work for your route.
Voice: three different experiences
Do not collapse all voice features into “voice mode.”
1. Voice notes
Send recorded audio, receive text or spoken audio. Telegram and Discord are the best-documented general-purpose paths.[8]
2. Continuous voice on Desktop/CLI
Hermes supports microphone input, silence detection, streamed speech, automatic restart, and barge-in—speaking while the model is thinking or talking interrupts the turn. The desktop app uses the same voice pipeline.[8]
3. Discord voice channels
The bot can join a voice channel, transcribe participants, run the agent, and speak replies. This needs the appropriate Discord permissions and audio dependencies.[8]
A phone client advertising dictation is not necessarily providing full-duplex voice. Check whether it uses phone-local STT/TTS, server-side providers, voice-note exchange, or a real continuous session.
Maintenance: making “everywhere” survive the second week
A remote setup is not finished when the first message works.
Monthly checklist
- Gateway and dashboard/WebUI restart after a host reboot.
- The host does not sleep during expected availability windows.
-
hermes gateway statusshows the expected channels. - Only intended users remain paired or allowlisted.
- Lost or retired phones have been removed from the VPN/tailnet.
- Bot tokens, API keys, bridge passwords, and server passwords are stored as credentials and can be rotated.
- The runtime and mobile client are on compatible versions.
- Backups include the intended profile state and exclude secrets from casual archives.
- Disk and memory have enough headroom for sessions, logs, downloads, and generated artifacts.
- A local administrative path still works if the phone interface fails.
- A test cron or notification reaches the intended home channel.
- Sensitive tools still require the approvals you expect.
The gateway has a durable delivery ledger for final responses: after certain crash/restart windows it retries unsent replies and labels ambiguous mid-send recovery as a possible duplicate. That improves delivery reliability; it does not replace monitoring or service supervision.[2]
Privacy and trust boundaries
“Self-hosted” describes where software runs. It does not answer who can read the transport, who can reach the agent, or what the agent can do after a message arrives.
Minimum rules
- Allowlist users or approve pairing codes. Never leave a terminal-capable bot open to arbitrary senders.[2]
- Use a dedicated account for email, iMessage bridges, and shared bots where practical.
- Do not expose an unauthenticated dashboard, WebUI, or API server.
- Entering a server URL and credentials into any community client extends your trust boundary to that app and its update channel. Rotate the client token if you uninstall it or stop trusting it.
- Prefer Tailscale/VPN access over a raw public port for a private personal server.[17]
- Treat notification previews as data exposure. A locked phone can still display sensitive output.
- Require confirmation for sends, deletes, posts, purchases, payments, and credential use.
- Treat inbound email, public-channel text, links, and attachments as untrusted input.
- Use separate profiles for separate roles, then add OS/container/VM isolation when the users or data have different trust levels.[9]
- Know the revocation path before the phone is lost. Remove the device, revoke app sessions, rotate exposed tokens, and review paired users.
- Keep provider privacy separate from transport privacy. A private VPN does not change what your configured model or tool providers receive.
A practical isolation ladder
| Situation | Minimum reasonable boundary |
|---|---|
| One person, private bot | Allowlisted user + authenticated service + limited tools |
| Personal and work use | Separate profiles, credentials, sessions, and platform identities |
| Family or small trusted team | Separate shared profile + reduced tools + explicit user list |
| Community/public bot | Separate runtime/OS boundary + no personal data or credentials |
| Untrusted users or high-impact tools | Dedicated VM/container/VPS + strict mounts/network/tool policy + approvals |
What the community is actually doing
Method note: the five signal threads totaled 598 comments when this topic was selected. That is the planning snapshot, not a live count.
By August 29, the messaging, Desktop, and iMessage threads had reached 165, 153, and 137 comments.[19][20][21]
The phone and Hermes Console threads had reached 102 and 50, bringing the current total to 607 comments.[22][23]
Those are comments, not unique users, votes, or proof of reliability.
Pattern 1: there is no messaging-platform consensus
The preference thread's strongest answers included email, Discord, Telegram, Hermex, self-hosted Matrix, and Mattermost. That is not indecision; those interfaces represent different jobs.[19]
- Email users favored long asynchronous assignments.
- Discord/Slack users favored channels and project separation.
- Telegram users favored frictionless access.
- Matrix/WebUI users prioritized self-hosting and private networking.
- Native-client users wanted sessions and controls that chat apps do not expose.
Pattern 2: Desktop is loved and avoided for the same reason
People who want visibility into tools, sessions, files, and the agent's actual work tend to prefer Desktop. People who move constantly between devices tend to prefer a browser UI or messenger. Some reported a polished, comfortable experience; others found the navigation and update flow too complicated.[20]
Pattern 3: the best interface is often the one already in muscle memory
The iMessage thread's core claim was not that iMessage has more features than Telegram. It was that putting Hermes in the place the user already texts made the agent dramatically easier to reach.[21]
Pattern 4: mobile demand is ahead of mobile maturity
The phone thread quickly turned into requests for release links, Android parity, comparisons with Hermex, and recommendations for Hermes Console and Tailscale.[22] The Android Console thread was encouraging, but it also contained early setup and input bugs.[23]
That is the honest state of the ecosystem: real clients exist, adoption is growing, and the interfaces are still moving quickly.
Twelve mistakes to avoid
- Exposing the dashboard (default port 9119), API server (default port 8642), or a WebUI and assuming obscurity is authentication.[5][6]
- Assuming a phone client moves tool execution onto the phone.
- Using one personal profile for an untrusted shared bot.
- Calling a community client official.
- Calling a mockup or announcement released.
- Assuming all “voice” features are full-duplex conversations.
- Assuming all “attachment” claims include inbound documents and outbound deliverables.
- Depending on a laptop that sleeps while expecting a 24/7 assistant.
- Treating a Tailscale Funnel URL as private tailnet-only access.[18]
- Upgrading a community client and server independently without checking compatibility.
- Letting public-channel or email content reach dangerous tools without approvals.
- Treating a profile as an OS sandbox.[9]
Five setups I would recommend today
1. Easiest personal setup
- Hermes on your normal computer or small server
- Telegram DM
- Explicit user allowlist or pairing
- Gateway installed as a service
- Desktop/CLI retained for debugging
2. Apple-native setup
- Photon if you want the lowest setup burden and accept a managed iMessage route
- BlueBubbles if you have an always-on Mac and want to operate the relay
- Separate agent identity where practical
- Desktop retained for sessions and troubleshooting
3. Rich iPhone setup
- Hermes WebUI on an always-on host
- Strong WebUI password
- Tailscale Serve/private tailnet
- Hermex on iPhone
- Official Desktop or browser for administrative fallback
4. Rich Android setup
Choose one:
- Hermes Console for a more native control/admin surface—while treating it as a very new project with early bugs still being fixed and keeping Hermes-Android or browser WebUI as a fallback[23]
- Hermes-Android for the same Hermes WebUI experience across browser and phone
Use Tailscale or authenticated HTTPS. Keep the client, WebUI/dashboard, and Hermes versions recorded when reporting bugs.
5. Team setup
- Slack or Discord
- Separate Hermes profile and bot identity for the team
- Explicit member allowlist
- Channel/thread strategy agreed in advance
- Reduced tools compared with the personal agent
- Separate VM/container/OS account if team users should not reach personal files or credentials
FAQ
Does Hermes actually run on iPhone or Android?
Usually no. The verified mobile apps here are clients for a Hermes runtime on another machine. Running Hermes itself under Termux or another phone-hosted Linux environment is a separate experimental pattern with different limitations.
Can I start on Desktop and continue from my phone?
Yes—official surfaces can resume shared Hermes sessions, and from the CLI an explicit /handoff transfers a live session to a configured messaging platform. Do not assume every generic API frontend maps its local conversation to the same gateway session.[3]
What happens if the host sleeps?
The messenger, API, dashboard, and mobile client lose their runtime. Use an always-on host, keep-awake setting, or a server appropriate to the job.
Is there an official Hermes mobile app?
None was verified as first-party in this August 29, 2026 review. Hermex, Hermes Console, and Hermes-Android are active community projects.[13][14][15]
Is Tailscale enough?
It is a strong private-network layer, not a replacement for application authentication, user authorization, restricted tools, or host security.[17]
Should I use a VPS?
Use one for uptime, web work, messaging, and scheduled jobs. Do not expect it to inherit your local files, Apple apps, browser session, or home-network access automatically.
Which interface is best for privacy?
The one whose complete path you understand: client, network, authentication, runtime host, model provider, tool providers, logs, and backups. Self-hosted Matrix or an authenticated WebUI over a private tailnet can reduce reliance on a chat platform, but they also make you the operator.
Which interface should a beginner choose?
Telegram for speed. Official Desktop for visibility. Add a private WebUI/mobile client only after the base agent and gateway are reliable.
Your turn
Which interface do you actually use every day—not just the one you successfully configured once?
Copy this into a comment:
Interface:
Phone/desktop OS:
Where Hermes runs:
How often I use it:
What works reliably:
What still breaks:
What would make me switch:
The most useful replies will answer three things:
- What became your default interface?
- What worked during setup but failed in daily use?
- What one missing mobile or remote feature would change your setup?
Sources
[1] https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.27 — Hermes Agent v0.20.6 release [2] https://hermes-agent.nousresearch.com/docs/user-guide/messaging — Hermes Messaging Gateway [3] https://hermes-agent.nousresearch.com/docs/user-guide/sessions — Hermes Sessions and Handoff [4] https://hermes-agent.nousresearch.com/docs/user-guide/desktop — Hermes Desktop [5] https://hermes-agent.nousresearch.com/docs/user-guide/features/web-dashboard — Hermes Web Dashboard [6] https://hermes-agent.nousresearch.com/docs/user-guide/features/api-server — Hermes API Server [7] https://hermes-agent.nousresearch.com/docs/user-guide/messaging/open-webui — Open WebUI Integration [8] https://hermes-agent.nousresearch.com/docs/user-guide/features/voice-mode — Hermes Voice Mode [9] https://hermes-agent.nousresearch.com/docs/user-guide/profiles — Hermes Profiles [10] https://hermes-agent.nousresearch.com/docs/user-guide/messaging/bluebubbles — BlueBubbles iMessage [11] https://hermes-agent.nousresearch.com/docs/user-guide/messaging/photon — Photon iMessage [12] https://hermes-agent.nousresearch.com/docs/user-guide/messaging/email — Hermes Email Gateway [13] https://github.com/uzairansaruzi/hermex — Hermex iOS client [14] https://github.com/xP3ta/hermes-console — Hermes Console Android client [15] https://github.com/hermes-webui/hermes-android — Hermes-Android [16] https://github.com/nesquena/hermes-webui — Hermes WebUI [17] https://tailscale.com/docs/features/tailscale-serve — Tailscale Serve [18] https://tailscale.com/docs/features/tailscale-funnel — Tailscale Funnel [19] https://old.reddit.com/r/hermesagent/comments/1vxex9k — Preferred messaging platform thread [20] https://old.reddit.com/r/hermesagent/comments/1vtb3hx — Desktop app usage thread [21] https://old.reddit.com/r/hermesagent/comments/1vtka8z — Hermes via iMessage thread [22] https://old.reddit.com/r/hermesagent/comments/1w00bqv — Hermes belongs on your phone thread [23] https://old.reddit.com/r/hermesagent/comments/1vvzb6m — Hermes Console 1.2.7 thread [24] https://hermes-agent.nousresearch.com/docs/user-guide/features/deliverable-mode — Deliverable Mode [25] https://github.com/NousResearch/hermes-agent/blob/main/website/docs/user-guide/messaging/slack.md — Hermes Slack Gateway [26] https://x.com/AtlasOmnia/status/2093773553929736454 - Linked from X.
Cloud Models & Providers for Hermes Agent — The August 2026 Megathread
LAST UPDATED: August 23, 2026
Compiled from ~30 r/hermesagent threads and hundreds of comments (Aug 1–23), Hacker News discussion threads, live OpenRouter pricing (pulled Aug 23), and independent benchmark data. Every price is the live API rate unless marked as user-reported. Community disagreements are kept side-by-side on purpose. Companion to u/carlonox's request in the Megathread Submission Request thread — yes, this replaces the stale recommendations.
Part 1: TL;DR — The Consensus Table
| Decision | Community Pick | Runner-Up | Watch Out For |
|---|---|---|---|
| Budget daily driver | DeepSeek V4 Flash 0731 (direct API) | Ollama Cloud Pro $20 | Aug 16 peak/off-peak pricing; cache-pin your setup |
| Best $20/mo subscription | ChatGPT Plus (Luna, near-unlimited) | Ollama Cloud Pro / Nous Portal Plus | Luna context-capped ~256k on subs |
| Heavy agentic use ($200 tier) | Codex Pro via OAuth (1.4B tokens/mo reported) | Claude Max 20x | Claude sub tokens can't be used in Hermes directly |
| Quality ceiling | Claude Opus 5 / Sonnet 5 (API) | GPT-5.6 Sol high | Sol burns tokens; "eat your tokens like cookies" |
| Free testing | OpenRouter free tier (~14 models) | NVIDIA NIM (free, 1M ctx) | Rate limits; free models train on your data |
| Orchestration model | GLM-5.3 (tied #1 agentic index with Opus 5) | GPT-5.6 Terra high as default | Beijing-hours congestion; token-hungry |
| New this month worth trying | Qwen3.8-27B hosted ($0.40/$3 per M) | Meta Muse Spark 1.2 (budget) | Hosted quality varies by provider |
The August 2026 earthquake in one paragraph: DeepSeek raised prices Aug 16 (peak/off-peak, up to 3–5× at peak), OpenRouter got bought by Stripe for $7B+, GPT-5.6 Sol dropped 50% on OpenRouter only while Luna (~80% cut) and Terra (20%) got their own cuts, Gemini killed postpay billing Aug 13, and Qwen3.8-27B landed as a hosted option for those without the VRAM ("matches GPT-5.6 Luna on Max reasoning… for the cost of electricity" — one local runner's take). Three of those five change everyone's math.
Part 2: The Decision Tree
Start here, follow the first line that matches you:
- "I spend under $10/mo and want it to stay that way" → DeepSeek V4 Flash direct + aggressive caching (off-peak hours). Below even that: OpenRouter free tier or NVIDIA NIM, accepting rate limits.
- "I have a $20/mo budget and want zero admin" → Ollama Cloud Pro if privacy (zero-retention) matters most; ChatGPT Plus (Luna) if you're already in that ecosystem; Nous Portal Plus for 300+ models on one key with Hermes-native integration.
- "I run agents all day and pay-as-you-go is eating me alive" → Flat subscription, full stop. As one poster put it: "Agents love getting stuck in retry loops and vaporizing pay-as-you-go balances while you sleep, so locking in a flat monthly sub is just basic financial self-defense." Codex $200 OAuth is the current king of raw tokens (1.4B/mo reported, ~90% cache hits).
- "I need maximum quality on hard tasks regardless of cost" → Claude Opus 5 or Sonnet 5 via direct API, or GPT-5.6 Sol at high effort. Note: Opus-class is the bar everyone measures against, but one camp now argues GLM-5.3 tied Opus 5 on the agentic index at a fraction of the price.
- "I want to orchestrate multi-agent Hermes setups" → The emerging community pattern: a strong orchestrator + cheap subagents. Reported working combos: GLM orchestrating + DeepSeek Flash subagents; Terra-high default with Sol reserved for stuck-points.
- "I'm price-sensitive but don't trust Chinese data handling" → This disqualifies DeepSeek/Z.ai/Kimi/MiniMax direct. Your lane: Ollama Cloud (zero retention), Gemini free tier (mind the key-leak hygiene), or Western-hosted open models via DeepInfra/Fireworks — noting these still serve Chinese-origin weights, so the distinction is about who operates the endpoint. Free tiers generally mean your data trains something.
Part 3: Provider Tiers
🥇 Tier 1 — The community defaults
DeepSeek direct API — still the price floor off-peak for most users, superb tool-calling, cache-hit rates up to 97% reported. Dissenting camp exists post-hike: some argue the peak/off-peak complexity means "not worth it via direct API anymore" since gateways kept old prices — weigh whether you'll actually hit off-peak windows. The Aug 16 hike introduced peak/off-peak windows (peak = 01:00–04:00 & 06:00–10:00 UTC; weekends all-off-peak). Budget win reported: $5.80 over 3 weeks with caching discipline [user-reported]. Watch-for: no vision; your data may train their models.
OpenRouter — 500+ models, one key, auto-fallback, widely praised developer experience (though one HN commenter reports smart routing producing worse results at higher cost). Now owned by Stripe ($7B+, closed Aug 19). Sentiment split: praised for UX, panned for support ("No support exists when things go wrong") and post-acquisition anxiety ("RIP OpenRouter… enshrittification will be inevitable" — one voice among many, not consensus). Critical operational tip from the burn threads: pin to ONE provider per model. Provider-mixing destroys prompt-cache hits and can double or triple your effective cost.
ChatGPT/Codex subscriptions — Luna at $20 is described as "practically unlimited" and needs ~2.8× fewer tokens than DS Flash for similar task performance. Codex $200 = 20× monthly tokens via OAuth. Watch-for: context caps (~256k–272k) on subscription tiers.
🥈 Tier 2 — Strong alternatives
Nous Portal ($20/mo Plus) — the official Hermes-native path: 300+ models, one subscription, tool gateway, 900k context added Aug 19. Verdicts are genuinely split: fans report 50M tokens ≈ $2 during promos; critics calculate only "$22 in API value" for the base plan vs Codex's "$70–100" [anecdotal]. One user-reported burn: ~€70/week through Portal API credits, mostly DS Flash 0731 [anecdotal]. DeepSeek V4 Flash notably did NOT raise prices there after Aug 16. If you want the zero-config Hermes experience, this is the path of least resistance.
Ollama Cloud Pro ($20) — the privacy pick: zero data-retention policy, DS V4 Flash included. One user claims 15k+ requests/month [anecdotal]; another disputes the weekly-vs-monthly framing. Either way: rare billing complaints.
OpenCode Go/Zen ($10 + credits) — 2× credit value, Hermes-fallback-friendly. Turbulent August: DeepSeek moved to a China-based provider (ZDR concerns), the 0813 model was briefly broken during pricing rollout, and rate-limit complaints surfaced. They've said they're working on matching old prices with own inference. Watch this space before committing.
Z.ai (GLM-5.3) — tied #1 agentic index with Opus 5 (HN, Aug 18 release). The Max coding plan (~$120/mo) gets called "the best/most affordable plan" for heavy users. Watch-for: Beijing-hours congestion makes Hermes unresponsive during EU/US mornings; API pricing for 5.3 took days to appear after launch (now live at $1.4/$4.4).
DeepInfra — cheap, good caching ("handles caching much better… saves a ton on reasoning via cache reads"). One quality complaint when accessed through OpenRouter pairing. Worth benchmarking yourself.
🥉 Tier 3 — Budget/free lanes (all with catches)
| Lane | The deal | The catch |
|---|---|---|
| OpenRouter free tier | ~14 free models incl. GLM-5.2 | Frequent 429s; free models generally train on your data |
| NVIDIA NIM | Free, 1M ctx, Nemotron 3.5 family | Model quality mixed for agent work |
| Hetzner Experiments | Free GLM/DS/Kimi/Qwen endpoints, 5M tokens/day | Signup friction, ban risk for sustained agent use, models rotating out |
| Omniroute/Orcarouter | Free aggregators, OAuth-based | Unvetted; treat credentials accordingly |
| Meta Muse Spark 1.2 | Cheaper than pre-hike DS Flash; transparent pricing | New, availability-limited |
| Tencent Hy3 | "Benches like DS Pro, costs like Flash" | Chatty output style |
⚠️ Gray-market resellers (discounted token sites, "unlimited Claude" bridges) exist and some users report reliability. These carry real account-ban and payment risk. Anthropic has both sued over subscription advertising and sent legal letters to harness makers bridging subs into APIs. That's your risk landscape; this megathread doesn't recommend them.
Part 4: Model-by-Model Quick Verdicts (cloud)
| Model | Best for | $/M in-out (live OR) | Community watch-fors |
|---|---|---|---|
| Claude Opus 5 | The quality bar | $5/$25 | Pricey; "none is universally as good" vs "Opus doesn't even have quality anymore" — both camps active |
| Claude Sonnet 5 | Reliable default premium | $2/$10 | Newest Sonnet; cheaper than 4.6 per token |
| Claude Sonnet 4.6 | Previous-gen default | $3/$15 | Subscription can't feed Hermes directly |
| GPT-5.6 Sol | Hard planning, one-shots | $2/$10 (−50% on OR mid-Aug) | Token furnace; polarizing ("beast" vs "overengineers everything") |
| GPT-5.6 Luna | Daily driver | $0.20/$1.20 | "Feels dumb in long context" reports vs "seriously underrated" |
| GPT-5.6 Terra | Cheap default | $2/$12 | The "Terra high default, Sol only when stuck" pattern |
| Gemini 3.7 Flash | Multimodal, free tier | $0.38/$1.88 | Prepay-only since Aug 13; key-leak horror stories ($82k/48h) |
| DeepSeek V4 Flash | Budget workhorse | $0.054/$0.11 (off-peak) | Peak/off-peak windows; no vision; data training |
| DeepSeek V4 Pro | Sanity-check tier | $0.414/$0.828 | Cache-hit pricing up to 12× differential |
| Qwen3.8-27B hosted | Local-class quality, no GPU | $0.40/$3.00 | Hosted quality varies by endpoint provider |
| Kimi K2.7-Code | Long autonomous runs | $0.67/$3.40 | Token-hungry; "digest my entire month's tokens in minutes" |
| Kimi K3 | Open-weight flagship | $3/$15 | Now pricier than Sol per HN commenters |
| GLM-5.3 | Orchestration, agentic | $1.4/$4.4 | Beijing-hours lag; no multimodality |
| MiniMax M3 | Bill-over-brilliance round-the-clock | $0.30/$1.20 | Most polarizing model in the corpus: "stupidest I've tried" AND "code with it all day for less than a dollar" |
| Grok 4.5/4.6 | Rising value pick | $2/$6 | "Opus-level" claims are user-reported, not benchmarked |
| Qwen3.8-Max 2.4T | Frontier open-weight | $2/$6 | Massive; new |
Part 5: The Cost Reality Section (numbers as reported, single-source flagged)
Horror stories (learn from them):
- $5 in ONE day on DS Flash via OpenRouter — root causes found in-thread: provider-mixing killing cache hits + Hermes skill bloat re-sent every cron session
- $200+ credits burned on "simple coding tasks" via OpenRouter; the poster switched to subscription OAuth afterward
- ChatGPT business plan gone in 2 days — consensus in-thread: Sol was the culprit, not Hermes
- $25/day Gemini 3 Flash for two users + ops
[anecdotal] - Key-leak cautionary tales outside Hermes: $82k in 48h from one leaked Gemini key
Budget wins (also real):
- DS Flash direct with caching discipline: $5.80 over 3 weeks including 140M-token sessions
- Codex $200 OAuth: 1.4B tokens/month, never limit-hit
- MiniMax M3: full-time coding under $1/day
- Nous Portal promo: 50M tokens for ~$2
- 2.5B DeepSeek tokens for $40
The three habits that separate the two columns: pin providers, cache aggressively, cap your cron sessions' skill payloads.
Part 6: FAQ
Q: Is OpenRouter still safe to use after the Stripe acquisition? A: Yes today; service continues normally. Long-term pricing/support direction is the open question — the community is watching, not fleeing.
Q: Why did my DeepSeek bill triple? A: Aug 16 peak/off-peak pricing. Peak is 01:00–04:00 & 06:00–10:00 UTC daily; weekends are all off-peak. Shift cron jobs to off-peak and check your cache-hit rate.
Q: Can I use my Claude Max subscription inside Hermes? A: Not directly — Anthropic subscription tokens don't feed third-party harnesses, and bridge workarounds carry ban risk (documented bans exist). Pay API rates or pick a different provider.
Q: What's actually the cheapest way to run Hermes agents all day? A: A flat subscription (Ollama Cloud $20, Nous Portal $20, Codex $200 for serious volume) beats pay-as-you-go for sustained use. Pay-as-you-go wins only with >95% cache-hit discipline on direct DeepSeek.
Q: Which model should orchestrate vs execute in multi-agent setups? A: Community pattern: strong-but-pricier orchestrator (GLM-5.3, Terra high), cheap executors (DS Flash, MiniMax) on subagents.
Q: Are the free tiers usable for real work? A: For testing and light use, yes. Sustained agent loops hit rate limits fast everywhere, and free tiers generally mean your data trains something.
Q: Is Qwen3.8-27B worth running hosted if I can't run it locally? A: It's the cheapest path to its capability class ($0.40/$3). Local runners report it matching Luna-class cloud performance; hosted-endpoint quality varies by provider, so pin a reputable one.
Q: Did GPT-5.6 Sol really get cheaper? A: On OpenRouter only (−50% mid-August). Direct OpenAI pricing unchanged — another reason routing choice matters.
Part 7: Knowledge Table
| Provider/Model | Type | Entry price | Best for | Watch for |
|---|---|---|---|---|
| DeepSeek direct | API | ~$0.05/M in off-peak | Budget daily driver | Peak windows; data training |
| OpenRouter | Gateway | Free tier + usage | Model variety, one key | Pin providers; support gaps |
| Nous Portal | Sub | $20/mo | Hermes-native simplicity | Value debated at base tier |
| Ollama Cloud | Sub | $20/mo | Privacy (zero retention) | Model selection narrower |
| ChatGPT Plus | Sub | $20/mo | Luna daily driving | Context caps on subs |
| Codex Pro | Sub | $200/mo | Maximum tokens via OAuth | Overkill below pro-heavy use |
| Claude direct | API | $2–5/M in | Quality ceiling | Pricey; no sub bridge |
| Z.ai | API/Sub | ~$120/mo Max plan | Agentic orchestration | Beijing-hours congestion |
| OpenCode Go/Zen | Sub+Credits | $10/mo | Credit-multiplier value | August turbulence; watch |
| DeepInfra | API | Usage-based | Cheap open models, caching | Verify per-model quality |
| NVIDIA NIM | Free API | $0 | Free 1M-ctx testing | Agent-work quality varies |
| Gemini API | API | Prepay | Multimodal, free tier | Key security critical |
| Hetzner Experiments | Free | $0 | Free frontier-model sampling | Bans; rotating models |
| MiniMax | API | ~$1/day | Round-the-clock coding | Polarizing quality |
| Kimi/Moonshot | API | $0.45–$3/M in by model | Long autonomous runs | Token-hungry; K3 now premium-priced |
| Muse Spark 1.2 | API | $0.10/M in | Post-hike budget pick | Availability limits |
| Tencent Hy3 | API | Flash-tier | Pro-quality at Flash price | Chattiness |
| Grok (xAI) | Sub/API | $30 Supergrok | Rising value claim | Claims not yet benchmarked |
| Qwen3.8-27B | Hosted | $0.40/M in | Local-class sans GPU | Endpoint variance |
| Omniroute etc. | Free gateway | $0 | Free model aggregation | Unvetted; credential care |
Part 8: Contribute & Correct
Prices moved at least four times this month and will move again — drop corrections with receipts in the comments and I'll fold verified updates into the next revision. If you're a provider rep: disclose that, and bring data. Sources: 30+ r/hermesagent threads from Aug 1–23 and Hacker News discussions were mined during research (community quotes paraphrased with attribution preserved where load-bearing); live OpenRouter API pull Aug 23; Artificial Analysis provider boards. Community quotes are condensed rather than verbatim-linked to keep this readable — ask in comments and I'll drop the permalink for any specific claim.
Not affiliated with any provider listed. No referral links.
# Qwen3.8-27B — One Week Later: The r/LocalLLaMA + r/LocalLLM Verdict
Companion to the Qwen 3.8 Release Megathread. Compiled from ~2,000 posts scanned across both subs, with deep reads of the 45 highest-signal threads (560 posts and comments), Aug 15–22, 2026, plus independent X benchmarks. Every number is attributed to the poster's stated hardware/runtime/quant. This community contradicts itself on nearly every axis — so this thread keeps the disagreements side-by-side instead of picking a winner for you.
TL;DR
- The consensus pick: a 27B dense multimodal model that genuinely moved the bar for local agentic coding. The strongest claim with controlled evidence behind it isn't benchmarks — it's tool-calling reliability.
- The default ships at xhigh reasoning and it thinks a lot. Low and medium presets score nearly as well on Artificial Analysis (~43/44 intelligence index, within a few points of the xhigh headline) while cutting thinking tokens ~7–9x (and wall time ~6–7x). Most of you should not be running xhigh.
- Knowledge recall regressed vs 3.6 — widely reported and best understood as a deliberate agentic-design tradeoff. Trivia nerds: keep Gemma around.
- Q4_K_M is basically indistinguishable from Q8 on perplexity, but real-world reports split hard below Q6 for complex reasoning. KV cache quantization is one of the most contested settings in the corpus.
- The "neck and neck with DeepSeek V4 / GPT-5.6 Luna Max" AA headline is real but heavily caveated — see the benchmark credibility section before quoting it at your friends.
1. What it's actually good at
Agentic coding (strongest consensus area)
- "Highest level of agency I've ever seen in a local model" (thread): single 3090, Unsloth Q4_K_S + q8 KV, 150k ctx. From one prompt it pulled the OP's class schedule off a convoluted university website via 80 tool calls, zero human intervention.
- 1M+ token run (thread): RTX 5060 Ti 16GB, UD-Q3_K_XL, 73k ctx. Full REST API + MCP server for a legacy forum from 3 prompts.
- Controlled tool-call evidence: in a plain Python tool loop (no framework), one reporter got zero failed calls from 3.8 while Gemma 4 A4B and Qwen3.6 A3B failed often — the same reporter who rates 3.8 below both on raw code quality. Worse judgment, perfect plumbing.
Creative / game generation
- One-shot playable Super Mario clone (Q8, Framework Desktop) — top pushback: "It's in the training data."
- Galaga 1:1 recreation test (UD-Q8_K_XL, 3×3090 + Tesla P40): "This 'Galaga' clone [from 3.6] ended up pretty much being a space invaders clone instead... Qwen 3.8 thinks a LOT, but it draws out those tiny details and absolutely nails it after the fact." A separate r/LocalLLM user one-shot a playable Galaga-style game at IQ4_XS on dual 4060 Tis, and another built an online multiplayer MOBA overnight with an authoritative server and self-play testing.
- Ray-traced spheres in BASIC: 3.8 self-iterates to a correct Cook-Torrance ray-tracer; 3.6 needed hand-holding. Comment: "this feels more like 3.6 to 4.6 than 3.6 to 3.8."
Vision
Works natively (F16 mmproj), including OCR-style reading of a newspaper image at ~1,000 image tokens — but on a 16GB card at 64k ctx + MTP it leaves as little as ~150 MiB VRAM free. Practical advice from the 16GB crowd: keep text-agent and vision profiles separate, or offload the projector (--no-mmproj-offload).
Where it struggles
- Long analytical/document work: "a step backwards" vs 3.6 at default settings — though a legal-domain poster got on-par-with-122B results with MCP + case access. Task-dependent.
- Complex native coding: one failed C kernel effort (6 hours across 3 sessions)
[anecdotal], quant unstated; commenters say Q8 minimum for that tier of work.
2. The thinking-level situation (read this before complaining)
xhigh is the shipped default. It is why your context window evaporates.
Measured ladder (RTX 5080 Laptop 16GB, llama.cpp 10451, UD-IQ3_XXS, Q8_0 KV + FA + MTP, pelican-SVG task, 3 seeds):
| Effort | Reasoning tokens | Wall time | Visual score /25 |
|---|---|---|---|
| Low | 4,418 | 112 s | 21.8 |
| Medium | 5,918 | 127 s | 22.5 |
| X-High | 39,398 | 718 s | 24.0 |
That's ~6.4x the wall time for +1.5 points on an eyeball task. But on pass/fail SWE-style tasks, xhigh went 9/12 vs 6–7/12 at lower efforts — the premium scales with whether the task has a verifiable failure.
How to change it: --chat-template-kwargs '{"reasoning_effort":"medium"}' (llama.cpp) or the equivalent in LM Studio custom params.
The overthinking debate, both sides preserved:
- Against: "it will do eight or nine web-search turns and spin its wheels down every rabbit hole" (legal work). One reported loop burned 40k+ characters of reasoning on a trivial subtask. One paper-linked post argues intermediate tokens aren't reasoning at all ("Stop Anthropomorphizing Intermediate Tokens," 538 points).
- For: "if the extra thinking produces measurably better results it's actually just the correct amount of thinking." The low/medium AA scores (~43/44) are the strongest counter to "it only wins by overthinking" — though two commenters read that same data in opposite directions.
Practical takeaway from the corpus: medium for chat/analysis, xhigh only when there's a verifiable right answer.
- The strongest controlled effort data of the week is from X: @superalesha's 67-hour, 40-arm run found xhigh burned 7–11× more reasoning tokens than low for 0–4.7 extra points — and in one head-to-head, low matched xhigh exactly (89.3%) at 1/7.5th the tokens. Also: medium scored below low on every stack (all the damage in HumanEval+ — "that preset overthinks short coding tasks"). His verdict: "low is the rational preset. xhigh is for leaderboard screenshots." That's harsher than the Reddit consensus — weigh both, but it's the biggest sample size anyone published this week.
More data points from the week:
- Medium vs xhigh "actually insane" (223 pts): medium ≈ a couple thousand thinking tokens; xhigh 15–20k minimum, one pacman build hit 40k. But the same thread's best counterpoint: on a bug-finding test, xhigh took 7 min vs medium's 80 s and caught every bug; medium only caught the critical ones. And on a research task xhigh autonomously cloned a repo and read source to verify an answer — neither medium nor 3.6 did.
- Different thinking levels (287 pts): "Even the low preset is better than Qwen 3.7 plus or Qwen3.6-27B reasoning" — the level you pick changes speed, not whether it beats last generation.
- There is no "high" effort — the ladder is low / medium / xhigh(default), and the gap between medium and xhigh is the complaint that keeps generating threads. Commenters note the efforts aren't just prompts: Qwen specifically trained each level's instruction text in during RL.
- Don't confuse budget with effort (PSA): llama.cpp's web-UI reasoning selector is a hard token cap that truncates mid-thought — it is not Qwen's native effort levels, which actually change how thoroughly the model works. On recent builds use
--reasoning-effort medium(or the--chat-template-kwargsform on older ones); anything else silently caps instead of steering. - The "well?" trick: interrupt mid-think and type
well?— the model concludes "the user is impatient, let me finish quickly" and wraps up faster. Works, but commenters consider it a last resort; the thinking is where the quality lives. - Dissenters exist: one medium-vs-xhigh post claiming "1/20th the time for almost the same quality" got pushed back hard — top reply: low/medium left them unimpressed, xhigh is where frontier-tier coding shows up. The honest split: for chat and eyeball tasks medium is ~free; for verifiable correctness xhigh keeps earning its cost.
3. Knowledge regression vs 3.6 — real, and deliberate
The dedicated thread: 3.8 fails pocket-trivia questions 3.6 reliably answered, at every quant tried. AA's offline Omniscience benchmark agrees.
Community framing: 3.8 is trained to go search instead of recalling, i.e., an agent-first tradeoff. Mitigations posted: RAG/MCP (offline Wikipedia ZIM), or run Gemma 4 31B as a knowledge sidecar.
Counter-data point: a separate legal-work thread reports Harvey-benchmark scores on par with Qwen 3.5-122B once MCP + case access are attached (61/75 raw vs 71/75 with a tool backend). The knowledge didn't vanish; it moved into the toolbox.
4. Quants: what holds up
The one controlled perplexity sweep (16GB-fitting quants, wikitext-2, RTX 5060 Ti)
| Quant | Size | PPL | vs Q8 |
|---|---|---|---|
| Q8_0 | 27.0GB | 6.956 | 100% |
| Q4_K_M | 17.1GB | 6.958 | 99.97% |
| IQ4_XS | 14.6GB | 7.013 | 99.2% |
| UD-Q3_K_XL | 12.5GB | 7.111 | 97.8% |
| NVFP4 (Q5K) | 14.4GB | 7.200 | 96.6% |
Poster's call: Q4_K_M is the sweet spot; NVFP4 was the biggest disappointment (same size as IQ4_XS, worse PPL). Pushback worth reading: "PPL degrades less than real world performance… ordering flips near the 4-bit level."
The Q4-vs-Q6 war (unresolved)
- Team Q6/Q8: "q8 dramatically better than q4 for complex reasoning"; one user reports flawless 264k-ctx Q6_K_XL sessions, 2 mistakes per 2M tokens.
- Team Q4-fine: "I run q4 and can only praise the model… just do not go below q8 KV cache."
- Nuance: "there are like 5 different Q4s and they are not equal" — NVFP4 ≠ MXFP4 ≠ Q4_0 ≠ UD-Q4_K_XL. Past ~Q5 with dynamic quants, differences get hard to detect.
The biggest controlled quant test of the week (X)
@superalesha ran a 67-hour benchmark: five full production stacks (FP8 vLLM, NVFP4 W4A16 vLLM, AWQ INT4 vLLM, GGUF Q4_K_M llama.cpp, NInfer — all on RTX 3090s), 40 arms across every reasoning effort, 4,800 tasks / 10,120 requests / 14.5M reasoning tokens, no caps. Results:
- At xhigh every quant landed between 88.0–90.0% pass@1 — AWQ INT4 90.0%, NVFP4/GGUF-Q4_K_M 89.3%, FP8 baseline 88.7%, NInfer 88.0%. The 4-bit quants scored above FP8; McNemar says statistical tie (first vs last = 3 tasks out of 150). "The gap between quants is smaller than the gap between reasoning presets."
- The weirdest number: GGUF Q4_K_M at low effort scored the same 89.3% as xhigh — on 86k reasoning tokens instead of 651k. Across all stacks, xhigh burned 7–11× more tokens than low for 0–4.7 points.
- The one statistically real gap: NVFP4 with reasoning OFF collapsed on HumanEval+ (13/30 vs FP8's 30/30, p=0.0041). Flip it to low and it's instantly back to 90/90. Never run reasoning off — it costs 8–12 points everywhere.
- His cheat sheet: max quality = AWQ INT4 xhigh; daily driver = GGUF Q4_K_M low; honesty note: three of his FP8 arms failed his own methodology audit (leftover token caps) and are being rerun.
This largely settles the Q4-vs-Q6 war for this model at task-level benchmarks — but note the tension with the PPL sweep above: perplexity says NVFP4 is measurably worse than IQ4_XS; task performance says they tie. Both can be true (PPL measures token-level divergence; tasks measure whether errors get caught). And community reports of Q4 reasoning loops remain real — "passes benchmarks" and "never loops in a 2M-token session" are different requirements.
1-bit: comedy, not compute
Unsloth founder in the 1-bit thread: "I would not suggest folks use 1-bit for agentic use cases / tool calls" — divergence hits 92% from BF16 by token 32. General chat survives; agents don't. If you must: presence_penalty = 1.5.
KV cache — among the most contested settings in the corpus
- f16-vs-q8_0 are not equivalents per one AMD tester (f16 held quality past 120k ctx).
- But 16GB users run q4_0/q4_1 KV happily at 64k–164k all week.
- Working rule from comments: don't quantize KV unless you must; if you do, aim ≥ q6; word-of-mouth floor is Q4 model + Q8 KV for agent loops.
Unsloth Dynamic v3 notes
MTP removed from quants below UD-Q2_K_XL and re-uploaded separately (some users still see draft logs in Q5_K_XL — unresolved). Imatrix released; no QAT used.
5. Performance matrix (attributed)
| Hardware | Runtime / setup | Context | Result |
|---|---|---|---|
| RTX PRO 6000 96GB | llama.cpp PR #27342 DFlash2, Q4_K_M | 262k | 153.9 t/s = 2.26× plain; 304.9 t/s = 4.68× with ngram table (coding prompts); ngram −30% on prose |
| 2× RTX 3090 | vLLM + AutoRound INT4 + DFlash2 | 131k | 120 narrative / 218 code decode |
| Single RTX 4090 | llama.cpp, UD-Q4_K_XL, MTP + Q4 KV (see X benchmarks below) | 130k | ~60 t/s |
| Single RTX 4090 | same + DFlash2 drafter + --parallel 1 (X) |
250k | 73.7 t/s |
| RTX 5090 32GB | NVFP4-MTP-LOW | 262k | 121 t/s (vs Q6_K collapsing to 16.3 — 7.5×) |
| RTX 5090 32GB | vLLM + unsloth NVFP4, fp8 KV, MTP-2 | 131k | 110–112 t/s sustained |
| RTX 5090 32GB | llama.cpp 10536 | long gen | degrades 122 → 69 t/s within one generation (bug filed) |
| RTX 5060 Ti 16GB | UD-IQ4_XS + MTP-1, Q4_0 KV | 64k | 45.6 t/s |
| Strix Halo 128GB | Q8_0 + Q8 KV, ROCm, MTP | 142k | 9–19 t/s, MTP accept 97–99% |
| RX 7900 XTX | UD-Q4_K_XL Vulkan, MTP, q4_0 draft-KV | 131k | 50–60 t/s; -np 1 made a "HUGE" difference |
Why "~200 tok/s" claims don't reproduce for you: Windows/WDDM costs 10–15% vs Linux; headlines are measured at short contexts; MTP acceptance is workload-dependent (drops on prose, sometimes net-slower); and the fastest figures come from Blackwell-tuned engines (ninfer), not llama.cpp.
X/Twitter benchmark highlights
- @analogalok's full RTX 4090 matrix: UD-Q4_K_XL on latest llama.cpp. FP16 KV tops out at 100k ctx (40.9 t/s); q8 KV reaches 170k; q4_0 KV fits the full 262k native context in 24GB at 40.7 t/s. Native MTP: 59–60 t/s at 80–130k. Includes exact reproduction flags.
- His follow-up:
--parallel 1+ a Q2_K DFlash2 drafter unlocks 250k ctx @ 73.7 t/s (Q4 KV), 150k @ 75 t/s (Q8 KV), or 90k @ 80.6 t/s (FP16 KV) on one 4090 (requires llama.cpp PR #27342). - NVIDIA forums: DGX Spark face-off, SGLang+DFlash2 vs vLLM+MTP, greedy vs official thinking sampler — DFlash2 won.
6. Failure modes & bugs (reproducible ones)
- Tool-call failures are usually your tool list, not the model. Best controlled experiment in the corpus: 8 undescribed tools → 0/6 successes; the same tool alone → 15/15; 13 described tools mid-list → 0/5, moved to end → 3/3. Give every tool a description, put critical tools last, don't put examples in descriptions. Every framework failure report (Opencode/Pi/Claude Code) has a plain-loop counterexample in the same threads.
- Hermes harness specifically: constant tool-call failures on vLLM; "perfect, no issues" on llama.cpp
--jinja+ q8_0 KV at 256k. Template/parser alignment issue, not weights. - Hallucinated user instructions during thinking (reproduced on 2 machines, Pi harness): the model imagines an impatient user and once reverted a commit after imagining a French objection. Community fix: the froggeric fixed chat template (see section 7) eliminates the stock-template tool-call/recovery bugs.
- temp=1.0 garbage output: thinking falls apart into single-character spam within 10–20k tokens across llama.cpp/vLLM, INT4 through BF16. Diagnosis: sampler, not quant. Fixes: temp 0.1, or split sampling (0.8 main / 0.2 post-thinking). Counter-report: temp 0 caused a 70k-token loop instead. No universal setting exists — tune per task.
- Decode degradation: 122 → 69 t/s within one generation on 5090 llama.cpp; vLLM/ninfer hold >100. Bug filed upstream.
- Long-context quality drop: an NVFP4+vLLM eval on B200 scored only ~37% correct in its longest context bucket
[single report]; separately, a commenter running official BF16/FP8 via the published vLLM recipe reports agents degrading past ~20k tokens and structured outputs breaking past 20k[single report]. Counterpoint: an f16-KV user on UD-Q4_K_XL (ROCm) says their setup held quality past 120k ctx. Config-dependent; verify on yours. - Q8 anomaly reports (Unsloth UD_Q8_K_XL offload/CPU pegging): weak evidence, disputed; most Q8 users report zero issues.
- Reasoning loops at aggressive quants: 40k characters looping on "angry birds" at Q4-with-QKV-quant, including self-aware "I'm stuck in a loop" narration. Never-seen-it-at-Q6 claims abound.
7. The chat-template situation (read before debugging anything)
The official Qwen 3.8 Jinja template shipped with real bugs, and the community shipped fixes within 48 hours:
- Official template issues:
enable_thinking=falsecrashes; multi-turn history gets poisoned with blank\\thinktags; tool calls crash when your client sends arguments as JSON strings (the standard OpenAI format); mid-dialogue system messages get dropped, wedging agent loops. - froggeric/Qwen-Fixed-Chat-Templates (HF, thread, 334 pts) is the consensus drop-in replacement: safe
mediumdefault (kills the burn-20k-tokens-then-return-empty xhigh bug), thinking toggle restored, JSON-string tool-call crash fixed, inline effort steering via<|think_low|>/<|think_medium|>/<|think_xhigh|>, and chronological thought preservation for clean KV prefix caching. Actively maintained — v22.1 as of Aug 21. - Format-fidelity alternative: a second template stays closer to the exact official prompt format on the theory that deviations subtly degrade quality even when they look fine manually. Pick it if you're benchmarking; pick froggeric for daily driving.
- Upstream note: llama.cpp merged reasoning_effort forwarding on Aug 14 — recent builds pass
reasoning_effortto any template correctly. That fixes the plumbing, not the official template's own bugs. A fixed template is still recommended.
8. Benchmarks: believe selectively
- Artificial Analysis: headline posts put 3.8-27B neck-and-neck with DeepSeek V4 and GPT-5.6 Luna Max. Low/medium presets score ~43/44 — the key evidence the gains aren't pure overthinking. Agentic index: medium = xhigh − 1 point.
- The pushback ("A meaningless benchmark", 106 points): the index ranks this 27B above DSV4 Pro, Kimi 2.7 Code, Opus 4.6 and Sonnet 5 — "whatever 'Intelligence' means to AA... is definitely not the same definition we should be using here." Defenders: it's an aggregate skewed toward agentic/science/coding; read the methodology and pick sub-benchmarks for your use case. LiveBench gets respect for monthly task refreshes.
- Best independent test found: AIME 2026, exact-match, temp 0, pass@1 — FP8-xhigh scored 29/30 (96.7%), tying Opus 4.6 and DeepSeek V4 Pro in the poster's table, vs 94.1% for Qwen3.6-27B. Caveats: single run, problem 7 exhausted the token budget in both precisions (empty, not wrong).
- Production blind A/B (thousands of tasks): 3.8 wasn't worse at doing the thing — it was worse at knowing when not to do the thing (+50% noise output).
- Honest calibration: "Opus-level" is real at some tasks, with the right quant and harness. The thread titled "Qwen 3.8 isn't Opus 4.6 level. Let's not be silly." failed at Q6 in VS Code — commenters blamed the editor and the quant, but the burden of proof stays on the demo.
9. Ecosystem: what shipped this week
- DFlash2 (llama.cpp PR #27342, still in review): 2.26×–4.68× on real coding prompts, +2.7GB VRAM. N-max 5 beats the recommended 7;
--spec-draft-p-minsilently does nothing; stacking ngram-mod hurt (opposite of DFlash1 on 3.6). - ninfer: Blackwell/5090-tuned engine; 120–160 t/s quants; 480 t/s at 4-way concurrency. Likely source of the unreproducible speed screenshots.
- AutoRound INT4 / AWQ-INT4 GGUFs for vLLM serving.
- KVarN 4/2-bit KV ported to vLLM 0.27.1 — 262k fits small cards, needle-test passes at 240k, ~20% slower decode.
- Uncensored/abliterated variants shipped fast: Huihui-ai ablit, an "Uncensored Aggressive" release bundling K_P quants + HauhauCS FastMTP (up to 3.02× TG claimed), and FP8 abliteration reporting refusal rates dropping to 0–6% — with the community counterpoint that the same tables show 30–50% caveat-rate degradation next to those numbers. Quality varies wildly; check benchmark deltas before switching.
What's coming
- 35B-A3B spotted in ms-swift commits (Aug 15). 16GB-card owners are hyped; early numbers suggest ~27–40 t/s on hardware where the dense 27B crawls.
- A new midsize open-weight model "next week (hopefully)" per Qwen's community manager — no early access this cycle. Speculation centers on ~80B with vision.
- The flagship Qwen3.8-2.4T-A95B got day-0 vLLM support with open weights announced at launch; it barely appears in this week's local-community threads beyond speed speculation (a 2.4T open-weight Call of Duty clone demo made rounds). Local discussion is overwhelmingly about the 27B.
Report template (steal this)
So your numbers mean something to the next reader:
Runtime/version:
Hardware:
Model file + quant:
KV cache:
Speculative (MTP/DFlash2/ngram):
Reasoning effort:
Sampling:
Context size:
Prefill tok/s:
Decode tok/s:
Task used:
Compared against:
Observed result:
Megathread compiled Aug 22, 2026 from r/LocalLLaMA and r/LocalLLM (Aug 15–22) plus public X benchmark threads. All performance figures belong to the hardware/runtime that produced them — the corpus contradicts itself on nearly every axis, and in most cases you can name the variable that explains the split.
# Qwen3.8-27B — One Week Later: The r/LocalLLaMA + r/LocalLLM Verdict
Companion to the Qwen 3.8 Release Megathread. Compiled from ~2,000 posts scanned across both subs, with deep reads of the 45 highest-signal threads (560 posts and comments), Aug 15–22, 2026, plus independent X benchmarks. Every number is attributed to the poster's stated hardware/runtime/quant. This community contradicts itself on nearly every axis — so this thread keeps the disagreements side-by-side instead of picking a winner for you.
TL;DR
- The consensus pick: a 27B dense multimodal model that genuinely moved the bar for local agentic coding. The strongest claim with controlled evidence behind it isn't benchmarks — it's tool-calling reliability.
- The default ships at xhigh reasoning and it thinks a lot. Low and medium presets score nearly as well on Artificial Analysis (~43/44 intelligence index, within a few points of the xhigh headline) while cutting thinking tokens ~7–9x (and wall time ~6–7x). Most of you should not be running xhigh.
- Knowledge recall regressed vs 3.6 — widely reported and best understood as a deliberate agentic-design tradeoff. Trivia nerds: keep Gemma around.
- Q4_K_M is basically indistinguishable from Q8 on perplexity, but real-world reports split hard below Q6 for complex reasoning. KV cache quantization is one of the most contested settings in the corpus.
- The "neck and neck with DeepSeek V4 / GPT-5.6 Luna Max" AA headline is real but heavily caveated — see the benchmark credibility section before quoting it at your friends.
1. What it's actually good at
Agentic coding (strongest consensus area)
- "Highest level of agency I've ever seen in a local model" (thread): single 3090, Unsloth Q4_K_S + q8 KV, 150k ctx. From one prompt it pulled the OP's class schedule off a convoluted university website via 80 tool calls, zero human intervention.
- 1M+ token run (thread): RTX 5060 Ti 16GB, UD-Q3_K_XL, 73k ctx. Full REST API + MCP server for a legacy forum from 3 prompts.
- Controlled tool-call evidence: in a plain Python tool loop (no framework), one reporter got zero failed calls from 3.8 while Gemma 4 A4B and Qwen3.6 A3B failed often — the same reporter who rates 3.8 below both on raw code quality. Worse judgment, perfect plumbing.
Creative / game generation
- One-shot playable Super Mario clone (Q8, Framework Desktop) — top pushback: "It's in the training data."
- Galaga 1:1 recreation test (UD-Q8_K_XL, 3×3090 + Tesla P40): "This 'Galaga' clone [from 3.6] ended up pretty much being a space invaders clone instead... Qwen 3.8 thinks a LOT, but it draws out those tiny details and absolutely nails it after the fact." A separate r/LocalLLM user one-shot a playable Galaga-style game at IQ4_XS on dual 4060 Tis, and another built an online multiplayer MOBA overnight with an authoritative server and self-play testing.
- Ray-traced spheres in BASIC: 3.8 self-iterates to a correct Cook-Torrance ray-tracer; 3.6 needed hand-holding. Comment: "this feels more like 3.6 to 4.6 than 3.6 to 3.8."
Vision
Works natively (F16 mmproj), including OCR-style reading of a newspaper image at ~1,000 image tokens — but on a 16GB card at 64k ctx + MTP it leaves as little as ~150 MiB VRAM free. Practical advice from the 16GB crowd: keep text-agent and vision profiles separate, or offload the projector (--no-mmproj-offload).
Where it struggles
- Long analytical/document work: "a step backwards" vs 3.6 at default settings — though a legal-domain poster got on-par-with-122B results with MCP + case access. Task-dependent.
- Complex native coding: one failed C kernel effort (6 hours across 3 sessions)
[anecdotal], quant unstated; commenters say Q8 minimum for that tier of work.
2. The thinking-level situation (read this before complaining)
xhigh is the shipped default. It is why your context window evaporates.
Measured ladder (RTX 5080 Laptop 16GB, llama.cpp 10451, UD-IQ3_XXS, Q8_0 KV + FA + MTP, pelican-SVG task, 3 seeds):
| Effort | Reasoning tokens | Wall time | Visual score /25 |
|---|---|---|---|
| Low | 4,418 | 112 s | 21.8 |
| Medium | 5,918 | 127 s | 22.5 |
| X-High | 39,398 | 718 s | 24.0 |
That's ~6.4x the wall time for +1.5 points on an eyeball task. But on pass/fail SWE-style tasks, xhigh went 9/12 vs 6–7/12 at lower efforts — the premium scales with whether the task has a verifiable failure.
How to change it: --chat-template-kwargs '{"reasoning_effort":"medium"}' (llama.cpp) or the equivalent in LM Studio custom params.
The overthinking debate, both sides preserved:
- Against: "it will do eight or nine web-search turns and spin its wheels down every rabbit hole" (legal work). One reported loop burned 40k+ characters of reasoning on a trivial subtask. One paper-linked post argues intermediate tokens aren't reasoning at all ("Stop Anthropomorphizing Intermediate Tokens," 538 points).
- For: "if the extra thinking produces measurably better results it's actually just the correct amount of thinking." The low/medium AA scores (~43/44) are the strongest counter to "it only wins by overthinking" — though two commenters read that same data in opposite directions.
Practical takeaway from the corpus: medium for chat/analysis, xhigh only when there's a verifiable right answer.
- The strongest controlled effort data of the week is from X: @superalesha's 67-hour, 40-arm run found xhigh burned 7–11× more reasoning tokens than low for 0–4.7 extra points — and in one head-to-head, low matched xhigh exactly (89.3%) at 1/7.5th the tokens. Also: medium scored below low on every stack (all the damage in HumanEval+ — "that preset overthinks short coding tasks"). His verdict: "low is the rational preset. xhigh is for leaderboard screenshots." That's harsher than the Reddit consensus — weigh both, but it's the biggest sample size anyone published this week.
More data points from the week:
- Medium vs xhigh "actually insane" (223 pts): medium ≈ a couple thousand thinking tokens; xhigh 15–20k minimum, one pacman build hit 40k. But the same thread's best counterpoint: on a bug-finding test, xhigh took 7 min vs medium's 80 s and caught every bug; medium only caught the critical ones. And on a research task xhigh autonomously cloned a repo and read source to verify an answer — neither medium nor 3.6 did.
- Different thinking levels (287 pts): "Even the low preset is better than Qwen 3.7 plus or Qwen3.6-27B reasoning" — the level you pick changes speed, not whether it beats last generation.
- There is no "high" effort — the ladder is low / medium / xhigh(default), and the gap between medium and xhigh is the complaint that keeps generating threads. Commenters note the efforts aren't just prompts: Qwen specifically trained each level's instruction text in during RL.
- Don't confuse budget with effort (PSA): llama.cpp's web-UI reasoning selector is a hard token cap that truncates mid-thought — it is not Qwen's native effort levels, which actually change how thoroughly the model works. On recent builds use
--reasoning-effort medium(or the--chat-template-kwargsform on older ones); anything else silently caps instead of steering. - The "well?" trick: interrupt mid-think and type
well?— the model concludes "the user is impatient, let me finish quickly" and wraps up faster. Works, but commenters consider it a last resort; the thinking is where the quality lives. - Dissenters exist: one medium-vs-xhigh post claiming "1/20th the time for almost the same quality" got pushed back hard — top reply: low/medium left them unimpressed, xhigh is where frontier-tier coding shows up. The honest split: for chat and eyeball tasks medium is ~free; for verifiable correctness xhigh keeps earning its cost.
3. Knowledge regression vs 3.6 — real, and deliberate
The dedicated thread: 3.8 fails pocket-trivia questions 3.6 reliably answered, at every quant tried. AA's offline Omniscience benchmark agrees.
Community framing: 3.8 is trained to go search instead of recalling, i.e., an agent-first tradeoff. Mitigations posted: RAG/MCP (offline Wikipedia ZIM), or run Gemma 4 31B as a knowledge sidecar.
Counter-data point: a separate legal-work thread reports Harvey-benchmark scores on par with Qwen 3.5-122B once MCP + case access are attached (61/75 raw vs 71/75 with a tool backend). The knowledge didn't vanish; it moved into the toolbox.
4. Quants: what holds up
The one controlled perplexity sweep (16GB-fitting quants, wikitext-2, RTX 5060 Ti)
| Quant | Size | PPL | vs Q8 |
|---|---|---|---|
| Q8_0 | 27.0GB | 6.956 | 100% |
| Q4_K_M | 17.1GB | 6.958 | 99.97% |
| IQ4_XS | 14.6GB | 7.013 | 99.2% |
| UD-Q3_K_XL | 12.5GB | 7.111 | 97.8% |
| NVFP4 (Q5K) | 14.4GB | 7.200 | 96.6% |
Poster's call: Q4_K_M is the sweet spot; NVFP4 was the biggest disappointment (same size as IQ4_XS, worse PPL). Pushback worth reading: "PPL degrades less than real world performance… ordering flips near the 4-bit level."
The Q4-vs-Q6 war (unresolved)
- Team Q6/Q8: "q8 dramatically better than q4 for complex reasoning"; one user reports flawless 264k-ctx Q6_K_XL sessions, 2 mistakes per 2M tokens.
- Team Q4-fine: "I run q4 and can only praise the model… just do not go below q8 KV cache."
- Nuance: "there are like 5 different Q4s and they are not equal" — NVFP4 ≠ MXFP4 ≠ Q4_0 ≠ UD-Q4_K_XL. Past ~Q5 with dynamic quants, differences get hard to detect.
The biggest controlled quant test of the week (X)
@superalesha ran a 67-hour benchmark: five full production stacks (FP8 vLLM, NVFP4 W4A16 vLLM, AWQ INT4 vLLM, GGUF Q4_K_M llama.cpp, NInfer — all on RTX 3090s), 40 arms across every reasoning effort, 4,800 tasks / 10,120 requests / 14.5M reasoning tokens, no caps. Results:
- At xhigh every quant landed between 88.0–90.0% pass@1 — AWQ INT4 90.0%, NVFP4/GGUF-Q4_K_M 89.3%, FP8 baseline 88.7%, NInfer 88.0%. The 4-bit quants scored above FP8; McNemar says statistical tie (first vs last = 3 tasks out of 150). "The gap between quants is smaller than the gap between reasoning presets."
- The weirdest number: GGUF Q4_K_M at low effort scored the same 89.3% as xhigh — on 86k reasoning tokens instead of 651k. Across all stacks, xhigh burned 7–11× more tokens than low for 0–4.7 points.
- The one statistically real gap: NVFP4 with reasoning OFF collapsed on HumanEval+ (13/30 vs FP8's 30/30, p=0.0041). Flip it to low and it's instantly back to 90/90. Never run reasoning off — it costs 8–12 points everywhere.
- His cheat sheet: max quality = AWQ INT4 xhigh; daily driver = GGUF Q4_K_M low; honesty note: three of his FP8 arms failed his own methodology audit (leftover token caps) and are being rerun.
This largely settles the Q4-vs-Q6 war for this model at task-level benchmarks — but note the tension with the PPL sweep above: perplexity says NVFP4 is measurably worse than IQ4_XS; task performance says they tie. Both can be true (PPL measures token-level divergence; tasks measure whether errors get caught). And community reports of Q4 reasoning loops remain real — "passes benchmarks" and "never loops in a 2M-token session" are different requirements.
1-bit: comedy, not compute
Unsloth founder in the 1-bit thread: "I would not suggest folks use 1-bit for agentic use cases / tool calls" — divergence hits 92% from BF16 by token 32. General chat survives; agents don't. If you must: presence_penalty = 1.5.
KV cache — among the most contested settings in the corpus
- f16-vs-q8_0 are not equivalents per one AMD tester (f16 held quality past 120k ctx).
- But 16GB users run q4_0/q4_1 KV happily at 64k–164k all week.
- Working rule from comments: don't quantize KV unless you must; if you do, aim ≥ q6; word-of-mouth floor is Q4 model + Q8 KV for agent loops.
Unsloth Dynamic v3 notes
MTP removed from quants below UD-Q2_K_XL and re-uploaded separately (some users still see draft logs in Q5_K_XL — unresolved). Imatrix released; no QAT used.
5. Performance matrix (attributed)
| Hardware | Runtime / setup | Context | Result |
|---|---|---|---|
| RTX PRO 6000 96GB | llama.cpp PR #27342 DFlash2, Q4_K_M | 262k | 153.9 t/s = 2.26× plain; 304.9 t/s = 4.68× with ngram table (coding prompts); ngram −30% on prose |
| 2× RTX 3090 | vLLM + AutoRound INT4 + DFlash2 | 131k | 120 narrative / 218 code decode |
| Single RTX 4090 | llama.cpp, UD-Q4_K_XL, MTP + Q4 KV (see X benchmarks below) | 130k | ~60 t/s |
| Single RTX 4090 | same + DFlash2 drafter + --parallel 1 (X) |
250k | 73.7 t/s |
| RTX 5090 32GB | NVFP4-MTP-LOW | 262k | 121 t/s (vs Q6_K collapsing to 16.3 — 7.5×) |
| RTX 5090 32GB | vLLM + unsloth NVFP4, fp8 KV, MTP-2 | 131k | 110–112 t/s sustained |
| RTX 5090 32GB | llama.cpp 10536 | long gen | degrades 122 → 69 t/s within one generation (bug filed) |
| RTX 5060 Ti 16GB | UD-IQ4_XS + MTP-1, Q4_0 KV | 64k | 45.6 t/s |
| Strix Halo 128GB | Q8_0 + Q8 KV, ROCm, MTP | 142k | 9–19 t/s, MTP accept 97–99% |
| RX 7900 XTX | UD-Q4_K_XL Vulkan, MTP, q4_0 draft-KV | 131k | 50–60 t/s; -np 1 made a "HUGE" difference |
Why "~200 tok/s" claims don't reproduce for you: Windows/WDDM costs 10–15% vs Linux; headlines are measured at short contexts; MTP acceptance is workload-dependent (drops on prose, sometimes net-slower); and the fastest figures come from Blackwell-tuned engines (ninfer), not llama.cpp.
X/Twitter benchmark highlights
- @analogalok's full RTX 4090 matrix: UD-Q4_K_XL on latest llama.cpp. FP16 KV tops out at 100k ctx (40.9 t/s); q8 KV reaches 170k; q4_0 KV fits the full 262k native context in 24GB at 40.7 t/s. Native MTP: 59–60 t/s at 80–130k. Includes exact reproduction flags.
- His follow-up:
--parallel 1+ a Q2_K DFlash2 drafter unlocks 250k ctx @ 73.7 t/s (Q4 KV), 150k @ 75 t/s (Q8 KV), or 90k @ 80.6 t/s (FP16 KV) on one 4090 (requires llama.cpp PR #27342). - NVIDIA forums: DGX Spark face-off, SGLang+DFlash2 vs vLLM+MTP, greedy vs official thinking sampler — DFlash2 won.
6. Failure modes & bugs (reproducible ones)
- Tool-call failures are usually your tool list, not the model. Best controlled experiment in the corpus: 8 undescribed tools → 0/6 successes; the same tool alone → 15/15; 13 described tools mid-list → 0/5, moved to end → 3/3. Give every tool a description, put critical tools last, don't put examples in descriptions. Every framework failure report (Opencode/Pi/Claude Code) has a plain-loop counterexample in the same threads.
- Hermes harness specifically: constant tool-call failures on vLLM; "perfect, no issues" on llama.cpp
--jinja+ q8_0 KV at 256k. Template/parser alignment issue, not weights. - Hallucinated user instructions during thinking (reproduced on 2 machines, Pi harness): the model imagines an impatient user and once reverted a commit after imagining a French objection. Community fix: the froggeric fixed chat template (see section 7) eliminates the stock-template tool-call/recovery bugs.
- temp=1.0 garbage output: thinking falls apart into single-character spam within 10–20k tokens across llama.cpp/vLLM, INT4 through BF16. Diagnosis: sampler, not quant. Fixes: temp 0.1, or split sampling (0.8 main / 0.2 post-thinking). Counter-report: temp 0 caused a 70k-token loop instead. No universal setting exists — tune per task.
- Decode degradation: 122 → 69 t/s within one generation on 5090 llama.cpp; vLLM/ninfer hold >100. Bug filed upstream.
- Long-context quality drop: an NVFP4+vLLM eval on B200 scored only ~37% correct in its longest context bucket
[single report]; separately, a commenter running official BF16/FP8 via the published vLLM recipe reports agents degrading past ~20k tokens and structured outputs breaking past 20k[single report]. Counterpoint: an f16-KV user on UD-Q4_K_XL (ROCm) says their setup held quality past 120k ctx. Config-dependent; verify on yours. - Q8 anomaly reports (Unsloth UD_Q8_K_XL offload/CPU pegging): weak evidence, disputed; most Q8 users report zero issues.
- Reasoning loops at aggressive quants: 40k characters looping on "angry birds" at Q4-with-QKV-quant, including self-aware "I'm stuck in a loop" narration. Never-seen-it-at-Q6 claims abound.
7. The chat-template situation (read before debugging anything)
The official Qwen 3.8 Jinja template shipped with real bugs, and the community shipped fixes within 48 hours:
- Official template issues:
enable_thinking=falsecrashes; multi-turn history gets poisoned with blank\\thinktags; tool calls crash when your client sends arguments as JSON strings (the standard OpenAI format); mid-dialogue system messages get dropped, wedging agent loops. - froggeric/Qwen-Fixed-Chat-Templates (HF, thread, 334 pts) is the consensus drop-in replacement: safe
mediumdefault (kills the burn-20k-tokens-then-return-empty xhigh bug), thinking toggle restored, JSON-string tool-call crash fixed, inline effort steering via<|think_low|>/<|think_medium|>/<|think_xhigh|>, and chronological thought preservation for clean KV prefix caching. Actively maintained — v22.1 as of Aug 21. - Format-fidelity alternative: a second template stays closer to the exact official prompt format on the theory that deviations subtly degrade quality even when they look fine manually. Pick it if you're benchmarking; pick froggeric for daily driving.
- Upstream note: llama.cpp merged reasoning_effort forwarding on Aug 14 — recent builds pass
reasoning_effortto any template correctly. That fixes the plumbing, not the official template's own bugs. A fixed template is still recommended.
8. Benchmarks: believe selectively
- Artificial Analysis: headline posts put 3.8-27B neck-and-neck with DeepSeek V4 and GPT-5.6 Luna Max. Low/medium presets score ~43/44 — the key evidence the gains aren't pure overthinking. Agentic index: medium = xhigh − 1 point.
- The pushback ("A meaningless benchmark", 106 points): the index ranks this 27B above DSV4 Pro, Kimi 2.7 Code, Opus 4.6 and Sonnet 5 — "whatever 'Intelligence' means to AA... is definitely not the same definition we should be using here." Defenders: it's an aggregate skewed toward agentic/science/coding; read the methodology and pick sub-benchmarks for your use case. LiveBench gets respect for monthly task refreshes.
- Best independent test found: AIME 2026, exact-match, temp 0, pass@1 — FP8-xhigh scored 29/30 (96.7%), tying Opus 4.6 and DeepSeek V4 Pro in the poster's table, vs 94.1% for Qwen3.6-27B. Caveats: single run, problem 7 exhausted the token budget in both precisions (empty, not wrong).
- Production blind A/B (thousands of tasks): 3.8 wasn't worse at doing the thing — it was worse at knowing when not to do the thing (+50% noise output).
- Honest calibration: "Opus-level" is real at some tasks, with the right quant and harness. The thread titled "Qwen 3.8 isn't Opus 4.6 level. Let's not be silly." failed at Q6 in VS Code — commenters blamed the editor and the quant, but the burden of proof stays on the demo.
9. Ecosystem: what shipped this week
- DFlash2 (llama.cpp PR #27342, still in review): 2.26×–4.68× on real coding prompts, +2.7GB VRAM. N-max 5 beats the recommended 7;
--spec-draft-p-minsilently does nothing; stacking ngram-mod hurt (opposite of DFlash1 on 3.6). - ninfer: Blackwell/5090-tuned engine; 120–160 t/s quants; 480 t/s at 4-way concurrency. Likely source of the unreproducible speed screenshots.
- AutoRound INT4 / AWQ-INT4 GGUFs for vLLM serving.
- KVarN 4/2-bit KV ported to vLLM 0.27.1 — 262k fits small cards, needle-test passes at 240k, ~20% slower decode.
- Uncensored/abliterated variants shipped fast: Huihui-ai ablit, an "Uncensored Aggressive" release bundling K_P quants + HauhauCS FastMTP (up to 3.02× TG claimed), and FP8 abliteration reporting refusal rates dropping to 0–6% — with the community counterpoint that the same tables show 30–50% caveat-rate degradation next to those numbers. Quality varies wildly; check benchmark deltas before switching.
What's coming
- 35B-A3B spotted in ms-swift commits (Aug 15). 16GB-card owners are hyped; early numbers suggest ~27–40 t/s on hardware where the dense 27B crawls.
- A new midsize open-weight model "next week (hopefully)" per Qwen's community manager — no early access this cycle. Speculation centers on ~80B with vision.
- The flagship Qwen3.8-2.4T-A95B got day-0 vLLM support with open weights announced at launch; it barely appears in this week's local-community threads beyond speed speculation (a 2.4T open-weight Call of Duty clone demo made rounds). Local discussion is overwhelmingly about the 27B.
Report template (steal this)
So your numbers mean something to the next reader:
Runtime/version:
Hardware:
Model file + quant:
KV cache:
Speculative (MTP/DFlash2/ngram):
Reasoning effort:
Sampling:
Context size:
Prefill tok/s:
Decode tok/s:
Task used:
Compared against:
Observed result:
Megathread compiled Aug 22, 2026 from r/LocalLLaMA and r/LocalLLM (Aug 15–22) plus public X benchmark threads. All performance figures belong to the hardware/runtime that produced them — the corpus contradicts itself on nearly every axis, and in most cases you can name the variable that explains the split.
Qwen3.8-27B — One Week Later: The r/LocalLLaMA + r/LocalLLM Verdict 8-22-26
Compiled from ~2,000 posts scanned across both subs, with deep reads of the 45 highest-signal threads (560 posts and comments), Aug 15–22, 2026, plus independent X benchmarks. Every number is attributed to the poster's stated hardware/runtime/quant. This community contradicts itself on nearly every axis — so this thread keeps the disagreements side-by-side instead of picking a winner for you.
TL;DR
- The consensus pick: a 27B dense multimodal model that genuinely moved the bar for local agentic coding. The strongest claim with controlled evidence behind it isn't benchmarks — it's tool-calling reliability.
- The default ships at xhigh reasoning and it thinks a lot. Low and medium presets score nearly as well on Artificial Analysis (~43/44 intelligence index, within a few points of the xhigh headline) while cutting thinking tokens ~7–9x (and wall time ~6–7x). Most of you should not be running xhigh.
- Knowledge recall regressed vs 3.6 — widely reported and best understood as a deliberate agentic-design tradeoff. Trivia nerds: keep Gemma around.
- Q4_K_M is basically indistinguishable from Q8 on perplexity, but real-world reports split hard below Q6 for complex reasoning. KV cache quantization is one of the most contested settings in the corpus.
- The "neck and neck with DeepSeek V4 / GPT-5.6 Luna Max" AA headline is real but heavily caveated — see the benchmark credibility section before quoting it at your friends.
1. What it's actually good at
Agentic coding (strongest consensus area)
- "Highest level of agency I've ever seen in a local model" (thread): single 3090, Unsloth Q4_K_S + q8 KV, 150k ctx. From one prompt it pulled the OP's class schedule off a convoluted university website via 80 tool calls, zero human intervention.
- 1M+ token run (thread): RTX 5060 Ti 16GB, UD-Q3_K_XL, 73k ctx. Full REST API + MCP server for a legacy forum from 3 prompts.
- Controlled tool-call evidence: in a plain Python tool loop (no framework), one reporter got zero failed calls from 3.8 while Gemma 4 A4B and Qwen3.6 A3B failed often — the same reporter who rates 3.8 below both on raw code quality. Worse judgment, perfect plumbing.
Creative / game generation
- One-shot playable Super Mario clone (Q8, Framework Desktop) — top pushback: "It's in the training data."
- Galaga 1:1 recreation test (UD-Q8_K_XL, 3×3090 + Tesla P40): "This 'Galaga' clone [from 3.6] ended up pretty much being a space invaders clone instead... Qwen 3.8 thinks a LOT, but it draws out those tiny details and absolutely nails it after the fact." A separate r/LocalLLM user one-shot a playable Galaga-style game at IQ4_XS on dual 4060 Tis, and another built an online multiplayer MOBA overnight with an authoritative server and self-play testing.
- Ray-traced spheres in BASIC: 3.8 self-iterates to a correct Cook-Torrance ray-tracer; 3.6 needed hand-holding. Comment: "this feels more like 3.6 to 4.6 than 3.6 to 3.8."
Vision
Works natively (F16 mmproj), including OCR-style reading of a newspaper image at ~1,000 image tokens — but on a 16GB card at 64k ctx + MTP it leaves as little as ~150 MiB VRAM free. Practical advice from the 16GB crowd: keep text-agent and vision profiles separate, or offload the projector (--no-mmproj-offload).
Where it struggles
- Long analytical/document work: "a step backwards" vs 3.6 at default settings — though a legal-domain poster got on-par-with-122B results with MCP + case access. Task-dependent.
- Complex native coding: one failed C kernel effort (6 hours across 3 sessions)
[anecdotal], quant unstated; commenters say Q8 minimum for that tier of work.
2. The thinking-level situation (read this before complaining)
xhigh is the shipped default. It is why your context window evaporates.
Measured ladder (RTX 5080 Laptop 16GB, llama.cpp 10451, UD-IQ3_XXS, Q8_0 KV + FA + MTP, pelican-SVG task, 3 seeds):
| Effort | Reasoning tokens | Wall time | Visual score /25 |
|---|---|---|---|
| Low | 4,418 | 112 s | 21.8 |
| Medium | 5,918 | 127 s | 22.5 |
| X-High | 39,398 | 718 s | 24.0 |
That's ~6.4x the wall time for +1.5 points on an eyeball task. But on pass/fail SWE-style tasks, xhigh went 9/12 vs 6–7/12 at lower efforts — the premium scales with whether the task has a verifiable failure.
How to change it: --chat-template-kwargs '{"reasoning_effort":"medium"}' (llama.cpp) or the equivalent in LM Studio custom params.
The overthinking debate, both sides preserved:
- Against: "it will do eight or nine web-search turns and spin its wheels down every rabbit hole" (legal work). One reported loop burned 40k+ characters of reasoning on a trivial subtask. One paper-linked post argues intermediate tokens aren't reasoning at all ("Stop Anthropomorphizing Intermediate Tokens," 538 points).
- For: "if the extra thinking produces measurably better results it's actually just the correct amount of thinking." The low/medium AA scores (~43/44) are the strongest counter to "it only wins by overthinking" — though two commenters read that same data in opposite directions.
Practical takeaway from the corpus: medium for chat/analysis, xhigh only when there's a verifiable right answer.
- The strongest controlled effort data of the week is from X: @superalesha's 67-hour, 40-arm run found xhigh burned 7–11× more reasoning tokens than low for 0–4.7 extra points — and in one head-to-head, low matched xhigh exactly (89.3%) at 1/7.5th the tokens. Also: medium scored below low on every stack (all the damage in HumanEval+ — "that preset overthinks short coding tasks"). His verdict: "low is the rational preset. xhigh is for leaderboard screenshots." That's harsher than the Reddit consensus — weigh both, but it's the biggest sample size anyone published this week.
More data points from the week:
- Medium vs xhigh "actually insane" (223 pts): medium ≈ a couple thousand thinking tokens; xhigh 15–20k minimum, one pacman build hit 40k. But the same thread's best counterpoint: on a bug-finding test, xhigh took 7 min vs medium's 80 s and caught every bug; medium only caught the critical ones. And on a research task xhigh autonomously cloned a repo and read source to verify an answer — neither medium nor 3.6 did.
- Different thinking levels (287 pts): "Even the low preset is better than Qwen 3.7 plus or Qwen3.6-27B reasoning" — the level you pick changes speed, not whether it beats last generation.
- There is no "high" effort — the ladder is low / medium / xhigh(default), and the gap between medium and xhigh is the complaint that keeps generating threads. Commenters note the efforts aren't just prompts: Qwen specifically trained each level's instruction text in during RL.
- Don't confuse budget with effort (PSA): llama.cpp's web-UI reasoning selector is a hard token cap that truncates mid-thought — it is not Qwen's native effort levels, which actually change how thoroughly the model works. On recent builds use
--reasoning-effort medium(or the--chat-template-kwargsform on older ones); anything else silently caps instead of steering. - The "well?" trick: interrupt mid-think and type
well?— the model concludes "the user is impatient, let me finish quickly" and wraps up faster. Works, but commenters consider it a last resort; the thinking is where the quality lives. - Dissenters exist: one medium-vs-xhigh post claiming "1/20th the time for almost the same quality" got pushed back hard — top reply: low/medium left them unimpressed, xhigh is where frontier-tier coding shows up. The honest split: for chat and eyeball tasks medium is ~free; for verifiable correctness xhigh keeps earning its cost.
3. Knowledge regression vs 3.6 — real, and deliberate
The dedicated thread: 3.8 fails pocket-trivia questions 3.6 reliably answered, at every quant tried. AA's offline Omniscience benchmark agrees.
Community framing: 3.8 is trained to go search instead of recalling, i.e., an agent-first tradeoff. Mitigations posted: RAG/MCP (offline Wikipedia ZIM), or run Gemma 4 31B as a knowledge sidecar.
Counter-data point: a separate legal-work thread reports Harvey-benchmark scores on par with Qwen 3.5-122B once MCP + case access are attached (61/75 raw vs 71/75 with a tool backend). The knowledge didn't vanish; it moved into the toolbox.
4. Quants: what holds up
The one controlled perplexity sweep (16GB-fitting quants, wikitext-2, RTX 5060 Ti)
| Quant | Size | PPL | vs Q8 |
|---|---|---|---|
| Q8_0 | 27.0GB | 6.956 | 100% |
| Q4_K_M | 17.1GB | 6.958 | 99.97% |
| IQ4_XS | 14.6GB | 7.013 | 99.2% |
| UD-Q3_K_XL | 12.5GB | 7.111 | 97.8% |
| NVFP4 (Q5K) | 14.4GB | 7.200 | 96.6% |
Poster's call: Q4_K_M is the sweet spot; NVFP4 was the biggest disappointment (same size as IQ4_XS, worse PPL). Pushback worth reading: "PPL degrades less than real world performance… ordering flips near the 4-bit level."
The Q4-vs-Q6 war (unresolved)
- Team Q6/Q8: "q8 dramatically better than q4 for complex reasoning"; one user reports flawless 264k-ctx Q6_K_XL sessions, 2 mistakes per 2M tokens.
- Team Q4-fine: "I run q4 and can only praise the model… just do not go below q8 KV cache."
- Nuance: "there are like 5 different Q4s and they are not equal" — NVFP4 ≠ MXFP4 ≠ Q4_0 ≠ UD-Q4_K_XL. Past ~Q5 with dynamic quants, differences get hard to detect.
The biggest controlled quant test of the week (X)
@superalesha ran a 67-hour benchmark: five full production stacks (FP8 vLLM, NVFP4 W4A16 vLLM, AWQ INT4 vLLM, GGUF Q4_K_M llama.cpp, NInfer — all on RTX 3090s), 40 arms across every reasoning effort, 4,800 tasks / 10,120 requests / 14.5M reasoning tokens, no caps. Results:
- At xhigh every quant landed between 88.0–90.0% pass@1 — AWQ INT4 90.0%, NVFP4/GGUF-Q4_K_M 89.3%, FP8 baseline 88.7%, NInfer 88.0%. The 4-bit quants scored above FP8; McNemar says statistical tie (first vs last = 3 tasks out of 150). "The gap between quants is smaller than the gap between reasoning presets."
- The weirdest number: GGUF Q4_K_M at low effort scored the same 89.3% as xhigh — on 86k reasoning tokens instead of 651k. Across all stacks, xhigh burned 7–11× more tokens than low for 0–4.7 points.
- The one statistically real gap: NVFP4 with reasoning OFF collapsed on HumanEval+ (13/30 vs FP8's 30/30, p=0.0041). Flip it to low and it's instantly back to 90/90. Never run reasoning off — it costs 8–12 points everywhere.
- His cheat sheet: max quality = AWQ INT4 xhigh; daily driver = GGUF Q4_K_M low; honesty note: three of his FP8 arms failed his own methodology audit (leftover token caps) and are being rerun.
This largely settles the Q4-vs-Q6 war for this model at task-level benchmarks — but note the tension with the PPL sweep above: perplexity says NVFP4 is measurably worse than IQ4_XS; task performance says they tie. Both can be true (PPL measures token-level divergence; tasks measure whether errors get caught). And community reports of Q4 reasoning loops remain real — "passes benchmarks" and "never loops in a 2M-token session" are different requirements.
1-bit: comedy, not compute
Unsloth founder in the 1-bit thread: "I would not suggest folks use 1-bit for agentic use cases / tool calls" — divergence hits 92% from BF16 by token 32. General chat survives; agents don't. If you must: presence_penalty = 1.5.
KV cache — among the most contested settings in the corpus
- f16-vs-q8_0 are not equivalents per one AMD tester (f16 held quality past 120k ctx).
- But 16GB users run q4_0/q4_1 KV happily at 64k–164k all week.
- Working rule from comments: don't quantize KV unless you must; if you do, aim ≥ q6; word-of-mouth floor is Q4 model + Q8 KV for agent loops.
Unsloth Dynamic v3 notes
MTP removed from quants below UD-Q2_K_XL and re-uploaded separately (some users still see draft logs in Q5_K_XL — unresolved). Imatrix released; no QAT used.
5. Performance matrix (attributed)
| Hardware | Runtime / setup | Context | Result |
|---|---|---|---|
| RTX PRO 6000 96GB | llama.cpp PR #27342 DFlash2, Q4_K_M | 262k | 153.9 t/s = 2.26× plain; 304.9 t/s = 4.68× with ngram table (coding prompts); ngram −30% on prose |
| 2× RTX 3090 | vLLM + AutoRound INT4 + DFlash2 | 131k | 120 narrative / 218 code decode |
| Single RTX 4090 | llama.cpp, UD-Q4_K_XL, MTP + Q4 KV (see X benchmarks below) | 130k | ~60 t/s |
| Single RTX 4090 | same + DFlash2 drafter + --parallel 1 (X) |
250k | 73.7 t/s |
| RTX 5090 32GB | NVFP4-MTP-LOW | 262k | 121 t/s (vs Q6_K collapsing to 16.3 — 7.5×) |
| RTX 5090 32GB | vLLM + unsloth NVFP4, fp8 KV, MTP-2 | 131k | 110–112 t/s sustained |
| RTX 5090 32GB | llama.cpp 10536 | long gen | degrades 122 → 69 t/s within one generation (bug filed) |
| RTX 5060 Ti 16GB | UD-IQ4_XS + MTP-1, Q4_0 KV | 64k | 45.6 t/s |
| Strix Halo 128GB | Q8_0 + Q8 KV, ROCm, MTP | 142k | 9–19 t/s, MTP accept 97–99% |
| RX 7900 XTX | UD-Q4_K_XL Vulkan, MTP, q4_0 draft-KV | 131k | 50–60 t/s; -np 1 made a "HUGE" difference |
Why "~200 tok/s" claims don't reproduce for you: Windows/WDDM costs 10–15% vs Linux; headlines are measured at short contexts; MTP acceptance is workload-dependent (drops on prose, sometimes net-slower); and the fastest figures come from Blackwell-tuned engines (ninfer), not llama.cpp.
X/Twitter benchmark highlights
- @analogalok's full RTX 4090 matrix: UD-Q4_K_XL on latest llama.cpp. FP16 KV tops out at 100k ctx (40.9 t/s); q8 KV reaches 170k; q4_0 KV fits the full 262k native context in 24GB at 40.7 t/s. Native MTP: 59–60 t/s at 80–130k. Includes exact reproduction flags.
- His follow-up:
--parallel 1+ a Q2_K DFlash2 drafter unlocks 250k ctx @ 73.7 t/s (Q4 KV), 150k @ 75 t/s (Q8 KV), or 90k @ 80.6 t/s (FP16 KV) on one 4090 (requires llama.cpp PR #27342). - NVIDIA forums: DGX Spark face-off, SGLang+DFlash2 vs vLLM+MTP, greedy vs official thinking sampler — DFlash2 won.
6. Failure modes & bugs (reproducible ones)
- Tool-call failures are usually your tool list, not the model. Best controlled experiment in the corpus: 8 undescribed tools → 0/6 successes; the same tool alone → 15/15; 13 described tools mid-list → 0/5, moved to end → 3/3. Give every tool a description, put critical tools last, don't put examples in descriptions. Every framework failure report (Opencode/Pi/Claude Code) has a plain-loop counterexample in the same threads.
- Hermes harness specifically: constant tool-call failures on vLLM; "perfect, no issues" on llama.cpp
--jinja+ q8_0 KV at 256k. Template/parser alignment issue, not weights. - Hallucinated user instructions during thinking (reproduced on 2 machines, Pi harness): the model imagines an impatient user and once reverted a commit after imagining a French objection. Community fix: the froggeric fixed chat template (see section 7) eliminates the stock-template tool-call/recovery bugs.
- temp=1.0 garbage output: thinking falls apart into single-character spam within 10–20k tokens across llama.cpp/vLLM, INT4 through BF16. Diagnosis: sampler, not quant. Fixes: temp 0.1, or split sampling (0.8 main / 0.2 post-thinking). Counter-report: temp 0 caused a 70k-token loop instead. No universal setting exists — tune per task.
- Decode degradation: 122 → 69 t/s within one generation on 5090 llama.cpp; vLLM/ninfer hold >100. Bug filed upstream.
- Long-context quality drop: an NVFP4+vLLM eval on B200 scored only ~37% correct in its longest context bucket
[single report]; separately, a commenter running official BF16/FP8 via the published vLLM recipe reports agents degrading past ~20k tokens and structured outputs breaking past 20k[single report]. Counterpoint: an f16-KV user on UD-Q4_K_XL (ROCm) says their setup held quality past 120k ctx. Config-dependent; verify on yours. - Q8 anomaly reports (Unsloth UD_Q8_K_XL offload/CPU pegging): weak evidence, disputed; most Q8 users report zero issues.
- Reasoning loops at aggressive quants: 40k characters looping on "angry birds" at Q4-with-QKV-quant, including self-aware "I'm stuck in a loop" narration. Never-seen-it-at-Q6 claims abound.
7. The chat-template situation (read before debugging anything)
The official Qwen 3.8 Jinja template shipped with real bugs, and the community shipped fixes within 48 hours:
- Official template issues:
enable_thinking=falsecrashes; multi-turn history gets poisoned with blank\\thinktags; tool calls crash when your client sends arguments as JSON strings (the standard OpenAI format); mid-dialogue system messages get dropped, wedging agent loops. - froggeric/Qwen-Fixed-Chat-Templates (HF, thread, 334 pts) is the consensus drop-in replacement: safe
mediumdefault (kills the burn-20k-tokens-then-return-empty xhigh bug), thinking toggle restored, JSON-string tool-call crash fixed, inline effort steering via<|think_low|>/<|think_medium|>/<|think_xhigh|>, and chronological thought preservation for clean KV prefix caching. Actively maintained — v22.1 as of Aug 21. - Format-fidelity alternative: a second template stays closer to the exact official prompt format on the theory that deviations subtly degrade quality even when they look fine manually. Pick it if you're benchmarking; pick froggeric for daily driving.
- Upstream note: llama.cpp merged reasoning_effort forwarding on Aug 14 — recent builds pass
reasoning_effortto any template correctly. That fixes the plumbing, not the official template's own bugs. A fixed template is still recommended.
8. Benchmarks: believe selectively
- Artificial Analysis: headline posts put 3.8-27B neck-and-neck with DeepSeek V4 and GPT-5.6 Luna Max. Low/medium presets score ~43/44 — the key evidence the gains aren't pure overthinking. Agentic index: medium = xhigh − 1 point.
- The pushback ("A meaningless benchmark", 106 points): the index ranks this 27B above DSV4 Pro, Kimi 2.7 Code, Opus 4.6 and Sonnet 5 — "whatever 'Intelligence' means to AA... is definitely not the same definition we should be using here." Defenders: it's an aggregate skewed toward agentic/science/coding; read the methodology and pick sub-benchmarks for your use case. LiveBench gets respect for monthly task refreshes.
- Best independent test found: AIME 2026, exact-match, temp 0, pass@1 — FP8-xhigh scored 29/30 (96.7%), tying Opus 4.6 and DeepSeek V4 Pro in the poster's table, vs 94.1% for Qwen3.6-27B. Caveats: single run, problem 7 exhausted the token budget in both precisions (empty, not wrong).
- Production blind A/B (thousands of tasks): 3.8 wasn't worse at doing the thing — it was worse at knowing when not to do the thing (+50% noise output).
- Honest calibration: "Opus-level" is real at some tasks, with the right quant and harness. The thread titled "Qwen 3.8 isn't Opus 4.6 level. Let's not be silly." failed at Q6 in VS Code — commenters blamed the editor and the quant, but the burden of proof stays on the demo.
9. Ecosystem: what shipped this week
- DFlash2 (llama.cpp PR #27342, still in review): 2.26×–4.68× on real coding prompts, +2.7GB VRAM. N-max 5 beats the recommended 7;
--spec-draft-p-minsilently does nothing; stacking ngram-mod hurt (opposite of DFlash1 on 3.6). - ninfer: Blackwell/5090-tuned engine; 120–160 t/s quants; 480 t/s at 4-way concurrency. Likely source of the unreproducible speed screenshots.
- AutoRound INT4 / AWQ-INT4 GGUFs for vLLM serving.
- KVarN 4/2-bit KV ported to vLLM 0.27.1 — 262k fits small cards, needle-test passes at 240k, ~20% slower decode.
- Uncensored/abliterated variants shipped fast: Huihui-ai ablit, an "Uncensored Aggressive" release bundling K_P quants + HauhauCS FastMTP (up to 3.02× TG claimed), and FP8 abliteration reporting refusal rates dropping to 0–6% — with the community counterpoint that the same tables show 30–50% caveat-rate degradation next to those numbers. Quality varies wildly; check benchmark deltas before switching.
What's coming
- 35B-A3B spotted in ms-swift commits (Aug 15). 16GB-card owners are hyped; early numbers suggest ~27–40 t/s on hardware where the dense 27B crawls.
- A new midsize open-weight model "next week (hopefully)" per Qwen's community manager — no early access this cycle. Speculation centers on ~80B with vision.
- The flagship Qwen3.8-2.4T-A95B got day-0 vLLM support with open weights announced at launch; it barely appears in this week's local-community threads beyond speed speculation (a 2.4T open-weight Call of Duty clone demo made rounds). Local discussion is overwhelmingly about the 27B.
Report template (steal this)
So your numbers mean something to the next reader:
Runtime/version:
Hardware:
Model file + quant:
KV cache:
Speculative (MTP/DFlash2/ngram):
Reasoning effort:
Sampling:
Context size:
Prefill tok/s:
Decode tok/s:
Task used:
Compared against:
Observed result:
Megathread compiled Aug 22, 2026 from r/LocalLLaMA and r/LocalLLM (Aug 15–22) plus public X benchmark threads. All performance figures belong to the hardware/runtime that produced them — the corpus contradicts itself on nearly every axis, and in most cases you can name the variable that explains the split. Prepped by Stealth ox alpha. Critic by Sol 5.6.
While Ox Alpha is free - Day over Day incremental improvements
Guys and girls. While Ox alpha is free on Nous, open router and I think opencode, now is your chance to evaluate your workflow. You should be working on improving your hermes setup even just a little bit every day.
- Do you have different profiles, do you hand off work to sub-agents. Have the model evaluate your sessions, delegations etc. Ask you hermes to suggest optimizations, improvements, debug failures etc.
- Look for failed tool calls in prior sessions. How can you remedy those in the future.
- How can I optimize Hermes so my local model can still perform the same functions as a cloud model.
- How can I improve memory recall. Is our current setup sufficient?
You can try some of my research loops here https://github.com/AtlasOmnia/hermes-loops or really just have the conversation with your hermes.
FREE ------ Open Router Free Model
I wanted to make a free API megathread but my internet is out and I am tethering a gaming pc to my phone and I dare not spin up a multi agent session.
Anyway, Mystery model Ox Alpha was released today on open router.
>This stealth model is developed and operated by a third-party model provider. Prompts and completions for this model are retained by the provider and are not used for training; all other use is governed by the Stealth Model Terms(opens in new tab).
https://openrouter.ai/stealth/ox-alpha
People are guessing it's mimo-v3 but who knows.
Qwen 3.8 27B - Day 3 Summary
I pulled the Qwen 3.8 discussion from r/LocalLLM and r/LocalLLaMA from Saturday through today: 270 posts mentioning it, 208 with Qwen 3.8 in the title, then full comment reads on the higher-signal threads.
The early answer is not “local Opus.” It is more useful than that:
> Qwen 3.8 has real agentic-coding signal, but the difference between “wow” and “why is this unusable?” is often reasoning control, context, cache settings, quant, and runtime.
This is three days of community reporting, not a controlled model review. Still, a few patterns showed up too often to ignore.
The short version
| If you care about... | Early read |
|---|---|
| Agentic coding with tests, visual feedback, or retry loops | Promising. This is the strongest positive signal. |
| One-shot demos and benchmark screenshots | Interesting, but not enough to establish general capability. |
| Documents, argument analysis, and research | Mixed. Some users call it a regression because of lengthy reasoning; others report strong specialized results. |
| 16 GB VRAM | Viable, but it is a quant, context, and quality trade, not a free lunch. |
| Raw tok/s claims | Ignore them unless the post includes context depth, KV cache, quant, MTP, runtime, OS, and concurrency. |
Where the positive signal is real
The better reports were not “make a game in one prompt.” They gave the model a loop: write code, run it, inspect the result, fix it, repeat.
One hands-on comparison had Qwen 3.8 iterating a BASIC ray-tracer more successfully than Qwen 3.6 using the same Q8 quant. Another 16 GB setup reported a large coding run across more than one million processed tokens with only three prompts, using tests and linting as the correction loop. That is the useful story: a smaller local model that can stay in a real feedback loop without immediately falling apart.
But the pushback is healthy. Several commenters pointed out that viral arcade-game or clone demos can overlap with familiar training patterns. A model that makes a convincing game from a narrow prompt is not automatically good at a private repo, a messy codebase, or a long-horizon agent task.
The practical takeaway: if you are evaluating it for Hermes, use a task that has a verifier. A test suite, linter, structured output check, browser assertion, or human review loop will tell you far more than a one-shot demo.
The actual fight: it thinks too much
“Overthinking” was the dominant failure report.
One LocalLLM user said Qwen 3.8 was a step backward for documents and complex argument analysis because it kept following side paths after web retrieval. A legal-work reply in the same thread said their MCP-backed case workflow was outperforming prior local options. That is not a clean contradiction. It is a warning that the model's behavior is unusually sensitive to task design and configuration.
The recurring settings lesson is that reasoning effort and a thinking-token budget are not the same thing. Depending on llama.cpp version and UI, a selector can merely cap or cut off reasoning instead of changing the model's intended effort. That creates a lot of reports that sound like model behavior but are really template or runtime behavior.
A vLLM user on an RTX 6000 Pro reported basic responses taking one to five minutes even on low or medium reasoning. In a separate ongoing local evaluation, xhigh generated roughly 3.5 times as many tokens as medium, while medium was reportedly slightly better than Qwen 3.6 in score and used around 60% of the total generated tokens.
So “Qwen 3.8 overthinks” is not enough information to act on. The next useful report needs to say what actually controlled the reasoning.
Speed numbers are configuration cards, not rankings
The most useful throughput thread included the missing context most speed screenshots skip.
One RTX 3090 report using Q5_K_M went from about 75 tok/s around 1K context to about 43 tok/s around 90K after moving the model to SSD and enabling MTP, which is multi-token prediction/speculative decoding. Other reports in the same discussion ranged from dual 3060s and Strix Halo to RTX Pro 6000, dual 7900 XTX, and 5090 setups.
A detailed RTX 5090 llama.cpp report hit about 128 tok/s with NVFP4 plus MTP, well below widely repeated 200 tok/s claims. Replies pointed to the inference engine, Windows versus Linux, context reservation, and MTP acceptance rate as likely reasons. At 262K context, running out of VRAM for the KV cache, the model's context-memory cache, can turn a fast setup into a slow one.
The AMD report was the same lesson in a different suit: a 7900 XTX user saw roughly 25 to 35 tok/s around 80K context and near 20 tok/s around 150K to 180K. The likely culprit was KV cache overflow into system RAM, plus lower MTP-draft acceptance than Qwen 3.6 in one same-hardware comparison.
This is why a naked “I get 200 tok/s” post is not a benchmark. It is a postcard.
16 GB is possible. It is not magic.
The 16 GB community is getting real results, but the compromises are visible.
One RTX 5060 Ti guide ran a Q3 model with quantized KV cache at roughly 73K context for agentic coding. Another guide reported Q4_K_M around 130K context and about 20 tok/s. A 16 GB RTX 5080 report claimed 85.5 tok/s with an IQ3_XXS build and MTP at about 124K context.
Those numbers are useful, but no one should read them as “Qwen 3.8 runs great on every 16 GB card.” The question is which compromise you are making:
- lower quant quality
- less context
- lower context-cache precision
- slower generation under real context load
- more dependence on a particular runtime or custom template
For Hermes-style work, I would rather have a stable Q4 or Q5 setup with a realistic context window and a verifier loop than chase a screenshot from a very aggressive Q3 configuration.
What I would test before switching a Hermes workflow
- Run your actual task twice: once at medium reasoning and once at your current default.
- Measure first-token latency and decode speed at both fresh context and a realistic saturated context.
- Record exact model file, quant, context size, KV cache, MTP setting, template, runtime version, and OS.
- Use a task with a check: tests, a linter, a schema validator, a browser assertion, or manual acceptance criteria.
- Compare total time-to-correct-result, not only tok/s.
That last line matters. A model that is 30% faster but spends twice as long reasoning, or needs three more repair turns, is not faster where it counts.
If you are posting numbers, use this
Runtime + exact version:
Hardware + OS:
Model file + quant:
Context size and current context depth:
KV cache type/quant:
MTP/speculative setting and acceptance rate, if available:
Reasoning effort and thinking budget/cap:
Temperature / template:
Prefill tok/s:
Decode tok/s at fresh and saturated context:
Concurrency:
Task and verification loop used:
Observed result, regression, or failure:
That would make the next week of Qwen 3.8 discussion dramatically more useful. The model looks worth serious local testing. The configuration is still doing half the talking.
Source threads
- Qwen 3.8 vs 3.6 ray-tracer agent loop
- Document-analysis criticism and legal-work counterexample
- Long review, plus the “do not call this local Opus yet” pushback
- 16 GB RTX 5060 Ti agentic-coding configuration
- Large Qwen 3.8 throughput field report thread
- 16 GB VRAM Q4_K_M guide
- Reasoning effort low/medium/xhigh comparison
- llama.cpp reasoning effort versus budget PSA
- vLLM endless-thinking report
- 7900 XTX context and KV-cache slowdown discussion
- RTX 5090 NVFP4 reproduction attempt
- 2× Intel Arc Pro B70 speculative-decoding report
Megathread Submission Request
What Hermes Agent Megathread topics do you want see roll out?
Put your comments below. If someone already mentioned it, upvote and comments under that comment.
Qwen 3.8 Release Megathread
Just in time for the weekend. Post experiences here, thread will stay up over the weekend.
Cron triggered improvement loops
Hello Class,
I had alot of questions on this so I decided to get them on the repo.
I have 3 active loops that run daily right now and I will probably have more in the future. If you are new to hermes you have probably heard of loops, graphs, multi agent bots, swarms etc. Don't worry about all of that. This is a good starting point that you can develop. The idea is simply, can you make your hermes a little better everyday?
The whole thing hangs on that one question. Small, boring, repeatable improvements that pile up. Not a big architecture project, not a swarm. Just a little better, every day.
A loop is three steps that run over and over: try something, test it, keep it or put it back. That is the entire trick. You already do this by hand every time you tweak a prompt and see if it works better. The only difference is this does it while you sleep.
I have three running right now set for around 3am ish when no sessions are open. Delivery to telegram.
autoresearch is the one that actually changes things. You point it at a target, like a config file or a script, and give it a test that scores the result. It makes a small change, runs the test, and keeps the change if the score goes up. If it goes down, it reverts and tries again. Everything stays local, nothing gets pushed until you look at it.
maintenance is the careful one. It changes nothing. It reads your setup and tells you what looks healthy and what does not, then its improvement half turns repeating problems into suggestions you review yourself. A checkup, not a repair.
diagnostic review is the one I run on my own sessions on both default and my dev (coding) profile. It reads your recent history, finds the mistakes you keep making, and suggests a reusable skill so you stop making them. This one is a skill, not code, so it runs inside Hermes and never touches anything without your say so. think tool call issues etc.
You do not need graphs or multi agent swarms to start. One loop, one target, one test. Add the rest later when you actually need it.
Everything is on the repo with the README written so you can copy a loop and run it the same day: GitHub - AtlasOmnia/hermes-loops: Autonomous agent loops for Hermes Agent: the autoresearch harness and the health/improvement maintenance loops. · GitHub
Hermes Battle Station Wednesday - Show Us What You’re Running
It’s Wednesday. Battle stations, open up.
Show us the real Hermes setup you’re running - desk, terminal, laptop, server rack, home lab, profile structure,voice setup, remote machines, browser automation, whatever makes it yours.
No need for a pristine lab or an expensive GPU rack. A MacBook, a Windows box in the corner, a VPS, or one terminal window held together by questionable YAML all qualify.
If you want a format: (optional)
─ text
Hardware:
OS:
Hermes version:
Favorite workflow:
Current weak spot:
Next upgrade:
Photos, screenshots, redacted config snippets, folder trees, and short walk through are all fair game.
One rule: redact API keys, tokens, passwords, private IP addresses, and anything else you wouldn’t want permanently attached to your Reddit account.
Extra Credit:
What’s one thing Hermes does for you now that you refuse to go back to doing manually?
Without further ado, Show the clean builds, the chaos builds, and the “it works, don’t touch it” builds.