Skip to content

Installing smartpipe

macOS - Homebrew

brew install prabal-rje/tap/smartpipe

Upgrades ride brew upgrade (the tap tracks PyPI daily), and smartpipe update knows it was brew-installed.

Linux - the one-liner

curl -LsSf https://prabal-rje.github.io/smartpipe/install.sh | sh

Works on macOS too. The script uses Homebrew when you already have it; otherwise it sets up uv and runs uv tool install smartpipe-cli. Either way it ends by checking smartpipe --version, and it tells you exactly which commands it runs. To pin a version, set SMARTPIPE_VERSION first (uv installs only): SMARTPIPE_VERSION=1.5.1. Rerunning the one-liner on a machine that already has smartpipe is safe - it upgrades the existing install (Homebrew or uv) instead of failing.

Windows - PowerShell

powershell -ExecutionPolicy Bypass -c "irm https://prabal-rje.github.io/smartpipe/install.ps1 | iex"

Prefer to read before you pipe to a shell? The scripts are short: install.sh · install.ps1.

Or use your own package manager

smartpipe is a Python package; it needs Python 3.11 or newer (not sure? run python3 --version). Pick whichever tool you already use:

uv tool install smartpipe-cli           # uv
pipx install smartpipe-cli              # pipx - isolated, available everywhere
pip install smartpipe-cli               # plain pip
uv add smartpipe-cli                    # inside a uv project

PyPI package: smartpipe-cli. The command you type is smartpipe:

smartpipe --version

Staying current

smartpipe update upgrades in place - it detects how smartpipe was installed (Homebrew, uv, pipx, or pip), shows the exact upgrade command, and asks before running it (--yes skips the prompt).

smartpipe also checks PyPI for a newer release at most once a day (in the background, never delaying your command) and prints one stderr note when a stable release is ahead of yours. It stays quiet in pipes, in CI, and after either kill switch: SMARTPIPE_NO_UPDATE_CHECK=1 for one environment, or smartpipe config update-check off to persist the preference.

Everything ships in the box

One install gives you everything smartpipe supports - documents (PDF, DOCX, PPTX, XLSX, HTML, EPUB), video (a static ffmpeg is bundled), charts with --save, Claude models, local Whisper transcription, and local embeddings. There are no optional extras at all - one name installs everything. (If an old guide tells you pip install 'smartpipe-cli[something]', pip will warn about the unknown extra and install the same complete package anyway.)

Two local models download once on first use and cache on disk: whisper (~75 MB) and the local embedder (~130 MB). Every download is announced.

Supported pythons: 3.11-3.13 for the complete box. On Python 3.14, three components (documents, whisper, local embeddings) wait on upstream wheels (onnxruntime, av) - the install works and everything else runs; those paths degrade with clear messages (doctor shows exactly what's waiting), and embeddings fall back to Ollama's nomic model. Python 3.11-3.13 has the complete box today.

Tab completion

The smartpipe use wizard offers to set this up for you; the manual per-shell lines live in troubleshooting.

Next

You have smartpipe; now it needs a model to talk to. The quickstart walks you through that in a minute - a ChatGPT login, a cloud API key, or a free local model.

Nothing to try it on? smartpipe demo downloads 26 MB of practice files - invoices, reports, photos, recordings, screen sessions, JSONL - into ./smartpipe-playground and prints commands to run on them (no model needed for the download, and the first suggestions are free verbs).