banish.sh

Stop burning tokens in Claude Code, Cursor, and MCP agents.

banish compacts shell output before it reaches Claude Code, Cursor, or any MCP agent - 30 to 90 percent fewer tokens on git, npm, cargo, and kubectl.

$curl -fsSL https://banish.sh/install.sh | bash
~ banish v0.6.0
$ banish git status
raw : 176 tokens ####################
banish: 12 tokens ## saved 164 tokens (93%)
git status: 176 -> 12 tokens. 93% banished.

Try it

raw output176 tokens
On branch main
Your branch is up to date.

Changes not staged:
  modified: gain.go
  modified: fallback.go
via banish12 tokens, 93%
main
  modified: gain.go
  modified: fallback.go

Real output, real token counts. Pick a command.

WORKS WITH
Claude CodeCursorAny MCP agent

Measured savings on commands you already run.

Real token counts, not estimates. Run banish gain to verify your own.

git status (clean)
40 tokens
3 tokens, 93 percent
git status (dirty)
176 tokens
67 tokens, 62 percent
git diff --stat
127 tokens
2 tokens, 98 percent
ls -la (14 entries)
245 tokens
29 tokens, 88 percent
npm install
200 tokens
5 tokens, 98 percent
cargo build (ok)
150 tokens
4 tokens, 97 percent

See the benchmarks/See the methodology

Three parts, one binary.

A proxy for bash

A PreToolUse hook rewrites git status to banish git status. banish runs the real command, pipes output through a matching filter, and returns compact text. If a filter fails, you get raw output. It never swallows data.

$ banish git status
-> filter: git -> 12 tokens
How the bash proxy works

An MCP server

banish serve exposes tools over stdio. Every verb in your extensions becomes an MCP tool automatically. With the defaults, agents get 45-plus tools out of the box: banish_gs, banish_dps, banish_kpods, and more.

$ banish serve
45 tools over stdio
Reduce MCP token usage

A scripting runtime

The .bsh language lets you define verbs, filters, and pipelines in one file. No recompile. Run inline, run a script, or check a manifest. Extend banish with a shell one-liner.

!verb kpods
!expand exec kubectl get pods
Write a filter in ten lines

Do not take our word for it.

banish tracks every token it saves. Run one command to see your own cumulative savings.

zsh
$ banish gain Tokens saved: 1,284,602 Commands routed: 3,418 Avg compaction: 71 percent Est. cost saved: $14.30

Your number, measured on your machine.

Extend it in one file.

No Rust, no Go, no recompile. Drop a .bsh file in ~/.banish/ext and your verb becomes an MCP tool.

~/.banish/ext/mytools.bsh
# ~/.banish/ext/mytools.bsh
!extension mytools v:1.0
 
!verb kpods
!args ns
!expand exec kubectl get pods -n {ns} -o wide
!help "List pods in namespace"
 
!filter docker-build
!match docker build
!compact "grep -v '^Sending build' | grep -v '^---> ' | tail -20"

Quick start.

1

Install

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

Installs to /usr/local/bin. Works on Intel and Apple Silicon.

2

Set up your agent

$banish init claude-code
3

Watch savings

$banish gain

For Cursor, run banish init cursor. For any MCP agent, run banish init mcp.

New here? Follow the quick start, then set up your agent.