banish.shdocs
HomeGitHub
Changelog / Changelog
View as Markdown

Changelog

Every banish release and what it changed, newest first. banish compacts shell output before it reaches Claude Code, Cursor, or any MCP agent, so each release is about cutting more tokens from more commands. Install or upgrade with:

curl -fsSL https://banish.sh/install.sh | bash

New here? Start with the quickstart, see the benchmarks and the methodology behind them, browse every command, or read the guides on reducing MCP token usage and Claude Code usage limits.

v0.6.0 - 2026-07-12

Compaction you can audit, verify, and reverse. Every dropped line is now accounted for, and the original output of any recent command is one command away.

  • New audit footer: when a filter drops lines from a large output, the compact result ends with a machine-readable footer listing exactly how many lines each filter stage removed - and the recover command for getting them back. Small outputs stay footer-free.
  • New banish raw <hash>: print the original stdout and stderr of a recent command byte for byte, from a local cache (user-only permissions, 1 hour TTL, 50 MB cap, banish raw --clear, disable with {"cache": {"raw": false}}). No re-running commands to see a dropped detail.
  • New banish_raw MCP tool: the same recovery pathway for agents that call tools instead of shelling out.
  • New trace mode for filter authors: BANISH_TRACE=1 annotates every dropped run inline instead of removing it silently, so a new .bsh filter is easy to verify.
  • Accurate token counting, opt-in: set {"tokenizer": "anthropic"} in ~/.banish/config.json to measure benchmark savings with real token counts instead of the char-based estimate.
  • Shell completions for bash, zsh, and fish via banish completion.
  • Beta and rc release channels: banish upgrade --channel beta opts in to prereleases; stable users never see them.

v0.5.0 - 2026-07-11

Self-update and a smoother install. banish can now update and remove itself, and a fresh install no longer needs a password on a typical machine.

  • New banish upgrade: download the latest release, verify its checksum, and replace the running binary in place. banish upgrade --check reports whether a newer release exists without installing it.
  • New banish uninstall: remove the binary, with --purge to also delete ~/.banish (extensions, cache, and savings data).
  • A one-line update notice when a newer release is out. It only appears on an interactive terminal, never in agent, hook, or CI output; silence it with BANISH_NO_UPDATE_CHECK=1.
  • The install script now installs to a user-writable directory when /usr/local/bin is not writable, so curl -fsSL https://banish.sh/install.sh | bash no longer prompts for a password on a typical macOS setup.

v0.4.0 - 2026-07-10

Cloud CLIs join the party. banish now compacts the verbose output of the three major cloud CLIs before it reaches Claude Code, Cursor, or any MCP agent.

  • Comprehensive AWS pack: 186 rewrites plus a generic JSON renderer, with measured savings of 53 to 95 percent across common aws commands.
  • Comprehensive Azure pack: 106 az rewrites plus the JSON renderer, 61 to 91 percent saved.
  • Comprehensive Google Cloud pack: 96 gcloud rewrites plus the JSON renderer, 63 to 89 percent saved.
  • New AWS, Azure, and Google Cloud benchmark fixtures so every cloud savings figure is reproducible.
  • CI hardening: Go bumped to 1.26.5 to pick up an upstream security fix.

See the full list in the built-in filters reference.

v0.3.1 - 2026-07-07

Security patch for the MCP server. Recommended for anyone running banish serve.

  • Extension verb arguments are shell-escaped before they run, closing a command-injection vector where a crafted MCP argument could execute arbitrary shell commands.
  • Tool arguments (positional and modifier) are encoded with the interpreter's exact escape set, so a URL or a value with control bytes survives intact.
  • Command detection is quote-aware: a quoted target containing a dash is no longer mistaken for a shell flag.
  • echo and other builtins return the raw argument value instead of a re-quoted form.

v0.3.0 - 2026-07-07

Smarter renderers and broader coverage - more of the output an agent reads every day now shrinks before it enters the context window.

  • JSON-preferring renderers for kubectl and gh: banish requests structured output and returns a compact form, so MCP tool output stops eating your context window.
  • Lockfile-aware git diff renderer: package-lock.json, yarn.lock, Cargo.lock, and go.sum collapse to the dependencies that actually changed.
  • New banish bench subcommand and a fixture corpus, so every savings figure on this site is reproducible.
  • New filter packs: dotnet, JavaScript test/lint runners, make/cmake/ninja, and the GitHub gh CLI.
  • banish --version and -v work as flags, not just the version subcommand.
  • Manifest discovery skips a directory named BANISH instead of erroring on every command.

v0.2.0 - 2026-07-04

The compaction rewrite - the core of how banish reduces Claude Code token usage.

  • New rewrite/render/cap compaction pipeline, with the built-in defaults shipped as embedded .bsh.
  • Shell commands run verbatim; the .bsh grammar applies only to registered verbs, so your commands are never reinterpreted.
  • OS-aware shell selection so banish works on Windows.
  • Honest token-savings accounting in banish gain.

v0.1.0 - 2026-06-16

First public release - three tools in one binary for LLM coding agents.

  • The bash proxy: run a command through banish and get compact output back.
  • The MCP server (banish serve), exposing verbs as tools over stdio.
  • The .bsh language for defining verbs and output filters without a recompile.
  • Token-savings tracking and core filters for git, docker, kubectl, npm, cargo, and more.
banish changelog - release notes for the token-reduction CLI - banish