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
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| psa_cli-26.1.tar.gz | 16.4 kB | Without provenance | Details for psa_cli-26.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| psa_cli-26.1-py3-none-any.whl | Python 3 | none | any | Details for psa_cli-26.1-py3-none-any.whl |
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
|
Security for psa-cli 26.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.