Skip to main content

scriptx

PyPI - Version PyPI - Python Version pre-commit.ci status

A lightweight manager for PEP 723 Python scripts — install, run, update, and manage standalone scripts with isolated environments.


Table of Contents

Installation

pipx install scriptx
uv tool install scriptx

Usage

[flavio@mac ~/dev/github.com/FlavioAmurrioCS/scriptx]
$ scriptx --help
usage: scriptx [-h] [-v] [-V] {install,reinstall,upgrade,uninstall,list,run,edit,registry-add,registry-remove,registry-list,registry-update} ...

ScriptX v2 - A tool management system.

positional arguments:
  {install,reinstall,upgrade,uninstall,list,run,edit,registry-add,registry-remove,registry-list,registry-update}
    install             Install a tool from a URL or file path.
    reinstall           Reinstall a previously installed tool.
    upgrade             Upgrade an installed tool to the latest version.
    uninstall           Uninstall a previously installed tool.
    list                List all installed tools.
    run                 Run a specified tool with optional arguments.
    edit                Open script in editor.
    registry-add        Add a new registry.
    registry-remove     Remove a specified registry.
    registry-list       List all registries.
    registry-update     Update specified registries or all if none specified.

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         Increase verbosity level.
  -V, --version         show program's version number and exit

Environment variables:
  SCRIPTX_HOME  - Directory where ScriptX stores its data (default: ~/opt/scriptx)
  SCRIPTX_BIN   - Directory where ScriptX stores executable tools (default: ~/opt/scriptx/bin)

Add the following to your shell profile to include ScriptX tools in your PATH:
  export PATH="${HOME}/opt/scriptx/bin:${PATH}"

Install a tool

Tool will:

  • Download the publicly avaiable url(in this case a github page url) or a file on disk.
  • Create a virtualenv for the script based on the inline script metadata.
  • It will copy the script into the ~/opt/scriptx/bin directory.
  • Update the #! shebang of the script to allow for faster execution.
  • NOTE: You can pass in a alternative name for the script, by default it will use the basename of the SRC.
[flavio@mac ~/dev/github.com/FlavioAmurrioCS/scriptx]
$ scriptx install --help
usage: scriptx install [-h] [--name NAME] [--link {symlink,copy,hardlink}] url_or_path

Install a tool from a URL or file path.

positional arguments:
  url_or_path           URL or file path of the tool to install.

optional arguments:
  -h, --help            show this help message and exit
  --name NAME           Optional name for the tool. If not provided, it will be derived from the URL or file path.
  --link {symlink,copy,hardlink}
                        Method to link the tool in the inventory when is a local file (default: copy).

Example:
  scriptx install ./file.py
  scriptx install https://example.com/tools/mytool.py
  scriptx install https://example.com/tools/mytool.py --name toolname

[flavio@mac ~/dev/github.com/FlavioAmurrioCS/scriptx]
$ scriptx install https://flavioamurriocs.github.io/uv-to-pipfile/src/uv_to_pipfile/uv_to_pipfile.py
Tool 'uv_to_pipfile' installed successfully in /Users/flavio/opt/scriptx/bin/uv_to_pipfile.
Warning: /Users/flavio/opt/scriptx/bin is not in your PATH. ie (export PATH="${HOME}/opt/scriptx/bin:${PATH}")

[flavio@mac ~/dev/github.com/FlavioAmurrioCS/scriptx]
$ head -n2 /Users/flavio/opt/scriptx/bin/uv_to_pipfile
#!/Users/flavio/opt/scriptx/installed_tools/uv_to_pipfile/venv/bin/python
# /// script

Display installed scripts

[flavio@mac ~/dev/github.com/FlavioAmurrioCS/scriptx]
$ scriptx list
{
  "uv_to_pipfile": {
    "source": "https://flavioamurriocs.github.io/uv-to-pipfile/src/uv_to_pipfile/uv_to_pipfile.py",
    "venv": "/Users/flavio/opt/scriptx/installed_tools/uv_to_pipfile/venv",
    "path": "/Users/flavio/opt/scriptx/installed_tools/uv_to_pipfile/script.py"
  }
}

Execute the script via the tool

[flavio@mac ~/dev/github.com/FlavioAmurrioCS/scriptx]
$ scriptx run uv_to_pipfile --help
usage: script.py [-h] [--uv-lock UV_LOCK] [--pipfile-lock PIPFILE_LOCK]

Convert uv.lock to Pipfile.lock

optional arguments:
  -h, --help            show this help message and exit
  --uv-lock UV_LOCK     Path to the uv.lock file (default: ./uv.lock)
  --pipfile-lock PIPFILE_LOCK
                        Path to the Pipfile.lock file (default: ./Pipfile.lock)

Execute script directly

NOTE: You must update your PATH

[flavio@Mac ~/dev/github.com/FlavioAmurrioCS/scriptx]
$ export PATH="${HOME}/opt/scriptx/bin:${PATH}"

[flavio@Mac ~/dev/github.com/FlavioAmurrioCS/scriptx]
$ uv_to_pipfile --help
usage: uv_to_pipfile [-h] [--uv-lock UV_LOCK] [--pipfile-lock PIPFILE_LOCK]

Convert uv.lock to Pipfile.lock

options:
  -h, --help            show this help message and exit
  --uv-lock UV_LOCK     Path to the uv.lock file (default: ./uv.lock)
  --pipfile-lock PIPFILE_LOCK
                        Path to the Pipfile.lock file (default: ./Pipfile.lock)

License

scriptx is distributed under the terms of the MIT license.

Metadata

Release files for scriptx 0.1.6

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

Source distribution (sdist)

Source distribution for scriptx 0.1.6
File Size Uploaded
scriptx-0.1.6.tar.gz 23.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scriptx 0.1.6
File Interpreter ABI Platform
scriptx-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 40.0 kB

Release files / scriptx-0.1.6.tar.gz

Download URL scriptx-0.1.6.tar.gz
Size 23.6 kB
Tags Source
SHA-256 checksum
How to use checksums
eb43a320a1727531d56806a28faedc0a271d1b85274cc235da1eb4bbfb7d573b
BLAKE2b-256 checksum
How to use checksums
3b993f773c992f61f1cf5f50834697e8f8659b1de91dc2a125bc8ce7e4074e69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 12, 2025.

Transparency log

Release files / scriptx-0.1.6-py3-none-any.whl

Download URL scriptx-0.1.6-py3-none-any.whl
Size 16.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bfaf74f69a0fdedd81749c86341ea4469c5ba935470ab6fd75ca7b9fa21f5eae
BLAKE2b-256 checksum
How to use checksums
0adf61837bc435c3327328aeea9dcad9600505a5af7208132b9ff4463a632bfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 12, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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