Skip to content
Menu
Changelog
0.12.8 2026-07-21
Changed
- bwn has a personality now — it's a partner, not a job title — a shared
voice runs ahead of every mode (build, plan, brainstorm, chat): bwn is a coding partner that
builds autonomously, brainstorms, or plans with you, plain-spoken and dry. A casual
aside like "know any jokes?" gets a natural reply instead of a robotic "I am a planning
engineer…" refusal. Wit stays in the conversation and out of error paths.
- PLAN mode no longer forces a plan onto non-tasks — greetings, jokes,
identity questions, and creative asides get a short natural reply; only concrete workspace
tasks are decomposed into steps.
Added
check_work — a one-call "does my change actually work?" check —
auto-detects the project (Cargo, npm/pnpm/yarn, Python, Go) and runs its build, tests, and
linter, returning a concise pass/fail report. A missing linter is skipped, never a false
failure. BUILD mode now checks its work before finishing.
Fixed
- A long BUILD turn lands gracefully — reaching the per-turn step budget
used to surface a raw "reached the step limit" error. The budget is larger, a wrap-up nudge
fires one step early, and the turn ends with an honest summary of what got done and the next
step — never a scary error for simply doing a lot.
0.12.7 2026-07-21
Changed
- The thinking stream renders markdown as formatted text — headings,
**bold**, `code`, bullets, and quotes in the model's reasoning
showed their raw markers; they now render as real styling, kept in the muted thinking
palette so reasoning stays visually quiet.
Fixed
- No more whole-screen flashes, and the queued-prompt bar always shows —
the terminal's scroll region is now re-asserted whenever a prompt is queued mid-stream, so
streaming output can't scroll over the queued bar (notably on Ghostty) or flash the screen.
0.12.6 2026-07-19
Added
- A killed TUI restores your terminal — SIGTERM/SIGHUP/SIGINT/SIGQUIT now run
a signal-safe handler that leaves the alternate screen, shows the cursor, and restores your
terminal settings. No more
reset after an external kill.
doctor probes your configured provider live — the same
one-token validation /model uses, so a rejected key, wrong model name, or dead
server shows up in doctor instead of on your next prompt.
Changed
- Readable dim text — secondary text moved from 2.76:1 contrast (below the
WCAG AA minimum) to 4.93:1, staying in the Tokyo Night comment-color family. Status meaning
never relies on color alone.
/undo git and /undo all confirm before destroying
work — both state exactly what they're about to do and require [y/N].
- "Write a poem" stays in the chat — the explain-vs-act nudge now requires
workspace evidence (a path, file, project, bug, …), so creative asks are answered in the
transcript instead of being pushed into files.
Fixed
- Every file the binary writes is written atomically — tool edits, settings,
the API-key store, memory, history, checkpoints. A crash mid-write can't truncate anything,
an edited script keeps its executable bit, and
.env.keys is never visible with
open permissions, even for an instant.
0.12.5 2026-07-19
Added
- Any OpenAI-compatible endpoint as a provider —
/model <url> <model>
(or a guided walk-through) points bwn at vLLM, TGI, LiteLLM, or a gateway; the API key is
optional, and a configured key is never sent over plain HTTP to a non-loopback host.
Any OpenRouter model works by typing its org/model name.
- The letsbeheroes skill collection — eight bundled process skills
(
/hero-brainstorm, /hero-plan, /hero-execute,
/hero-debug, /hero-ship, /hero-wait,
/hero-subagents and the /letsbeheroes charter).
- Startup tips — one rotating line under the banner: half real tips, half
personality. Errors stay strictly business.
- BENCHMARKS.md and RECOVERY.md — every performance claim with the command
that regenerates it, and the full failure/recovery story including what is deliberately
not protected.
Fixed
/model now swaps providers, not just the model string — every
pick maps to the provider that serves it, missing API keys are configured inline, Ollama gets
reachability and installed-model checks, and "✓ hot-swapped" only prints after a live
one-token probe validates the key, model, and server.
- Bare
/undo reverts the whole last agent turn — the recovery
for a partial multi-file edit. Also fixed: same-millisecond checkpoint ids collided, so fast
multi-file batches were silently losing recovery snapshots.
- Pending
/schedule and /loop workflows survive restarts —
persisted on every change, restored at the next launch with a visible notice.
- Broken settings files are diagnosed, never silently dropped — exact line
and column per unusable file,
doctor shows per-file status, and onboarding can
no longer overwrite a mistyped config.
- Malformed tagged tool calls are reprompted instead of being presented as
the final answer — one corrective retry, then an honest stop.
0.12.4 2026-07-16
Fixed
- The first-run
[y/N] consent prompt now actually waits on macOS.
Node keeps a TTY stdin non-blocking, so the prompt previously fell straight through to an
error before you could answer. It now reads from a blocking /dev/tty handle.
0.12.3 2026-07-14
Changed
- Auto-update now defaults to notify-only. New
auto_update
setting: "off", "notify" (default — daily check, startup notice,
never installs), or "install" (the previous silent behavior).
BWN_NO_AUTO_UPDATE=1 still works.
- First-run binary download requires explicit consent —
[y/N]
on a TTY, or bwn --bootstrap / BWN_ALLOW_BOOTSTRAP=1
non-interactively.
0.12.2 2026-07-14
Fixed
- Bundle analyzers build the package now — a
browser field points at a dependency-free stub entry, so tools that webpack-bundle the npm package no longer fail on Node built-ins and platform binaries.
- Publish workflow: the crates.io "already published" check now queries the registry index instead of resolving workspace crates locally.
0.12.1 2026-07-14
Changed
- Script-free npm install — the binary ships as five per-platform packages via
optionalDependencies; the main package has no install scripts, no network code, no eval. Binaries are SHA-256-verified with build provenance.
- Auto-update moved into the binary — daily background check,
BWN_NO_AUTO_UPDATE=1 opts out.
- Published to crates.io:
cargo install buildwithnexus or cargo install bwn.
- Inline image rendering: pasted screenshots and sampled video frames preview in the transcript;
.docx paths click open in Word.
0.12.0 2026-07-14
Added
- Live slash-command autocomplete with one-line descriptions;
@path and sub-argument completion; ghost commands removed.
- True multimodal input —
Ctrl+V clipboard images; ffmpeg-sampled video frames + metadata; per-model vision gating with explicit notices.
- Clickable files and links (OSC 8) — edit headers open the file in your default app.
- npm auto-update — silent daily background updates,
BWN_NO_AUTO_UPDATE=1 opts out.
- Esc interrupts; queued prompts auto-send; prefix-filtered draft-preserving history; double/triple-click selection with copy confirmation; mode-aware cursor shapes.
Changed
- GitHub-grade diffs — gutters, tinted rows, word-level emphasis; one renderer for previews and applied changes.
- Bordered composer with in-box spinner (elapsed + interrupt hint); minimal banner; grouped auto-aligned
/help; rendered markdown everywhere; honest telemetry (fabricated cost/tok-s removed).
Fixed
- Denials and failed workflows now render red; silent HTTP retries now visible; alt-screen corruption during
/resume; uncapped tool previews.
Performance
- ~215× faster streaming renders — incremental wrap cache, 60fps coalescing, atomic frames; instant startup, no black frames.
All releases on GitHub →