uv-installable wrapper for the vercel-labs/skills CLI with an embedded Node runtime
Project description
npx-skills
npx-skills is a uv-installable Python wrapper around the upstream
skills CLI. It ships a vendored Node
runtime and the published JavaScript CLI payload, then forwards execution to the
embedded runtime so users do not need a separate Node install.
Install
uv tool install .
skills --help
The package installs the same command names as the npm package:
skillsadd-skill
Refresh Vendored Artifacts
The repository includes a vendoring script that copies:
- the published
skillspackage payload (bin,dist,package.json, docs) - the package's runtime
node_modulesdependencies - the current platform's
nodebinary
By default it will use a built package root if you pass --source, or fall
back to the newest cached ~/.npm/_npx/*/node_modules/skills install.
uv run python scripts/vendor_upstream.py
Or point it at a specific built package root:
uv run python scripts/vendor_upstream.py --source /path/to/node_modules/skills
If you point --source at the upstream git repo, it must already contain
dist/cli.mjs.
To rebuild only the embedded Node runtime from the payload already committed in
this repo, point --source at the vendored package root:
uv run python scripts/vendor_upstream.py --source src/npx_skills/vendor/skills
Build
The wheel is intentionally platform-specific because it includes a native node
binary.
uv build
Release Automation
GitHub Actions builds one wheel per native runner target:
- Linux
x64viamanylinux_2_28 - Linux
arm64viamanylinux_2_28 - macOS
x64 - macOS
arm64 - Windows
x64 - Windows
arm64
The workflow lives at .github/workflows/wheels.yml.
It reuses the committed skills payload, re-vendors the Node runtime for the
current runner architecture, runs the test suite, builds wheels with uv
(cibuildwheel via uvx on Linux), smoke-tests the built wheel, and uploads
wheel artifacts for manual release use.
This project intentionally publishes wheels only. An sdist would not be portable without re-vendoring the embedded Node runtime for the target platform.
Publishing runs through a separate manual workflow at
.github/workflows/publish.yml. It invokes the
wheel builder in the same workflow run, then publishes from GitHub after all
target wheels succeed. The intended entrypoint is the npx-skills-dev helper:
uv run --package npx-skills-dev npx-skills-dev publish-to-pypi
Or via make:
make publish
Use --ref <branch> to dispatch the workflow from a specific branch and
--dry-run to build and validate without publishing.
The GitHub publish job is designed for PyPI trusted publishing. Configure the
npx-skills project with a trusted
publisher for the publish.yml workflow, and optionally gate the pypi
environment with required reviewers.
Layout
The vendored runtime is kept under src/npx_skills/vendor/:
vendor/
manifest.json
node/<platform>/node
skills/
package.json
bin/cli.mjs
dist/
node_modules/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 npx_skills-1.4.8-py3-none-win_arm64.whl.
File metadata
- Download URL: npx_skills-1.4.8-py3-none-win_arm64.whl
- Upload date:
- Size: 30.1 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e52afe6ab86037b35673f01cc5983391b4716d7c6ba1ad2a8a789a76ecb9adfd
|
|
| MD5 |
87cb4093d2c3734f7a16577fae634ee6
|
|
| BLAKE2b-256 |
98963c5c0297e69948330feabe366cd43f880b1494cb95723cba5c3f747ffc26
|
File details
Details for the file npx_skills-1.4.8-py3-none-win_amd64.whl.
File metadata
- Download URL: npx_skills-1.4.8-py3-none-win_amd64.whl
- Upload date:
- Size: 33.7 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba003732e8db28efdb9be7c18c1e8bcb9f4c482bda2a96c14f2999d2d4d16427
|
|
| MD5 |
b9545ca5885f4d9a97e2fcaf4bf1c2a3
|
|
| BLAKE2b-256 |
003fb1d4e4d447895a60369315a7f51b5ab7ae5cf6d10a2862c24a5d07c09890
|
File details
Details for the file npx_skills-1.4.8-py3-none-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: npx_skills-1.4.8-py3-none-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 45.5 MB
- Tags: Python 3, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a935ae268dda31583aeb736f929d39f2558ffe951450a71e92148a12c8fe4704
|
|
| MD5 |
d12a73d99ea85ce0312284b4f19ff56e
|
|
| BLAKE2b-256 |
115988b763781a6e0681ec2d41986336ae82ffd73a3532831a8c8d2d2ef9b16d
|
File details
Details for the file npx_skills-1.4.8-py3-none-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: npx_skills-1.4.8-py3-none-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 44.7 MB
- Tags: Python 3, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3aa8c1b256d3f46959c472a12ac4f412db5c714a203e9f7c673cf04a339660a
|
|
| MD5 |
a54ab83f86da07fa23dba03a9ba8d83c
|
|
| BLAKE2b-256 |
61ac0ba571e90ccd0684fbe53970e694c64c7df64a5be25e383eb3fbf7215890
|
File details
Details for the file npx_skills-1.4.8-py3-none-macosx_15_0_arm64.whl.
File metadata
- Download URL: npx_skills-1.4.8-py3-none-macosx_15_0_arm64.whl
- Upload date:
- Size: 37.3 MB
- Tags: Python 3, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fde0a700bb12de63c44191c04af952bbe7335793730c5698effd307d21799b0
|
|
| MD5 |
34465927431b45b5902fef4b92b46b93
|
|
| BLAKE2b-256 |
a2cfd57b552044fcf9802fc237a4c4425e8cea74e101414080f23e10e5ce0510
|
File details
Details for the file npx_skills-1.4.8-py3-none-macosx_10_13_universal2.whl.
File metadata
- Download URL: npx_skills-1.4.8-py3-none-macosx_10_13_universal2.whl
- Upload date:
- Size: 39.0 MB
- Tags: Python 3, macOS 10.13+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b12a27cef4eb23cd9b9a770c0a15c6c1292bfc8cfa39e84b0f3b0ba90550e453
|
|
| MD5 |
54229f8f032892083863c6c20eb4e7bb
|
|
| BLAKE2b-256 |
e52c4fcbdcd51ea3c2bb915349520b135aad6f05650191696142e140fd3749d1
|