Skip to main content

virtualshell

PyPI version Python versions OS License Build

High-performance PowerShell automation for Python. Run PowerShell commands with millisecond latency, persistent sessions, async execution, and a cross-platform zero-copy bridge — without juggling subprocesses.

Full documentation lives in the wiki. This README covers what the library is, why it matters, and how to get started.

What is virtualshell?

virtualshell keeps one PowerShell host warm behind a thin Python wrapper powered by a C++ engine. Instead of spawning pwsh for every command, you get:

  • a persistent PowerShell session
  • ~2–4 ms execution latency
  • async and batch execution
  • structured, predictable results
  • optional zero-copy shared memory transfers (cross-platform)
  • live object proxies with generated type stubs

Typical use cases include Python orchestration layers, long-running agents, CI/test harnesses, and automation tooling that must be fast and reliable.

Why use it?

  • Persistent session — reuse loaded modules, $env:*, functions, and global state across calls.
  • Low latency — avoid the ~200 ms cost of subprocess.run("pwsh") per command.
  • Async and batching — schedule concurrent commands with timeouts and callbacks.
  • Structured results — every call returns stdout, stderr, exit code, timing, and success state.
  • Predictable failures — typed Python exceptions for timeouts, missing PowerShell, and execution errors.
  • Type-safe automation — generate Python Protocol stubs from PowerShell objects and control them through live proxies.

Requirements

  • Python 3.11 – 3.14
  • PowerShell 7 (pwsh) on PATH, or Windows PowerShell 5.1 on Windows. By default the backend prefers pwsh and falls back to Windows PowerShell; see PowerShell editions to pin one, or pass powershell_path to use a specific executable.

Installation

Pre-built wheels are published for Windows (x64), Linux (x86_64 / aarch64), and macOS (universal2):

pip install virtualshell

No compiler or build tools are required when installing wheels.

Building from source (optional)

Building locally requires CMake and a C++17 compiler. On Windows, install Visual Studio Build Tools with the Desktop development with C++ workload and run the build from an x64 Native Tools Command Prompt (64-bit only).

pip install virtualshell --no-binary virtualshell

Or directly from GitHub:

pip install "git+https://github.com/Chamoswor/virtualshell"

Verify the installation:

python -c "import virtualshell; print('virtualshell OK')"

Quick start

from virtualshell import Shell

with Shell(timeout_seconds=5) as sh:
    print(sh.run("Write-Output 'Hello from pwsh'").out.strip())

    sh.run("function Inc { $global:i++; $global:i }")
    print(sh.run("Inc").out.strip())  # 1
    print(sh.run("Inc").out.strip())  # 2

Async execution

from virtualshell import Shell
import asyncio

async def main():
    shell = Shell().start()
    fut = shell.run_async("Get-Date")
    res = await asyncio.wrap_future(fut)
    print(res.out.strip())
    shell.stop()

asyncio.run(main())

Running scripts with arguments

from pathlib import Path
from virtualshell import Shell

shell = Shell().start()

shell.script(Path("test.ps1"), args=["alpha", "42"])
shell.script(Path("test.ps1"), args={"Name": "Alice", "Count": "3"})

shell.stop()

All execution APIs support per-call timeouts, raise_on_error, and callbacks.

Advanced features

Zero-copy bridge

High-throughput shared-memory transfer between Python and PowerShell, suited for large binary blobs, files, or high-frequency data exchange. The payload moves through a file-backed memory map shared between Python (mmap) and PowerShell (.NET MemoryMappedFile) — no native DLL required, on Windows, Linux, and macOS.

from virtualshell import Shell, ZeroCopyBridge

with Shell(timeout_seconds=60) as shell:
    with ZeroCopyBridge(shell) as bridge:
        data = b"x" * 1_000_000
        bridge.send(data, "buf")
        print(shell.run("$buf.Length").out)

Measured throughput is roughly 145–560 MB/s depending on payload size and direction — about 10–40× faster than piping the same data through stdout as base64. See the wiki for the full guide, including PSObject round-trips between Python and PowerShell.

PowerShell object proxies

Control live .NET/PowerShell objects from Python. Scalars convert to native Python types, byte arrays travel through the zero-copy bridge, and complex values come back as sub-proxies.

with Shell() as sh:
    writer = sh.make_proxy("", "System.IO.StreamWriter('test.txt')")
    writer.WriteLine("Hello")
    writer.Close()

A bare [Type] literal binds the type itself, exposing its static methods, properties and constants:

with Shell() as sh:
    math = sh.make_proxy("", "[System.Math]")
    print(math.Sqrt(16.0), math.PI)     # 4.0 3.141592653589793

Pair proxies with generate_psobject, which produces typed Protocol stubs (including overloads) for IDE completion and static analysis:

sh.generate_psobject("System.Text.StringBuilder()", Path("StringBuilder.py"))
from StringBuilder import StringBuilder

sb = sh.make_proxy(StringBuilder)   # created and typed in one call
sb.Append("Hello")

See the make_proxy and generate_psobject pages in the wiki.

Core API overview

Method Description
Shell.run(...) Execute a command synchronously
Shell.run_async(...) Schedule async execution
Shell.script(...) Run .ps1 files
Shell.save_session() Persist a session snapshot
Shell.make_proxy(...) Create a live PS object proxy
Shell.generate_psobject(...) Generate Python Protocols
Shell.zero_copy_bridge() Shared per-shell bridge

Configuration example

Shell(
    powershell_edition="core",   # "auto" (default) | "core" (pwsh) | "desktop" (Windows PowerShell 5.1)
    powershell_path="C:/Program Files/PowerShell/7/pwsh.exe",  # optional; overrides the edition
    working_directory="C:/automation",
    environment={"MY_FLAG": "1"},
    timeout_seconds=10,
    auto_restart_on_timeout=True,
    initial_commands=[
        "$ErrorActionPreference = 'Stop'",
        "$ProgressPreference = 'SilentlyContinue'",
    ],
)

PowerShell editions

Both PowerShell 7+ (pwsh, all platforms) and Windows PowerShell 5.1 (powershell.exe, Windows only) are supported with the full feature set: sync/async execution, scripts, session snapshots, the zero-copy bridge, object proxies and Protocol generation. Pick the host with powershell_edition:

powershell_edition Launches
"auto" (default) pwsh if it can be found, otherwise Windows PowerShell 5.1 on Windows
"core" pwsh (PowerShell 7+)
"desktop" Windows PowerShell 5.1; raises ValueError off Windows

The aliases "pwsh" and "powershell" are accepted. An explicit powershell_path always wins over the edition.

from virtualshell import Shell

with Shell(powershell_edition="desktop") as sh:
    print(sh.edition)             # -> "desktop"
    print(sh.powershell_version)  # -> "5.1.22621.4391"
    print(sh.powershell_path)     # -> C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

shell.edition reports what is actually running ("core" or "desktop"), so code that needs PowerShell 7 syntax can branch on it. Note that the two hosts differ in the usual ways: Windows PowerShell has no $PSStyle, no ternary/null-coalescing operators, and formats errors differently.

Performance

Measured with the bundled benchmarks (bench/vs_bench.py, bench/zcb_bench.py) on Windows 11, Python 3.14, PowerShell 7:

Command execution

  • ~0.45 s shell startup
  • ~3.5–4.0 ms per sequential command (~280 cmd/s)
  • ~3.2 ms per command in batches (~310 cmd/s)
  • ~2.3 ms async latency
  • ~620 cmd/s aggregate across 4 parallel shells
  • ~0.35 s session save

Zero-copy bridge (best of 3 runs per size)

Transfer 1 MB 8 MB 32 MB
PowerShell → Python (bytes) 145 MB/s 385 MB/s 413 MB/s
PowerShell → Python (memoryview) 145 MB/s 454 MB/s 563 MB/s
Python → PowerShell (send) 178 MB/s 369 MB/s 293 MB/s

A 4 KB send+receive round trip takes ~8 ms (p50). For reference, moving the same 1 MB payload through stdout as base64 runs at ~14 MB/s, so the bridge is roughly 10–40× faster for bulk data.

Full methodology and charts live in the wiki.

Learn more

Metadata

Release files for virtualshell 1.2.3

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

Source distribution (sdist)

Source distribution for virtualshell 1.2.3
File Size Uploaded
virtualshell-1.2.3.tar.gz 189.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for virtualshell 1.2.3
File
virtualshell-1.2.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
virtualshell-1.2.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
virtualshell-1.2.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
virtualshell-1.2.3-cp314-cp314-macosx_11_0_universal2.whl CPython 3.14 CPython 3.14 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.2.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
virtualshell-1.2.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
virtualshell-1.2.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
virtualshell-1.2.3-cp313-cp313-macosx_11_0_universal2.whl CPython 3.13 CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.2.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
virtualshell-1.2.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
virtualshell-1.2.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details
virtualshell-1.2.3-cp312-cp312-macosx_11_0_universal2.whl CPython 3.12 CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.2.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
virtualshell-1.2.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
virtualshell-1.2.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details
virtualshell-1.2.3-cp311-cp311-macosx_11_0_universal2.whl CPython 3.11 CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64) Details

Total release size: 7.1 MB

Release files / virtualshell-1.2.3.tar.gz

Download URL virtualshell-1.2.3.tar.gz
Size 189.2 kB
Tags Source
SHA-256 checksum
How to use checksums
87d841935cb30c669f7603b731e9be48a2c8eaaf0f624012882e1e8fc939f6df
BLAKE2b-256 checksum
How to use checksums
a97a491803cddae7ce433486d3601a4f3db07e8cf5651d08fa192a480e84f164
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp314-cp314-win_amd64.whl

Download URL virtualshell-1.2.3-cp314-cp314-win_amd64.whl
Size 527.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
5f40b89cb6e273f124e355a6673a56c5f162caf34fad052669dd4c50f4db32d8
BLAKE2b-256 checksum
How to use checksums
859ed5b2ecb2e0f516e3f7edef270afd85b09eacc52ea7db5e9d596e4959c79a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.2.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 394.4 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e17e308b987196cb8a6f69d1bebe44bc457d6e2e16c3115fc2e72241562b27dd
BLAKE2b-256 checksum
How to use checksums
823dc321ff44a7084c77227a0e435f250afc0f93e89e1e79a78eb9fb32667864
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.2.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 358.2 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
91d0ae44a2b18d67663d50a5200502b3eeb19c9c917dc03302767a4d12ddae31
BLAKE2b-256 checksum
How to use checksums
c0b15cd2c4fd437c894ff40634cc092df43a7860fc411c1cd8943c7e51f0a3f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp314-cp314-macosx_11_0_universal2.whl

Download URL virtualshell-1.2.3-cp314-cp314-macosx_11_0_universal2.whl
Size 461.2 kB
Tags CPython 3.14 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
9b0e94cb144ebf34a76b09c3b98f8104f21c651cf5bf745107b9c19aab1a102c
BLAKE2b-256 checksum
How to use checksums
22631b94062cc4c1836c2152b4006978d429cbff8cca0d08d207f284d1eb09bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp313-cp313-win_amd64.whl

Download URL virtualshell-1.2.3-cp313-cp313-win_amd64.whl
Size 512.8 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
9942097e834b7d82e945a214145125f72c539d76fbeeb591ba9b0fc2600d87d9
BLAKE2b-256 checksum
How to use checksums
089c0f109b06b067f05c17d935765d662c21e6e1dae4f9e0caf8a82974853405
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.2.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 394.2 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
261a2701f45a1602d0871af4a0bcf2ad9c6381e39b95664f7fb14ea25182fce4
BLAKE2b-256 checksum
How to use checksums
5383f16b5175b4bec5ad10f9022dbcf23b5bd93743a70e4945db51c07d91de65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.2.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 357.7 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7d9eb5fb72ca57a641715dca6464cde3d75562afd5d302d24a73feb3b5ab46b7
BLAKE2b-256 checksum
How to use checksums
5f8a9e3e2d6852c62a69dfe16dd5b68e60f9999696ce850a6444aee9bbae1d91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp313-cp313-macosx_11_0_universal2.whl

Download URL virtualshell-1.2.3-cp313-cp313-macosx_11_0_universal2.whl
Size 460.8 kB
Tags CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
c1bfba24ecc6100e85e15d76024068add2c96f6d5f0eedd36fe666c65a56dd15
BLAKE2b-256 checksum
How to use checksums
ba07e67416e7b4e455b96ca7d6909d64f1eba2fdb86c824b841b6c10162d3855
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp312-cp312-win_amd64.whl

Download URL virtualshell-1.2.3-cp312-cp312-win_amd64.whl
Size 512.7 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
63865644fd0f49579fca320d1a5f726d15df963ce9284299e7934b661ff1da1c
BLAKE2b-256 checksum
How to use checksums
9e5c66554c8fc3025350389b3cfca81a773a5b65d9df6e7f341835db0b94a691
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.2.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 394.1 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
03918a08471e48a5ae510afc31a950250ed0025c25bdde6cd89934519b7a1b12
BLAKE2b-256 checksum
How to use checksums
9980996456457f690a01e4d5f927957c0bff23867435dbc9210bae56f26c2b3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.2.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 357.7 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5e4dafd6bc0bc5530e8e91b24e6ed37da9a2228550e6f2a8a4a0a3e08a4a352a
BLAKE2b-256 checksum
How to use checksums
17e59f400def772d1bb25eeda642ebbe0bcd89e38b511d980a6544e38853050c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp312-cp312-macosx_11_0_universal2.whl

Download URL virtualshell-1.2.3-cp312-cp312-macosx_11_0_universal2.whl
Size 460.8 kB
Tags CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
443e39d1d1c2e524c975ad581b0bfda111d347b728b72a655b33d161d583b0f0
BLAKE2b-256 checksum
How to use checksums
79659426fc9b2166b314a8869ae890161ad4dd0e8423a774bf08a8a33c23ae9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp311-cp311-win_amd64.whl

Download URL virtualshell-1.2.3-cp311-cp311-win_amd64.whl
Size 511.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
d68c0fd73ec87615e6a23cf90a91f5db5f3b5ce816e6281a97760f1abc65427e
BLAKE2b-256 checksum
How to use checksums
707e2773a3bc436e34449337ed81f14f2fd863e1d5060dc2717f6ebd59d8bb61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.2.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 392.0 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
06b1847cbf036ef86ece8bf4e3db04e6e01e373f49b3e77f5c21d90f77bc8d56
BLAKE2b-256 checksum
How to use checksums
d2358f9f243e3cedef5d13e86f0dd27c4d787cbf046428dfad23390d6cccb2e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.2.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 356.6 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a54e03ef25adbfde3e0bdee9fef4db02bbdffaa13fe54ad9b31b0f716e99b40b
BLAKE2b-256 checksum
How to use checksums
d4958d4c178031b231c174af9c39127f6f7c51798d1899f0f6fcf6967ee8c154
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / virtualshell-1.2.3-cp311-cp311-macosx_11_0_universal2.whl

Download URL virtualshell-1.2.3-cp311-cp311-macosx_11_0_universal2.whl
Size 459.6 kB
Tags CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
d4fecd087e5df53ee2964c5c160a0d22af18ac3b81a219fdbc9fad2e147480d8
BLAKE2b-256 checksum
How to use checksums
4494ec0496df3b69bbc5fcbd32c8b5b53edaec4432ee6236b68276b5d76bfc98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

1.3.0

17 release files

This release

1.2.3 This release

17 release files

1.2.2

17 release files

1.2.1

17 release files

1.2.0

17 release files

1.1.2

25 release files

1.1.1

25 release files

1.1.0

25 release files

1.0.2

25 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