Kyle French (@kylefrenchdev) header
Kyle French (@kylefrenchdev) profile picture

Christian. Developer. Dad x3. #GoHabsGo

πŸ‡¨πŸ‡¦ Canada
Joined December 2022
Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)Photo by Kyle French (@kylefrenchdev)
I am starting to build out Hermes Agent templates that replicate my top Grok Bot Agents and their templates. More on this in the week to come. Own your Agents and Inference.
Phase 1 is first Hermes Agent template done. Developed and reviewed by Hermes agents leveraging GLM5.3 running on local inference.
3
1
22
1,358
Job opening with a great team working on a great platform
hiring a Partnerships Lead to help build and scale the Hermes Agent ecosystem if you or someone you know is a fit please reach out! nousresearch.com/careers/par…
2
1
10
1,309
Kyle French retweeted
Opus 5.5 built a live painting studio from NVIDIA's free SimReady models
30
94
10
1,187
113,896
Replying to @OpenAI
@OpenAI, this is ridiculous. @ChatGPT is automatically switching conversations into Work mode, which shares a limited usage allowance with Codex, and apparently it's MY responsibility to stop it. Look at the response I received from OpenAI Support. πŸ‘‡ I've repeatedly encountered a 30-second countdown offering "Stay in Chat." If I don't respond, ChatGPT switches the conversation into Work mode. I manage hundreds of conversations across multiple projects. I regularly submit a prompt, move to another conversation, and return when the response is ready. Why should I have to babysit every conversation to prevent ChatGPT from initiating an agentic workflow I NEVER requested? Here's where it gets worse. My ChatGPT Pro Work/Codex allowance reset around October 14. By the morning of October 16, **46% was gone.** I hadn't used Codex since the reset. I've never intentionally initiated Work mode. And nobody has explained what consumed that allowance. For context, I run HermesWatcher. I work extensively with AI agents and understand agentic harnesses. I maintain my GPT subscription primarily for use with my Hermes Agent. When I want ChatGPT, I use ChatGPT. When I decide I need Codex, I deliberately open Codex. I have ZERO interest in Work mode. **I decide when to initiate agentic work, not OpenAI.** And this screenshot is what I received after requesting an investigation. Support wants me to identify a specific conversation among hundreds, then advises me to click "Stay in Chat" to prevent future switches. So the responsibility is on me to investigate unexplained usage AND actively prevent ChatGPT from changing modes? Where is the transparency? How much allowance did each activity consume? Which conversations entered Work? Why were they switched? How do I disable this behavior entirely? An allowance eventually resetting doesn't excuse any of this. This is exactly why having control over your AI agents matters. Frontier AI labs are increasingly putting usage limits around powerful capabilities, yet users are still left without basic transparency over when and how those allowances are consumed. **An unanswered countdown is not consent to consume a metered agentic allowance.** @thsottiaux, I'd genuinely appreciate your attention to this. My DMs are open if you'd like the support case number. This needs an actual investigation, transparent usage accounting, and explicit user control. Not another explanation of how to click "Stay in Chat." @thsottiaux @gdb @sama @OpenAI @ChatGPTapp @sulmanrc @OpenAIDevs @OpenAINewsroom @nickaturley
13
5
1
67
4,710
Kyle French retweeted
At your lowest, you will meet a man named Jesus. It is very important that you receive Him as your Lord and Saviour.
54
598
9
7,843
57,005
Kyle French retweeted
β€οΈπŸ’―
83
1,196
55
5,494
48,064
Kyle French retweeted
You need to be delusional.
80
1,612
63
14,403
568,319
Millennials - we are a privileged bunch We got to experience social media after our frontal lobes were developed and before it was an INDUSTRY We get to now experience AI after we’ve acquired real skills and before we’re old and stuck in our ways Accelerate accordingly
43
77
12
1,054
50,891
Kyle French retweeted
I’ve had a TON of people in my DMs and comments asking how to set up Bots Mode group chats in Hermes Desktop. So I finally made a quick walkthrough. And you’re probably gonna laugh when you see how easy it actually is. πŸ˜‚ Seriously. A couple clicks and your bots are talking to each other in the same room. Here’s how to set it up πŸ‘‡
21
29
2
386
21,041
Kyle French retweeted
🀩 This is sneaky useful. Hermes Agent just added a Reddit research skill that can work WITHOUT: a Reddit account a login cookies or an API key Plus a new zero-install RSS skill that can discover feeds from a normal webpage and read RSS, Atom + JSON Feed. Then Hermes can fold those into bigger multi-platform research sweeps alongside web, X, video and code. One prompt. A LOT more of the internet. This is absolutely going into my research workflow. πŸ’―
38
30
3
528
24,824
Kyle French retweeted
We will give one banked reset for every day you don't have access to Astra on your paid ChatGPT plan, starting today. Team is moving mountains to give access as fast as we can. First one will land in ~ 3 hours. There is still time to create your account if you don't have one.
5,557
3,443
3,539
48,046
9,193,036
Kyle French retweeted
vllm-exl3 v0.3.0 is LIVE with custom native CUDA kernels for 2-bit EXL3 on NVIDIA DGX Spark GB10. GLM-5.3-Flash-EXL3-K2 jumped from 16.9 β†’ 24.6 tok/s average single-stream decode, a +45.6% gain. Coding hit 27.6 tok/s, +85.6%. πŸš€ The previous ExLlamaV3-backed path inside vLLM was leaving a lot of GB10 bandwidth on the table. So I rewrote the hot path specifically for EXL3 on Blackwell sm_121: β†’ in-register Trellis dequantization β†’ native fused MoE decode β†’ power-of-two chunked prefill GEMM β†’ parallel NVMe pre-warm Then I tested it side-by-side on physical DGX Spark hardware using my GLM-5.3-Flash-EXL3-K2 pack and live vLLM HTTP streaming. πŸš€ π——π—˜π—–π—’π——π—˜ 𝗧𝗛π—₯π—’π—¨π—šπ—›π—£π—¨π—§ Single-stream C1: Coding 14.9 β†’ 27.6 tok/s +85.6% Prose 13.7 β†’ 24.6 tok/s +79.3% Reasoning 18.9 β†’ 25.1 tok/s +32.7% Summary 17.1 β†’ 25.6 tok/s +50.0% Format 16.3 β†’ 24.0 tok/s +47.7% Average: 16.9 β†’ 24.6 tok/s π—‘π—˜π—§ π—šπ—”π—œπ—‘: +45.6% ⏱️ π—™π—œπ—₯𝗦𝗧-π—§π—’π—žπ—˜π—‘ π—₯π—˜π—¦π—£π—’π—‘π—¦π—œπ—©π—˜π—‘π—˜π—¦π—¦ Coding TTFT: 2,344 ms β†’ 859 ms That is a 63.3% reduction, or about 2.7Γ— faster to first token. Follow-up turn with prefix cache hit: 5,608 ms β†’ 3,588 ms 1.56Γ— faster. ⚑ π—ͺ𝗛𝗔𝗧 π—–π—›π—”π—‘π—šπ—˜π—— 𝗒𝗑 π—§π—›π—˜ π—šπ—£π—¨ 40 routed-MoE layers: 19.9 ms β†’ 11.5 ms per token Per-layer MoE compute: 497 ΞΌs β†’ 287.8 ΞΌs That removes 8.4 ms of MoE compute from every generated token. Total per-step wall time: 59.2 ms β†’ 40.6 ms -31.4% The key is `p2b_fused_moe`. Instead of expanding EXL3 weights through a traditional intermediate path, the new kernel performs Trellis dequantization in-register while executing the routed expert computation. The weights stay compressed until the GPU actually needs them. πŸ”₯ 𝗣π—₯π—˜π—™π—œπ—Ÿπ—Ÿ π—šπ—’π—§ 𝗔 π—‘π—”π—§π—œπ—©π—˜ 𝗣𝗔𝗧𝗛 𝗧𝗒𝗒 The new `exl3_gemm` uses power-of-two chunked prefill GEMM. Measured: 7.85 TFLOPS 13.0Γ— faster than the legacy prefill kernel 1,875 tok/s cold prefill sustained across 65K context πŸ’Ύ π—§π—›π—˜ 𝗕𝗒𝗒𝗧 𝗣𝗔𝗧𝗛 π—‘π—˜π—˜π——π—˜π—— π—ͺ𝗒π—₯π—ž 𝗧𝗒𝗒 Loading a ~91 GiB model is part of the user experience. Standard shard loading is mostly serial. The updated recipe parallelizes NVMe pre-warm across 8 workers so the storage controller gets used properly instead of feeding a ~100 GiB model one shard at a time. That turns boot-time storage into another optimization target instead of something we simply accept. πŸ’‘ 𝗧π—ͺ𝗒 π—¦π—˜π—₯π—©π—œπ—‘π—š π—™π—Ÿπ—”π—šπ—¦ π—ͺ𝗒π—₯𝗧𝗛 π—žπ—‘π—’π—ͺπ—œπ—‘π—š `--long-prefill-token-threshold 1024` Prevents giant prefill chunks from monopolizing step budgets and starving parallel decode sessions. `--enable-prefix-caching` Avoids paying for the same conversational prefix again on follow-up turns. πŸ“¦ π—˜π—©π—˜π—₯π—¬π—§π—›π—œπ—‘π—š π—œπ—¦ π—’π—£π—˜π—‘ vllm-exl3: github.com/vcruz305/vllm-exl… GLM-5.3-Flash one-Spark recipe: github.com/vcruz305/GLM-5.3-… Model: huggingface.co/vcruz305/GLM-… This is why I like working at the kernel level. The model did not change. The quant did not change. The hardware did not change. The execution path did. 16.9 β†’ 24.6 tok/s. πŸ› οΈ @vllm_project @turboderp_
16
19
5
129
21,777
Kyle French retweeted
18
119
12
553
3,371
Kyle French retweeted
I am a delusional optimist and i will win
126
4,295
156
23,243
763,767
Kyle French retweeted
This drawing was made by writing "Jesus" over 14,983 times
116
983
43
7,080
77,436
Kyle French retweeted
Tier list best coding agents in 2026 - Hermes agent @NousResearch
23
12
3
219
32,934
Today in Hermes August 22, 2026 Desktop got a new way to package diagnostics for support today, while Hermes also fixed a state-repair loop that could chew through disk space, isolated remote SSH sessions properly, and closed a Desktop crash loop. β–Έ Desktop can package diagnostics for support: Failed-turn error cards now have a Send Diagnostics action. It collects system info plus agent, gateway, and Desktop logs, runs them through redaction, and waits for an explicit Upload before sending anything. If the upload succeeds, Desktop gives you a private view link or upload ID and direct paths to continue through GitHub Issues, Nous Portal Support, or Discord. The privacy notice matters here. Full logs can include conversation content, tool output, and file paths. Secrets and email addresses are redacted before upload, and the bundle automatically deletes after 14 days. Access is limited to Nous staff and allowlisted Discord moderators. β–Έ State database repair stops filling the disk: A malformed `state.db` could get caught in a repair loop that kept creating full-size forensic backups, turning database corruption into a disk-space problem of its own. The repair path now keeps repeated attempts bounded for the same damaged state and can refuse another backup when disk space is too tight. Same-day hardening also tightened how Hermes decides whether an existing recovery copy is actually safe to reuse and made backup publication atomic, so a stale or incomplete bundle does not masquerade as a valid recovery copy. β–Έ Remote SSH sessions stop sharing the wrong target: WebUI and gateway sessions could share one cached remote environment. Switch from one SSH-backed profile to another and the new session could reuse the first profile's SSH environment, quietly sending commands to the wrong remote host. Hermes now scopes that environment to the session. Each session gets its own remote slot, while subagents continue sharing their parent session's environment. CLI behavior is unchanged. β–Έ A poisoned tool-call cache stops blanking Desktop: Duplicate tool-call IDs inside one assistant message could crash the Desktop view. If that bad message was already stored in the transcript-tail cache, reopening the session could reproduce the crash again after an upgrade. Desktop now catches duplicate IDs at the runtime boundary, avoids creating them while folding messages together, and repairs poisoned cached tails as they are loaded. Also worth knowing β–Έ Gateway fleets get a live source of truth: Running gateways can now answer local identity and status queries themselves through a Unix socket or Windows named pipe. Fleet inventory and update checks can prefer the gateway's own PID, profile, Hermes home, code version, and runtime status instead of relying entirely on process scans and saved state, with the older paths retained as fallback. β–Έ Discord's model picker can show more than 25 models: Providers with larger catalogs were being silently clipped by Discord's 25-option limit. Hermes now splits the list across multiple selectors, allowing up to 75 models to appear instead of dropping everything after the first 25. β–Έ Legit plugin launchers stop tripping the security scan: The Skills security guard could mistake launcher flags such as `--host 127.0.0.1` for a DNS-exfiltration command and classify an otherwise legitimate plugin as dangerous. The matcher now distinguishes those flags while continuing to catch actual DNS lookup patterns. Want these changes? Make sure Hermes is up to date: * Terminal / CLI: `hermes update` * Messaging Gateway: `/update` * Slack / Matrix: `!update` * Desktop: Settings β†’ About β†’ Check now β†’ Update now
3
5
72
4,588
Kyle French retweeted
Hermes Desktop is NOT just β€œHermes Agent with a GUI.” That mental model is officially dead. Part 1 of the Hermes Desktop Masterclass is live. πŸͺ½ We’re starting at the foundation: What Desktop actually is. What runs where. Why Electron, React, hermes serve, and the Agent runtime are separate. And why that architecture matters way more than most people realize. This is the beginning of a full series. If you use Hermes Desktop, you’re gonna want this one. πŸ‘‡
1
6
61
6,253
Kyle French retweeted
French’s stick together! Check this out πŸ‘‡
Katana (my @NousResearch Hermes agent) and I got the real Hermes Desktop running locally on my Galaxy S25. 🀯 Not a mockup. Not an APK. Not remote desktop. It’s the actual Linux Electron app, running through Termux:X11 + Ubuntu PRoot. Open-source setup below πŸ‘‡
2
1
2
169
Kyle French retweeted
Kyle over here making big moves!
I added search to the @NousResearch Hermes Agent Bot roster, so you can quickly find bots by profile name instead of digging through the whole list. Small quality-of-life feature, but a useful one. Big thanks to @teknium1 for rebasing it and getting it merged πŸ™Œ
1
1
2
119