/installers / more

More installers

The same two scripts, with the knobs showing. Nothing here is required; the one-liners on /installers do the usual thing.

No bash?

install.sh is plain POSIX sh, so any sh runs it (dash, ash, busybox). With wget instead of curl:

curl, sh

curl -fsSL https://askphysics.vercel.app/install.sh | sh

wget, bash

wget -qO- https://askphysics.vercel.app/install.sh | bash

wget, sh

wget -qO- https://askphysics.vercel.app/install.sh | sh

The old paths, /installers/install.sh and /installers/install.ps1, serve the same files.

Pin a version, branch or commit

ASKPHYSICS_REF takes a git tag, branch or commit. The default is the latest release (or main when there is none). Put the variable on the right of the pipe, where the shell that runs the script sees it.

bash, a tag

curl -fsSL https://askphysics.vercel.app/install.sh | ASKPHYSICS_REF=v0.4.0 bash

bash, a branch

curl -fsSL https://askphysics.vercel.app/install.sh | ASKPHYSICS_REF=main bash

bash, a commit

curl -fsSL https://askphysics.vercel.app/install.sh | ASKPHYSICS_REF=0123abc bash

PowerShell, a tag

$env:ASKPHYSICS_REF = "v0.4.0"; irm https://askphysics.vercel.app/install.ps1 | iex

PowerShell, a branch

$env:ASKPHYSICS_REF = "main"; irm https://askphysics.vercel.app/install.ps1 | iex

PowerShell, a commit

$env:ASKPHYSICS_REF = "0123abc"; irm https://askphysics.vercel.app/install.ps1 | iex

Replace 0123abc with a real commit. Tags are listed below.

Environment variables

VariableRead byDoes
ASKPHYSICS_REFinstall.sh, install.ps1Git tag, branch or commit to install. Default: the latest release.
ASKPHYSICS_SOURCEinstall.sh, install.ps1Install from this local path or URL instead of GitHub. Overrides ASKPHYSICS_REF.
ASKPHYSICS_SKIP_MODELSinstall.sh, install.ps1Set to 1 to skip downloading the Fermi models at install.
ASKPHYSICS_AUTO_PULLaskphysicsSet to 0 so the command never downloads models by itself. It then answers with the models already installed, or without them.
ASKPHYSICS_MODEL_DIRaskphysicsWhere models live and are downloaded to. Default: ~/.cache/askphysics/models.

Install from a local checkout, without models (bash)

ASKPHYSICS_SOURCE=. ASKPHYSICS_SKIP_MODELS=1 sh install.sh

Install from a local checkout, without models (PowerShell)

$env:ASKPHYSICS_SOURCE = "."; $env:ASKPHYSICS_SKIP_MODELS = "1"; .\install.ps1

Models somewhere else, never auto-downloaded (bash)

ASKPHYSICS_MODEL_DIR=/data/models ASKPHYSICS_AUTO_PULL=0 askphysics ask "..."

Uninstall

Use the command for the channel you installed with.

curl, irm or source (uv)

uv tool uninstall askphysics

Homebrew

brew uninstall askphysics

WinGet

winget uninstall ShankarS.AskPhysics

Downloaded models stay in ~/.cache/askphysics/models (or ASKPHYSICS_MODEL_DIR); delete that folder to reclaim the space.

Install from source

For hacking on it. Python 3.11 or newer.

git clone https://github.com/shankar-sachin/ask-physics.git
cd ask-physics
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
askphysics --help

Contributing? CONTRIBUTING.md has the checks to run.

Verify a download

Each Windows installer in the table below has a .sha256 file next to it. Compare its hash with the file you downloaded (PowerShell).

Get-FileHash .\AskPhysicsSetup.exe -Algorithm SHA256
Get-Content .\AskPhysicsSetup.exe.sha256

The two hashes should match (case aside). The scripts themselves are short: read install.sh before you pipe it.

All versions and their installers

Every GitHub release, newest first, read live from the GitHub API. Open a row's Install for the commands that pin that exact version.

Loading releases from GitHub...