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.2

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.2
File Size Uploaded
virtualshell-1.2.2.tar.gz 179.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for virtualshell 1.2.2
File
virtualshell-1.2.2-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
virtualshell-1.2.2-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.2-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.2-cp314-cp314-macosx_11_0_universal2.whl CPython 3.14 CPython 3.14 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.2.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
virtualshell-1.2.2-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.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details
virtualshell-1.2.2-cp313-cp313-macosx_11_0_universal2.whl CPython 3.13 CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.2.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
virtualshell-1.2.2-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.2-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.2-cp312-cp312-macosx_11_0_universal2.whl CPython 3.12 CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.2.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
virtualshell-1.2.2-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.2-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.2-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.0 MB

Release files / virtualshell-1.2.2.tar.gz

Download URL virtualshell-1.2.2.tar.gz
Size 179.1 kB
Tags Source
SHA-256 checksum
How to use checksums
49a0ea9ac9c517e176d33bb26a4b16c4fc7afbbe6d983afdfce8fd52254e5682
BLAKE2b-256 checksum
How to use checksums
6b5749110b62ccf405f6cdd1f9660f6423e22bf6a419053f13d1aa8aa1b9c997
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.2-cp314-cp314-win_amd64.whl

Download URL virtualshell-1.2.2-cp314-cp314-win_amd64.whl
Size 521.2 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9d8672ffdae54911ec24dce9cac5a8c67b60f10134b4fd5ff6348b7ec7186035
BLAKE2b-256 checksum
How to use checksums
732f5178c5f2f88d1bd4ded91cfa3a5306f7eb883068269f05a01ab040946a0e
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.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 388.6 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
473e18f63ec51dfd9c14e4231bb2dd7f49c6b930d07f5851280b641bb0bbbdd0
BLAKE2b-256 checksum
How to use checksums
ed52c5f372e9c7422e05cfb993c4ef4b3adabeaced04e340cf20573e23f93c95
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.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.2.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 352.4 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
df0ef538179be08ff8d7d29aade14a1dc373287ba9fb497cad5470d9ac33e3b5
BLAKE2b-256 checksum
How to use checksums
c4ab21424bc693f9eb0213a2d78aad32a5e0ebd9f4cef85719d457e97ae89e5e
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.2-cp314-cp314-macosx_11_0_universal2.whl

Download URL virtualshell-1.2.2-cp314-cp314-macosx_11_0_universal2.whl
Size 455.4 kB
Tags CPython 3.14 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
47ee71fd2ba51c3729c585f2dc07a413535cab3b1336956cfc0e8e16593a1e26
BLAKE2b-256 checksum
How to use checksums
8fcf66186e40d7f35e880ba9f6aac15c7dc32938684b8ddc3c6f750df1a5a91b
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.2-cp313-cp313-win_amd64.whl

Download URL virtualshell-1.2.2-cp313-cp313-win_amd64.whl
Size 507.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
cbe9b190580c0ad36d89e953a4df31fa76d283910513633effe89f47dafe0458
BLAKE2b-256 checksum
How to use checksums
3fcfc1a70faed55031afc50144f95b03db51cae443179e10b02daea8ddc36e4e
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.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 388.5 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dffa09432eee14fd309a955704c9c660d0c2eddcfd70b07e2c4df485fb13492d
BLAKE2b-256 checksum
How to use checksums
ee7848cc835ca839845b87710c7b4c08329df4b3127656a1908b5b1f536ffe88
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.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.2.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 351.9 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0ec4e4a2771c4ec48f689dbacfb6a8ad770e41edfd1975b4996e0a683c03877a
BLAKE2b-256 checksum
How to use checksums
7458ddb29abdaf3c7032edae6904ea7917a30d182f9d0fd253e178f8916fd22f
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.2-cp313-cp313-macosx_11_0_universal2.whl

Download URL virtualshell-1.2.2-cp313-cp313-macosx_11_0_universal2.whl
Size 455.1 kB
Tags CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
8452da0bad6c1cc09ee90db45abff496a9cdc9bea3f5d5a9e7d59891142e2f2a
BLAKE2b-256 checksum
How to use checksums
62eb4b8a2c7a2b43e2af01a2891a476399a81b8e6cb8ba0e10bc0e3f6504baf1
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.2-cp312-cp312-win_amd64.whl

Download URL virtualshell-1.2.2-cp312-cp312-win_amd64.whl
Size 507.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
79adacf9c6385bd36c17009ce29d151b6d214acf0e76143ced5cc616f939f0be
BLAKE2b-256 checksum
How to use checksums
71a71b5576e2eb4801890b6eb1869b44a44407a0948e203a97ab76b1bca4d6a0
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.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 388.4 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
060144c9a083ac98fb02a9c6a1460f9aa4b584e14f40a3018c1a98f63d54c3b6
BLAKE2b-256 checksum
How to use checksums
258078a80d6fd8cb2717da103f3511ab8b8d59fcb190280a6f8f0a0f0a3bd01c
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.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.2.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 351.9 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a61609808a48db1b85610c98bf99e44b1fca5ced06a571aa26d066de25d58ce7
BLAKE2b-256 checksum
How to use checksums
e01d8caf2c1a33804a040b3f6c7815f50fee276018ac175709cdca2fade7a7fe
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.2-cp312-cp312-macosx_11_0_universal2.whl

Download URL virtualshell-1.2.2-cp312-cp312-macosx_11_0_universal2.whl
Size 455.0 kB
Tags CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
79556782a6c9d98423eb664be42c08a8c9eb5d6b781bd3c0c9d0aa8445bcbf1c
BLAKE2b-256 checksum
How to use checksums
0acc02f716787c4fac717f6e1e05af433a3e8feceb474e3f8927b0da3132d199
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.2-cp311-cp311-win_amd64.whl

Download URL virtualshell-1.2.2-cp311-cp311-win_amd64.whl
Size 505.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
3b7c9c42fb1304eb04b14d61588cefeabba28f46103211a86e21db72256a953e
BLAKE2b-256 checksum
How to use checksums
ba697b6f365ed468c314f89f3df4cb722af1c1d60e4a2bf7476a910beaf6e47c
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.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 386.2 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
671bd0e09edbccbc533b69848cb3a37366f242ff75f668aa65f2808037416487
BLAKE2b-256 checksum
How to use checksums
9036d24856e657d2fc86920bc7c127d0a6b15c025697b1aa3e98c903497fa399
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.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.2.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 350.8 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e976cdff2606a48e854b55b776d434b36f1092e4067ab8b42a103d4890f63475
BLAKE2b-256 checksum
How to use checksums
44d2bc399a7eabd34aa28c1187e0ce95ba742d871dc1c6846384ff301f59c4e8
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.2-cp311-cp311-macosx_11_0_universal2.whl

Download URL virtualshell-1.2.2-cp311-cp311-macosx_11_0_universal2.whl
Size 453.8 kB
Tags CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
29232747bcb6c20948d333acb8c0893117bda66b706e6099a0ba94309be6007e
BLAKE2b-256 checksum
How to use checksums
238b5485ca398ed3411a58072f82b3ca2a7798a4f2d0192ab52812d0d5ec274b
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

1.2.3

17 release files

This release

1.2.2 This release

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