macOS
curl -fsSL https://raw.githubusercontent.com/panicless/squeezy/main/install.sh | sh Or Homebrew: brew install panicless/tap/squeezy
squeezy doctor checks this machine · settings, providers, storage, sandbox
how do I get squeezy running?
curl -fsSL https://raw.githubusercontent.com/panicless/squeezy/main/install.sh | sh Or Homebrew: brew install panicless/tap/squeezy
curl -fsSL https://raw.githubusercontent.com/panicless/squeezy/main/install.sh | sh Static binaries, so there is no system library version to match. On ARM64, the installer works when the release includes its optional native archive. Homebrew works here too, on x86_64 only: brew install panicless/tap/squeezy
winget install panicless.Squeezy Or download the matching Windows zip and checksum; ARM64 is available when the release includes its optional native asset. Its install.ps1 verifies and installs all four executables and adds their directory to your PATH.
On macOS and Linux the installer works out your platform, checks the
download against its published SHA-256, runs the new binary once before
it replaces anything, and installs into $HOME/.local/bin
unless you set SQUEEZY_INSTALL_DIR. If that directory is not
on your PATH, it prints the line to add.
With a Rust toolchain you can build it yourself instead:
cargo install --git https://github.com/panicless/squeezy squeezy squeezy-browser-bridge --locked --profile release-install, which needs Rust 1.96.0 or newer. On Windows
this builds only squeezy.exe. The release archive also ships
two helper executables the shell sandbox needs, so a Cargo-installed
Windows build enforces less than a released one.
Run squeezy inside your repository. The first start asks
four things: theme and background, which provider to use, which of
that provider's models, and how much reasoning effort to spend. It
adds a fifth step for a key, or a sign-in, when the provider you
picked still needs one. The answers are saved, so setup runs once.
squeezy doctor prints a row per check across your
settings, provider credentials, what squeezy has worked out about
this repository, local storage, and the shell sandbox. A missing
optional key is a warning, not a failure: only a hard failure gives
it a non-zero exit, which is what makes it usable as a post-install
gate in a script.
To put a key in place before that,
squeezy auth set <provider> asks for it at a prompt
and stores it in your protected User credential store. Add
--local to keep it with this checkout instead. The key
stays off the command line and out of shell history.
squeezy providers list lists every provider you can
point at, and marks which of them squeezy already finds a key for.
cd path/to/your-repo
squeezy doctor
squeezy Point squeezy at the provider you already use: a vendor API (OpenAI, Anthropic, Google Gemini API), an aggregator that gives you one key for many models (OpenRouter, Vercel AI Gateway, PortKey, Cloudflare AI Gateway), your own cloud account (AWS Bedrock, Azure OpenAI, Google Vertex AI), a model running on your machine (Ollama, LM Studio, vLLM, llama.cpp), or any OpenAI-compatible endpoint. A ChatGPT or GitHub Copilot subscription signs in instead of billing a key. Provider docs.
squeezy help reads a guide out of the docs built into the binary: nothing is fetched and no model is called. Run it with no topic for the index. Inside a session, /help answers that same index, any slash command, and any listed topic locally. A question in your own words is the one case that goes to your model.
/report creates a local diagnostic ZIP through a guided review. Use squeezy report --startup when a Session cannot open. Share the archive privately with the developer support team using the appropriate channel. Nothing is uploaded. Use /feedback for suggestions and comments.