A note from the maker

Software with
a point of view.

nus is my terminal and my browser. I built it for one user (me!) the way I want it, and I use it every day. I made it for personal and professional work, because none of the popular cross-platform tools integrated with the popular cross-platform browsers. I leave it FOSS as someone else might get some use out of this.

That means:

  • I decide the design. The product decisions live in docs/PRODUCT.md and docs/DESIGN.md; each "settled" pass there is a decision already made. A change that contradicts them is out of scope, however good.

  • Feature requests are welcome. Describe the problem you want to solve; requests inform development without promising implementation. Check whether a setting, rules.luau, a theme or a layout already covers it.

  • I read bug reports and small fixes. A crash with a reproduction, a platform build fix, a typo, a wrong doc: very much welcome. I’ll try to stamp out bugs as quickly as they come in. See CONTRIBUTING.md before opening anything, and email [email protected] for secured/responsible disclosure of vulnerabilities. There are limited funds available (I am one person, funding this by themselves, though I am awaiting extra funding to establish an actual program).

  • Preview releases, no support schedule. Native previews are published for macOS, Windows and Linux. Expect breakage and expect no answer on a schedule.

Sebastian Suarez-Solis
Making nus, one working day at a time.

nus / terminus

A small name.
A lot of room.

nus is the end of terminus. Short enough to type, with a terminal at its heart.

The app is written in Rust. Its interface is drawn with wgpu; Chromium handles web pages. The project notes explain how it fits together, including what still needs work.

The code is MIT licensed. Bundled fonts, icons and Chromium retain their own licences, included with release packages.

The pictures

Made by the app,
not of it.

Every window on this site is the Mac build of nus, recorded by nus. The app has a recorder: it runs a short script on its own event loop — the same functions the keys call, no synthetic input — and writes each frame from its own compositor. The window controls, the type, the caret and the colours are the app’s.

What is staged is the pacing. A take runs on a fixed clock so it reads at a comfortable speed, which means nothing here is a performance figure; those are on the measurements page, with how they were taken. The shell in the hero is building this site.

The scripts are in the repository under docs/promo, and the recorder is the same one nus share uses.