Releases: serrebidev/BlindTerm
Release list
BlindTerm v0.7.10
- Close a window itself once the program it was opened for has finished cleanly. A console
Windows pops up for a one-shot program -- a script, an installer, a build -- stayed open
after the run ended, saying "Program exited with code 0" and waiting to be dismissed by
hand. The window now says that line and closes itself a moment later, the way the console
it stands in for would have. A run that failed still keeps its window, because that is
where the error can be heard or read back from, and an unknown exit code or a dropped
connection keeps it too. A window somebody is reading is never closed under them: a
full-screen view that has not been cleared, or a caret parked back through the
transcript, cancels the close. The same applies when a shell window is closed by typing
exit, or an SSH window by the connection ending.
BlindTerm v0.7.9
- Speak output about three times sooner after a command finishes. The wait between a program
printing and a screen reader saying it was measured at 132 ms and is now 42 ms. Two things
were behind it. The pause after output stops was written as 50 ms but took 62: Windows runs
its timers at 15.6 ms by default and a wait never ends early, so every number here was
quietly rounded up. BlindTerm now holds the clock to a millisecond while output is waiting
to be spoken, and lets it go again afterwards rather than keeping the machine awake for a
terminal that is saying nothing. The pause itself is also shorter, because the reason it was
long no longer held: streamed output queues in both NVDA and JAWS rather than cutting
off what they were saying, so waiting to gather a burst was never what kept a line from
being talked over. - Stop making every Return wait a quarter of a second while a program is running. The pause
that lets Codex tell a typed line from a pasted one was being charged to every child
process, so running anything at all -- a nestedcmd, ansshsession, a Python prompt --
put 250 ms in front of every command for as long as it was open. It now applies only when
one of the agent CLIs is actually reading the line, or when Windows handed over a console
whose program BlindTerm cannot identify. A line shorter than three characters never waits
at all: no composer calls two characters a paste, so a bare Return or a one-key answer had
nothing to wait for. - Read an ordinary command's output instead of describing it. Any batch over thirty lines was
replaced with "41 lines of output. Last 30:", which a directory listing, a git log or a
short test run trips easily. The threshold is now high enough that ordinary commands are
read whole, and a genuine flood is still summarised with its tail. - Keep up with a program that floods the terminal. Speech ran further and further behind a
steady printer -- still reading the start of a build after it had finished -- because
neither reader discards queued speech to make room: a higher priority interrupts and then
the backlog resumes. Once output has been arriving for a second, BlindTerm now drops what
is queued and says what is being printed now, at a cadence slow enough to be worth hearing.
The end of a flood is still spoken promptly, and everything remains in the transcript to
review. - Count a shell's children with a Windows job object instead of enumerating every process on
the machine. Deciding who a keystroke belongs to no longer walks the whole process list on
the window thread. - Stop copying the entire transcript out of the output control to find where its last line
starts. That cost grew with the length of the session, on every terminal update; it is now
a constant-time question asked of the native control in place. - Coalesce rapid repaints into one output-control update, skip redrawing a full-screen view
whose rows have not changed, and return early from line news and trigger matching when a
batch changed nothing.
BlindTerm v0.7.8
- Speak nothing from a background window, triggers and the bell included. Speech is now
only for when someone is in the app: the trigger and bell exceptions that used to talk
over whatever the user went to read are gone, and Read → Speak output in the
background is the only way to hear a background window.
BlindTerm v0.7.7
Preserves complete Codex conversations after long inline responses instead of allowing viewport repaints to erase earlier output. Rapid terminal repaints are now batched so the BlindTerm window and NVDA remain responsive while output streams. Long lines continue to wrap, and normal transcript navigation, selection, and copying remain available.
BlindTerm v0.7.6
BlindTerm v0.7.6 wraps long output lines instead of hiding what runs off the right edge.
- Wrap long output lines instead of hiding what runs off the right edge. Codex, Claude Code and OpenCode write a whole paragraph to one terminal row, and BlindTerm joined the wrapped rows back into one logical line but left it unwrapped in the output control, so everything past the window's edge was invisible and a long response read as truncated. Long lines now wrap to the window width, the way they do in any other terminal.
Verification: 880 automated tests pass with zero warnings. The portable archive and installer are self-contained Windows x64 builds, and SHA-256 hashes are published in BlindTerm-update.json.
BlindTerm v0.7.5
BlindTerm v0.7.5 answers an agent's numbered questions with a plain digit, and pastes into full-screen programs the way a terminal does.
- Answer an agent's numbered question with a plain digit. Codex and Claude Code ask questions whose answers are numbered -- a model list, a permission level -- and BlindTerm buffered the digit in its own edit box, so the answer never reached the picker and the question sat there unanswered. A bare unmodified 0 through 9 on an empty command line now goes straight to the program when a numbered choice is on screen. A digit inside text remains ordinary prompt text, and Alt+1, Alt+2 and Alt+3 stay BlindTerm's output, input and review commands.
- Paste into a full-screen program the way a terminal does. A paste in vim or nano went in as the keystrokes that spell Ctrl+V rather than as the pasted text, and a program that had asked for bracketed paste -- vim does, to switch auto-indent off for a pasted block -- was never told where the paste began and ended. Pasted text now reaches the program whole, wrapped in the bracketed-paste markers when the program has asked for them, and raw when it has not.
Verification: 880 automated tests pass with zero warnings, 10 of them new -- 8 for agent launch and answer-digit recognition, and 2 for bracketed-paste encoding. The portable archive and installer are self-contained Windows x64 builds, and SHA-256 hashes are published in BlindTerm-update.json.
BlindTerm v0.7.4
BlindTerm v0.7.4 fixes commands typed at agent CLIs not being sent, and starts the same program a shell would when two tools share a name.
- What you type at an agent CLI now gets sent. Codex counted a whole line arriving in one write as a paste, and a Return inside a paste is a newline rather than "send this": typing "test" and pressing Enter put the word in Codex's composer, added a blank line under it, and sent nothing, forever. BlindTerm now leaves the Return long enough after the line to be unmistakably a keypress whenever a program rather than a shell prompt is reading it. A MUD is unaffected -- nothing on the far end of a connection guesses at pasting, and commands there are still sent at once.
- The same program a shell would run starts when two tools share a name. The search for a command went extension by extension -- every directory on PATH for a .exe, then every directory for a .cmd -- so an unrelated opencode.exe further down PATH beat the opencode shim that every shell runs. It printed a usage error and exited before anything could be typed at it. The search now goes directory by directory, the way a shell does.
- PowerShell scripts run. A .ps1 typed by name or by path now runs through PowerShell 7, or Windows PowerShell where 7 is not installed, the way .cmd and .bat files already ran through cmd.exe. Named by itself it is found even though the stock PATHEXT never mentions .PS1, because that is what happens at a PowerShell prompt.
Verification: 851 automated tests pass with zero warnings, 10 of them new -- 6 for command resolution and 4 for the submit gap. The portable archive and installer are self-contained Windows x64 builds, and SHA-256 hashes are published in BlindTerm-update.json.
BlindTerm v0.7.3
BlindTerm v0.7.3 adds a dark mode, and fixes agent CLIs failing to start.
- BlindTerm's windows can follow Windows' own light or dark setting, or be held to one of them, from the new Colours box in settings. Following Windows is the default, and a change applies the next time BlindTerm starts.
- The whole window changes together: title bar, menu, transcript and command line. The transcript and command line are native edit controls, which paint from the system's own brushes and had to be told the colours explicitly.
- Command line tools installed as shims now start. Everything npm installs — codex, claude and opencode among them — is a .cmd file with no .exe beside it, and CreateProcess cannot run one, so opening an agent closed the window with an unhandled "The system cannot find the file specified". BlindTerm now does the search a shell would do and runs a shim the way a shell runs one.
- When a command genuinely does not exist, the error names the program instead of only saying that a file could not be found.
Verification: 841 automated tests pass with zero warnings, 16 of them new for command resolution and 4 for the colour setting. Dark and light were both confirmed on screen against a real build, and the cmd.exe wrapper was confirmed to launch a real npm shim. The portable archive and installer are self-contained Windows x64 builds, and SHA-256 hashes are published in BlindTerm-update.json.
BlindTerm v0.7.2
BlindTerm v0.7.2 moves the automatically refreshed MUD directory into its own repository.
- The directory continues to rebuild and publish twice an hour.
- Generated directory commits no longer appear in BlindTerm's Telegram notification feed.
- BlindTerm now downloads the list from serrebidev/BlindTerm-directory.
- The publishing workflow uses a narrowly scoped deploy key and current Node.js 24 GitHub Actions.
Verification: 821 automated tests pass with zero warnings. Two live directory workflow runs completed successfully, and the new feed was verified with 1,092 games. The portable archive and installer are self-contained Windows x64 builds, and SHA-256 hashes are published in BlindTerm-update.json.
BlindTerm v0.7.1
BlindTerm v0.7.1 fixes remote-shell arrow keys.
- Left, Right, Home and End are no longer forwarded to a remote shell at an empty command line.
- These keys are ordinary edit-box caret keys again, exactly as they are at a local shell prompt. A remote shell has no local model picker or effort selector to drive, and answering those keys with a bell made BlindTerm announce the prompt as an "Attention" event on every press.
- Up, Down, Escape and the page keys still reach the remote program.
Verification: 820 automated tests pass with zero warnings. The portable archive and installer are self-contained Windows x64 builds, and SHA-256 hashes are published in BlindTerm-update.json.