Repository navigation
byoa v0.2.0 — the terminal UI
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 --versionKeep 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 --versionNew: --tui
byoa --tui
byoa --tui --provider lmstudio --model google/gemma-4-e4bA 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:
aallow,d/Escdeny,Enterdenies by default. Ctrl+Treasoning,Ctrl+Otools,PgUp/PgDnscroll,Ctrl+Ccancel.- 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 insidenode_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
bubblewrapfor 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.