Install everything
curl -fsSL https://shll.ai/install | shThe script bootstraps shll (trusts + brew-installs its formula), then hands off to shll install, which trusts and installs every roster tool you’re missing. Requires Homebrew — the script exits with a pointer if it’s absent. (Only want some of the tools? See Per-tool install.)
Then wire your shell:
shll shell-setup # wire your shell integrationrun-kit agent-setup # optional, once per machine: agent state in the run-kit dashboardexec $SHELL # reload so the shell integration takes effectWhat the one-liner runs
Section titled “What the one-liner runs”The script is a few dozen auditable lines equivalent to:
brew trust --formula sahil87/tap/shll # bootstrap: trust shll's formulabrew install sahil87/tap/shll # bootstrap: install shll itselfshll install # trusts + brew-installs every roster tool you're missingThe first two lines are a one-time bootstrap: shll can’t trust its own formula before it exists, so you trust-and-install shll directly with brew. From there, shll install owns trust for the other six tools — it runs brew trust --formula sahil87/tap/<formula> before each install (drop it with --no-trust if you manage trust yourself).
That’s it. shll install is idempotent and safe to re-run: it installs only the roster tools you’re missing and does not upgrade what’s already there. To upgrade installed tools, use shll update.
Why
brew trustfirst? Homebrew 6.0 made tap-trust a hard install requirement (it defaultsHOMEBREW_REQUIRE_TAP_TRUST=1). shll’s formulae download a binary and run a sandboxed install that re-checks trust against a persisted record, so naming the formula on the CLI isn’t enough — you must trust it first. Requires Homebrew ≥ 6.0.4; on 6.0.0–6.0.3, runbrew updatefirst.
Prefer to pull everything in one shot? The all meta-formula installs every roster tool at once:
brew trust --formula sahil87/tap/all && brew install sahil87/tap/allVerify
Section titled “Verify”shll versionversion prints a paste-friendly dump of every installed tool and its version — handy for confirming the install worked and for bug reports.
Optional: run-kit agent state
Section titled “Optional: run-kit agent state”The run-kit agent-setup line above is optional and once per machine — it lights up live agent state in run-kit’s dashboard: active / waiting / idle for every pane running a coding agent. It installs agent-harness hooks into your user-global agent config (v1: Claude Code) that report each pane’s lifecycle state; until it’s run, agent state shows — in the dashboard. It shows the settings diff and asks before writing, re-running is idempotent, and run-kit agent-setup --uninstall removes exactly the run-kit-owned entries. Details in the run-kit install guide.
Per-tool install
Section titled “Per-tool install”If you only want a subset of the tools, pass their names to the one-liner (this also installs shll, which handles the trust ceremony for you):
curl -fsSL https://shll.ai/install | sh -s -- hop wtOr skip the meta-installer entirely — every tool has its own brew formula and you opt in piece by piece:
brew trust --formula sahil87/tap/idea && brew install sahil87/tap/ideabrew trust --formula sahil87/tap/fab-kit && brew install sahil87/tap/fab-kit# etc.(Each formula needs its own brew trust on Homebrew 6.0+ — the same trust shll install records for you automatically.)
Update
Section titled “Update”shll updateUpdates every installed tool to the latest tap version. To pin a specific tool, install it directly via brew instead of through shll install.
Next: head to a tool overview or learn the daily flow.