About
Software you can click through, or hand to mai
maiSoft makes agentic software. Every product in the line started the same way — a stock tool stopped scaling, and the replacement did not exist. A phone app that cannot sensibly hold four Hue bridges. A terminal that forgets which agent was doing what the moment you close the lid. A hosting panel built on the assumption you are sitting at a desk.
The mai prefix is my and ai at once, and it describes how every product here works. There are two ways in. The interface is complete, for people who like to click through things themselves. mai is the other way in: say what you want, and it does the work, apart from a few actions that stay with you on purpose.
mai comes in two forms, depending on the product. maiHue and maiBooks have an assistant built in that works with the model you pick, cloud or local. maiServer and maiTerm open their controls over MCP, so the agent you already use can operate them. Either way, mai acts through the same typed operations the interface uses. It answers from what is actually there, and it cannot do anything the product itself could not.
Rules the whole line is held to
- A wrong number is worse than no number
- maiBooks returns totals per currency and refuses to convert, because it holds no exchange rates and a converted figure presented as computed would be invented. When a total cannot be stated honestly, the API returns nothing and makes the caller decide what to show.
- State is durable or it is not state
- Terminal scrollback lives in SQLite and survives a restart. Every maiServer config patch is journalled with a backup and a snapshot of intended state. If closing an app loses your context, the app was lying about having it.
- The interface tells you which machine you are on
- Surfaces that can do materially different things do not look alike. maiServer’s ops panel shares no visual language with anything a customer sees, so "which app am I in" is answerable from the corner of your eye rather than by reading the URL.
- Accessibility is a default, not a setting
- A 16px body floor, tabular figures anywhere a number carries meaning, real focus rings, and motion that respects a reduced-motion preference — including on this page.