Skip to content

byoa v0.2.0 — the terminal UI

Choose a tag to compare

@UnixUserDev UnixUserDev released this 19 Oct 16:22
· 5 commits to main since this release

byoa v0.2.0 — the terminal UI

The harness now has a face.

Install (use a release artifact, not the source tree)

Standalone (needs Node >= 26; no npm install):

mkdir -p ~/.local/lib/byoa ~/.local/bin
tar -xzf byoa-0.2.0-linux-x64.tar.gz -C ~/.local/lib/byoa
ln -sf ~/.local/lib/byoa/byoa ~/.local/bin/byoa
byoa --version

Keep the extracted directory together: the launcher resolves @opentui/core from the
node_modules beside it, so copying byoa out on its own makes --tui fall back to the CLI.

npm-installable tarball:

npm install -g ./byoa-0.2.0-npm.tgz
byoa --version

New: --tui

byoa --tui
byoa --tui --provider lmstudio --model google/gemma-4-e4b

A calm single-column terminal UI: header, transcript, input, and one stats line (tokens in/out,
tok/s, elapsed, tool calls, memory hits, model/tier/sandbox). Opt-in, and only on a real colour
terminal — it falls back to the plain CLI when stdout is not a TTY, TERM=dumb, or NO_COLOR is
set.

  • Incremental streaming (appends, never full repaints).
  • Tool calls update in place; failures are marked and counted.
  • Approval bar: a allow, d/Esc deny, Enter denies by default.
  • Ctrl+T reasoning, Ctrl+O tools, PgUp/PgDn scroll, Ctrl+C cancel.
  • Terminal restored on every exit path, including signals.

The TUI is another dumb terminal on the existing AgentEvent / AgentCommand wire. run.ts is
the only module that loads OpenTUI at runtime.

Also in this release

  • Release artifacts are now built bundles (standalone + npm tarball). Node does not type-strip
    TypeScript inside node_modules, so the source tree is not an installable package.

Added in 0.1.0

Core loop, OpenAI-compatible + Anthropic providers (plus local servers), sessions with resume,
shell/file tools, bubblewrap sandbox with a read-allowlist skeleton root, three prompt tiers, and
namespaced Obsidian-backed memory.

Requirements

  • Node.js >= 26
  • Linux with bubblewrap for sandboxing; strict (default) refuses to run unwrapped without it.

Quality

211 tests, 0 skipped, including real-bubblewrap isolation tests and headless OpenTUI render tests;
tsc --noEmit clean.


AI-generated with OpenCode — primary model: DeepSeek V4.1 Flash.