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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file psa_cli-26.1.tar.gz.
File metadata
- Download URL: psa_cli-26.1.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9d2a07199abea1f93677cf98c83bc2b22e700e413cf1ea3280a9b89f02b8cf9
|
|
| MD5 |
939260733b75d9b3c131b2f247c826a6
|
|
| BLAKE2b-256 |
7439d6a2830322131d12252c18df2ccac0c0f551ce07a5b1af7aee81af937331
|
File details
Details for the file psa_cli-26.1-py3-none-any.whl.
File metadata
- Download URL: psa_cli-26.1-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03362a91d84f61c716f9cbbc208b08bd4de8796f6197e914b5d0abf4488911c4
|
|
| MD5 |
460db2fa38b60328ead004f2c30beb47
|
|
| BLAKE2b-256 |
bafddeb1b2b2d180609f4baf3443eba6cde9ded400a4928a1ae27c92cef585c9
|