Skip to main content

A real terminal, and a dropped file that finally reaches the model

Nico 0.1.0. The terminal became a real terminal, and the bug that had quietly broken every app build with a file attached is gone.

The terminal is a real terminal

It was ours, hand-written, and it showed. It is now xterm.js — the same terminal engine VS Code uses. Typing keeps up with you instead of arriving in bursts of four characters. Shift, Ctrl and Alt combinations work. Scrollback, colours and line spacing are what you expect from a terminal, because now they are a terminal's.

A dropped file finally reaches the model

A file you attached was recorded 0.3 milliseconds after the build had already started reading the folder. So the model never saw it.

For a terminal that was harmless — it reads the folder seconds later anyway. For an app build it meant the attachment was simply absent, on every model, every time. Three separate pieces of work had tried to fix the symptom. The cause was the order of two lines.

Editing an app happens on the app's own row

Editing used to open a new ask, as if you had started something unrelated. Now the running server stops, the edit happens, and the app starts again — one step, on the app's own row, for Claude Code, Codex and local models alike.

Codex's scrollback was never lost

It was being thrown away by our own parser as it arrived. It is all there now.

Your prompt was being cut at 4,000 characters

Anything past that was silently dropped before it reached the model. Five other things that were quietly wrong went with it.

Quit no longer leaves a server running

⌘Q used to leave any running app's server alive and holding its port — nothing could show it, nothing could stop it, and the next launch collided with it. Quit now stops them. A task is left alone, because a conversation can be picked up again.

Less text

Explanatory paragraphs across the app have been cut back to what you actually need to read.