Skip to main content

psa — Python Standalone Manager

Pure-Python CLI to list, download, and extract astral-sh/python-build-standalone prebuilt Python distributions.

psa's job is to bootstrap Python on a system. Projects then create their venvs with the interpreter they need (--python=python3.13); psa deliberately has no project-management features.

Supported platforms:

  • macOS Apple Silicon (aarch64-apple-darwin)
  • Linux x86_64 glibc (x86_64-unknown-linux-gnu)

It focuses on the install_only / install_only_stripped archives, and has no mandatory dependencies beyond the standard library.

Quick start

pip install psa-cli                       # package is psa-cli; command is psa
psa install 3.13                          # newest 3.13.x: download, extract, link
echo 'eval "$(psa shellenv)"' >> ~/.zshrc # put ~/.python/bin on PATH
python3.13 -m venv .venv                  # projects take it from there

psa install maintains symlinks in ~/.python/bin: python3.X per installed minor (newest patch wins), and python3 pointing at the highest minor — or a pinned one via psa link --set-default 3.12.

Or without installing:

python -m psa install 3.13

Optional extra for in-Python extraction of .tar.zstd without a zstd-capable system tar:

pip install "psa-cli[extract]"

Layout

Base directory defaults to ~/.python (override with --base-dir):

~/.python/
  downloads/            # raw downloaded archives
  versions/<version>/   # extracted trees
  bin/                  # managed symlinks (python3, python3.X)
  config.toml           # optional settings (default = "3.X")

Documentation

Full command reference lives in docs/ (Sphinx):

pip install -e ".[docs]"
sphinx-build -M html docs docs/_build

Project structure

src/psa/
  cli.py        # argparse commands
  releases.py   # remote: release metadata, asset parsing, downloads
  store.py      # local: extraction, installed versions, symlinks, config
tests/          # pytest suite (offline pieces: parsing, selection, linking)
docs/           # Sphinx documentation
notes/          # design notes and history

Tests

python -m pytest

License

MIT

Release files for psa-cli 26.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psa-cli 26.1
File Size Uploaded
psa_cli-26.1.tar.gz 16.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for psa-cli 26.1
File Interpreter ABI Platform
psa_cli-26.1-py3-none-any.whl Python 3 none any Details

Total release size: 28.3 kB

Release files / psa_cli-26.1.tar.gz

Download URL psa_cli-26.1.tar.gz
Size 16.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e9d2a07199abea1f93677cf98c83bc2b22e700e413cf1ea3280a9b89f02b8cf9
BLAKE2b-256 checksum
How to use checksums
7439d6a2830322131d12252c18df2ccac0c0f551ce07a5b1af7aee81af937331
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.5

Release files / psa_cli-26.1-py3-none-any.whl

Download URL psa_cli-26.1-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03362a91d84f61c716f9cbbc208b08bd4de8796f6197e914b5d0abf4488911c4
BLAKE2b-256 checksum
How to use checksums
bafddeb1b2b2d180609f4baf3443eba6cde9ded400a4928a1ae27c92cef585c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.5

Release history Release notifications | RSS feed

This release

26.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page