# Changelog


# Changelog

Every [banish](/docs/getting-started/install) 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:

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

New here? Start with the [quickstart](/docs/getting-started/quickstart), see the
[benchmarks](/docs/reference/benchmarks) and the
[methodology](/docs/reference/methodology) behind them, browse
[every command](/docs/reference/cli-commands), or read the guides on
[reducing MCP token usage](/docs/guides/reduce-mcp-token-usage) and
[Claude Code usage limits](/docs/guides/claude-code-usage-limits).

## 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](/docs/getting-started/install) 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](/docs/reference/methodology)
  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](/docs/reference/built-in-filters)
reference.

## v0.3.1 - 2026-07-07

Security patch for the [MCP server](/docs/concepts/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](/docs/reference/cli-commands) return the raw
  argument value instead of a re-quoted form.

## v0.3.0 - 2026-07-07

Smarter [renderers](/docs/reference/built-in-filters) 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](/docs/concepts/mcp-server).
- 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](/docs/reference/methodology).
- New [filter packs](/docs/reference/built-in-filters): 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](/docs/concepts/bash-proxy).

- New rewrite/render/cap [compaction pipeline](/docs/concepts/bash-proxy), with
  the built-in defaults shipped as embedded [.bsh](/docs/concepts/bsh-language).
- 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](/docs/reference/features) in `banish gain`.

## v0.1.0 - 2026-06-16

First public release - three tools in one binary for
[LLM coding agents](/docs/getting-started/set-up-an-agent).

- The [bash proxy](/docs/concepts/bash-proxy): run a command through banish and
  get compact output back.
- The [MCP server](/docs/concepts/mcp-server) (`banish serve`), exposing verbs as
  tools over stdio.
- The [.bsh language](/docs/concepts/bsh-language) for defining verbs and output
  filters without a recompile.
- Token-savings tracking and [core filters](/docs/reference/built-in-filters) for
  git, docker, kubectl, npm, cargo, and more.
