From late August to late October, Term shipped 27 releases. Here is what we built, why we wrote our own GPU terminal and our own mosh server, why we chose a subscription, how quality stands, what is still not good enough, and what comes next.
Written
From 26.2.3 on 27 August to 26.8.3 on 26 October, Term shipped 27 releases — one every two days or so. Not every one was big; many fixed a handful of problems. Every one was checked on real devices before it went out.
A few that stand out:
HarmonyOS has no ready-made terminal to build on. The quick route is a web terminal inside a WebView, but then scrolling, the input method and the width of Chinese text all go through a browser, and the feel is hard to get right. So Term's terminal is ours from end to end: an engine written in Rust reads what programs print, and a GPU renderer we wrote ourselves draws it.
We started by drawing on the CPU. Measured, one frame of full-screen scrolling took well over ten milliseconds — half of it drawing glyphs, more than a third moving the finished picture to the screen — a long way from 120 Hz. Moving to the GPU handed both jobs to the graphics chip. The CPU path is now gone entirely; the GPU is the only renderer.
Writing it ourselves also lets us decide things the way a phone is really used:
mosh suits a phone: switch Wi-Fi, switch to 5G, lock the screen and come back, and the connection holds. But the original mosh server has not changed much in years, and some things it cannot do: scroll back through earlier output, tappable links, Shift+Enter for a new line, coding agents following your light or dark theme.
So we wrote a server from scratch to the mosh protocol: termosh. It is a drop-in replacement for mosh-server and passes the original's tests. With Term, it brings everything above, and typing responds faster. Without termosh, stock mosh still connects as before.
We want Term to be the terminal that feels best on a phone, and to keep it that way. That is not something you finish once: SSH servers change, coding agents ship new versions almost every week, and HarmonyOS itself keeps moving. A feature that works today can break in a few months because of a change somewhere else, and someone has to keep up with it.
Behind 27 releases in two months is a lot of work you do not see. Each release is checked on phones, foldables, tablets and PCs. Each problem is reproduced, fixed, and then checked again for anything the fix broke. Every piece of feedback sent from the app is read and answered. Font downloads, termosh releases and the feedback system all run on our own servers.
A one-time purchase pays at the moment of sale, and that makes ongoing upkeep hard to keep funding. A subscription ties what we earn to whether Term stays good: people keep subscribing only if it keeps getting better, month after month. That is the direction we want, and it is why Term Pro is a subscription.
We watch quality through the app store's crash statistics. Recently, more than 99.98% of launches have been crash-free, with no freezes. The week-by-week trend is public on the quality page.
Crashes are not zero. Most come from script errors in the interface layer; crashes in the native engine are rare. Each one we find is reproduced on a real device first, then fixed, then verified. Many of those fixes started as feedback sent from the app.
Many of the machines people want to reach have no public IP: the computer at home, a server on the office network, a dev board behind a router. Reaching them today means port forwarding, a tunnel or a VPN — a real hurdle.
We are building a new service, working name termconnect. Install it on a computer or server and Term can reach it any time — no public IP, no router settings — whether you are at home, at work or on the move. The aim is simple: everyone can reach their own machines, easily.
It is still in development, and the name and details may change. When it is ready, you will hear about it here and in the app first.
Ideas or suggestions? Tell us in the app: Settings › Account › Feedback & suggestions.