Tuổi của một công cụ đo bằng việc TUI của nó giả định rằng bạn không thực sự nhìn vào nó đến mức nào.
Terminal của Hermes trước v0.11.0 đúng kiểu giao diện đó: nó chạy, theo cách mà installer chế độ text của một máy Linux cũ chạy. Mỗi phím làm một việc gì đó, mỗi lệnh làm đúng điều nó nói, và bố cục thị giác là một sự lịch sự mỏng hơn là một thiết kế. Tôi dùng nó hằng ngày. Tôi không nhận ra mình lặng lẽ đi vòng quanh nó nhiều thế nào cho đến khi v0.11.0 ra.
Ngày 23 tháng 4 năm 2026 — tám ngày sau v0.10.0 — bản phát hành mà chính đội Hermes gọi là "the interface release" đáp xuống. Cái tên trông nhạt cho đến khi bạn đọc changelog và nhận ra rằng tầng giữa bạn và agent đơn giản đã trở thành một chương trình khác.
React, Ink và TUI giờ đây thực sự là TUI
Ink TUI là thay đổi nhìn thấy được. Ink là thư viện của Vadim Demedes cho phép bạn xây UI terminal bằng component React — cùng những primitive như trên web, chỉ là render xuống terminal. TUI của Hermes được viết lại hoàn toàn trong Ink, với một backend Python nói chuyện với frontend qua JSON-RPC.
Có nghĩa cụ thể là: streaming output không bị giật khi giữa chừng có tool call. Khung spinner đứng gọn cạnh chữ. Resize terminal tính lại bố cục mà không mất lịch sử. Output tool dài rơi vào một block có thể gập, bạn mở khi cần. Một bước nhìn trước cho inline image rendering cũng được nhắc trong release notes cho các phiên bản tới.
Nghe như sơn lại bề mặt, và trong năm giây đầu nó đúng là vậy. Đến giờ thứ năm thì nhiều hơn thế: đó là một TUI cư xử như một môi trường tương tác đáng cư xử. Lần đầu trong một năm, terminal trông như chương trình mà Hermes thực sự sống trong đó, chứ không phải một shell tối giản mà nó bị nhét vào.
Pluggable transport — tầng model giờ thực sự là một tầng
Dưới TUI là thay đổi lớn thứ hai: kiến trúc transport có thể cắm rời. Tầng model trước v0.11.0 thực chất là một chuỗi if-elif dài mà mỗi provider làm một việc riêng. v0.11.0 thay nó bằng một interface transport duy nhất mà provider được cắm vào.
Bốn transport được giao trong ngày phát hành: Anthropic Messages, OpenAI ChatCompletions, OpenAI Responses API và Amazon Bedrock. Trên đó đáp xuống năm tuyến inference mới: GPT-5.5, Claude Opus 4.7 (context 1M), Kimi K2.6, QQBot (Tencent), và một tuyến Bedrock trực tiếp cho doanh nghiệp.
Điểm quan trọng không phải là "năm model mới" — đó là một tuần bình thường trong 2026 — mà việc thêm cái thứ sáu, hay thứ bảy, từ giờ là một implement plugin chứ không còn là patch trên chuỗi if. v0.13.0 sẽ xây lên cái này bằng cách thêm pluggable provider-systems cho gateway adapter. Hình dạng đã được vẽ sẵn ở đây.
/steer, đổi hướng giữa đường
/steer là slash command cho phép bạn, từ bên trong một agent đang chạy, lái lại mà không cắt phăng và bắt đầu lại. Trước v0.11.0, cách điều chỉnh hướng của agent đang chạy là: Ctrl-C, restart, prompt mới. Mất context. /steer nói: không, cứ làm tiếp việc đang làm, nhưng cân nặng cái này hơn.
Hiệu ứng nhỏ hơn một thay đổi giao thức nền tảng và lớn hơn một tinh chỉnh ergonomic. Người dùng nào để Hermes chạy thứ kéo dài hơn một phút giờ đều có một nút can thiệp mà không phải vứt toàn bộ trạng thái đi.
Cùng tinh thần: /queue cho phép bạn xếp sẵn câu hỏi tiếp theo trong khi agent vẫn đang bận với câu hiện tại. Nghe nhỏ cho đến khi bạn nhận ra rằng cadence của một cuộc trò chuyện TUI luôn là: gõ, đợi, gõ, đợi. v0.11.0 đổi thành: gõ, gõ, gõ, agent xử lý theo thứ tự.
Bề mặt plugin giờ không còn là hợp đồng nhỏ
Plugin API trong v0.11.0 nhận một mở rộng nền tảng. Plugin từ nay có thể cung cấp component TUI của riêng nó, không chỉ tool nền. Một plugin có thể thêm statusbar riêng, panel riêng, một dialog modal được render bởi chính cái renderer Ink chung với phần còn lại của TUI.
Nghe có vẻ vô hại nhưng không phải. Một plugin API chỉ xử lý nền là một plugin API cho script. Một plugin API được phép render là một plugin API cho ứng dụng. v0.11.0 thực hiện bước nhảy đó.
Tầng MCP nhận song song một cập nhật OAuth 2.1 device flow — lại lần nữa, dưới dạng mở rộng công việc trước đó thay vì thay thế.
Cái tên "interface release" thực sự bao gồm những gì
Release notes gọi v0.11.0 là "the interface release", và thoạt nghe có vẻ như đó là tên cho "chúng tôi đánh bóng lại TUI". Nhưng nếu bạn xếp changelog ra, nó nói về interface ở ba tầng cùng lúc:
- •Interface người–agent (TUI viết lại).
- •Interface agent–model (tầng transport viết lại).
- •Interface plugin–host (hợp đồng plugin mở rộng đến mức cho phép vận hành TUI).
Về bản chất đây là một bản phát hành mà ba cạnh chạm vào Hermes — trên, dưới và bên — đều được làm mới trong cùng một version. Hiếm có với cadence hằng tuần, và chỉ khả thi vì refactor transport ở v0.10.0 đã âm thầm dọn đường.
Cái gì hiện giờ tốt hơn, kèm số
- •Streaming throughput cao hơn khoảng 2× trên Claude nhờ buffering token tốt hơn trong renderer Ink.
- •Cold start TUI thấp hơn 28% — một con số đầu tiên đẹp, trước khi bước 57% của v0.12.0 chồng thêm lên.
- •Memory footprint cao hơn chút (~12%) do runtime của Ink, đổi lấy throughput vừa nói.
Không con số nào tự thân là lập luận bán hàng. Cộng lại, khác biệt giữa "trơn tru" và "gần trơn tru" đã biến mất.
---
Cái tôi tự hỏi, một tuần sau khi upgrade: bao nhiêu lần giữa v0.10.0 và v0.11.0 tôi đã lặng lẽ đi vòng quanh TUI cũ? Tôi chuyển sang cửa sổ terminal thứ hai để đọc output tool dài. Tôi copy text đang stream vào editor để nó dễ đọc. Tôi restart agent để chỉnh hướng thay vì lái. Ba workaround nhỏ mà tôi không nhớ rõ ràng cho đến khi ở v0.11.0 chúng không còn cần nữa.
Việc làm tốt về interface hoạt động như vậy. Bạn không nhận ra ở một feature mới sáng lấp lánh; bạn nhận ra ở một hàng workaround cũ ngừng tồn tại mà không hề thông báo.