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 — including run_objects() returning Python objects instead of text
  • guardrails for agent-driven automation: allow/deny policies, read-only lanes, confirmation hooks, output budgets, fast interrupt with state restore
  • 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() as sh:                       # starts on first use
    print(sh.run("1 + 1").out)            # "2" - results come pre-stripped

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

    # Objects instead of text - nothing to parse:
    for p in sh.run_objects("Get-Process", select=["Name", "Id"], first=3):
        print(p["Name"], p["Id"])

Built for agents (and cautious humans)

virtualshell is designed to be driven by LLM agents safely and cheaply:

from virtualshell import Shell, ExecutionPolicy, PolicyViolationError

sh = Shell(
    max_output=4000,                      # cap tokens: head+tail view with a
                                          # continuation key; page the rest
                                          # with sh.fetch_output(key, offset)
    policy=ExecutionPolicy(
        read_only=True,                   # exploration lane: Get-*/Select-*/...
    ),
)

sh.run("Get-ChildItem C:\\ -Recurse")     # big output arrives budgeted
sh.run("Remove-Item x")                   # PolicyViolationError, never executes
sh.run("rm x")                            # aliases resolve first - also blocked

Policies support allow/deny globs, an on_confirm hook for human approval of destructive commands (Remove-*, Stop-*, ...) and automatic -WhatIf dry runs. Prompting commands (Read-Host, Get-Credential) fail immediately with a typed PromptBlockedError instead of hanging. A runaway command is cancelled in ~0.5 s with sh.interrupt(), which restores session state from the newest sh.checkpoint(). And sh.command_schema("Get-Process") / sh.module_schemas("VendorModule") emit MCP-style tool definitions straight from Get-Command metadata.

See Agents & Guardrails in the wiki for the full guide.

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 (max_output budgets the result)
Shell.run_objects(...) Execute and get Python objects back
Shell.run_async(...) Schedule async execution
Shell.script(...) Run .ps1 files
Shell.fetch_output(...) Page through budget-truncated output
Shell.interrupt() Abort the running command, keep session state
Shell.checkpoint(...) / Shell.restore(...) Named restore points for session state
Shell.command_schema(...) MCP-style tool definition for a command
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.3.0

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.3.0
File Size Uploaded
virtualshell-1.3.0.tar.gz 221.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for virtualshell 1.3.0
File
virtualshell-1.3.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
virtualshell-1.3.0-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.3.0-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.3.0-cp314-cp314-macosx_11_0_universal2.whl CPython 3.14 CPython 3.14 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
virtualshell-1.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
virtualshell-1.3.0-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.3.0-cp313-cp313-macosx_11_0_universal2.whl CPython 3.13 CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
virtualshell-1.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
virtualshell-1.3.0-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.3.0-cp312-cp312-macosx_11_0_universal2.whl CPython 3.12 CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64) Details
virtualshell-1.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
virtualshell-1.3.0-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.3.0-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.3.0-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.4 MB

Release files / virtualshell-1.3.0.tar.gz

Download URL virtualshell-1.3.0.tar.gz
Size 221.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d8bb48008d40d6930eac829e8be9461cb5b578b3095dcd7402552c499581e076
BLAKE2b-256 checksum
How to use checksums
41573257dbd90027b36737c2f1d36460bc6b9477a227543194f31283e0e05524
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.3.0-cp314-cp314-win_amd64.whl

Download URL virtualshell-1.3.0-cp314-cp314-win_amd64.whl
Size 546.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
44f815138e9f810e88c9de68dcce0ab9331d530dc7655047bf10f1b04e36037b
BLAKE2b-256 checksum
How to use checksums
5b24414caa2734cdc6e54002d1328b7f05962682efa47bb1f75b4793ea116dd9
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.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 413.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
b164a548f9d21d8af0f2eee4bcc521a4b9b398228c2ded990cb398b85cd7c320
BLAKE2b-256 checksum
How to use checksums
2c1ccdfd9190d6bfdb7f2a31342a93a6c962abf29fe45e7337f3cc7df2d02911
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.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 377.1 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b3b63331baeb6697e3e4b2a70e3d41d95d938da2804cc9e0319c297c140b683c
BLAKE2b-256 checksum
How to use checksums
cd7d7bb8091f872e93a9eb85acf5608133ca57796a4874bc6ac910e76397da1c
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.3.0-cp314-cp314-macosx_11_0_universal2.whl

Download URL virtualshell-1.3.0-cp314-cp314-macosx_11_0_universal2.whl
Size 480.2 kB
Tags CPython 3.14 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
af830bc40924154d27e332067ee5c8593677062944362d59dcdcfe713289f115
BLAKE2b-256 checksum
How to use checksums
d34599e3849bef0bfba3b8453a88bac06d3486acf772127039cce91556ee34c6
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.3.0-cp313-cp313-win_amd64.whl

Download URL virtualshell-1.3.0-cp313-cp313-win_amd64.whl
Size 531.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
9b5c21cb7f9b5511d8b01d25a772d549009fd43f4d3f8f94c745252e3bbd41e0
BLAKE2b-256 checksum
How to use checksums
c08d806e112825a7b2b236957e06de37b5a9f65edf777d4a7738240f04d82c36
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.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 413.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
9b416f7db1c12555a454bdc8423fe20aa84e54ab0001673df05e6c8dbb250c5a
BLAKE2b-256 checksum
How to use checksums
a30609f6d118fec9281393a4a4b86964fa53ab2e2368f2dee49e2ec3d167a348
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.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 376.6 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ae2d010be085a3821f06834009d2392529340c751712f1222401601fc6222d04
BLAKE2b-256 checksum
How to use checksums
587181d63d90d57eff5470dc233d5547c03ee5c645d3230c690186887d878083
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.3.0-cp313-cp313-macosx_11_0_universal2.whl

Download URL virtualshell-1.3.0-cp313-cp313-macosx_11_0_universal2.whl
Size 479.8 kB
Tags CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
9dbb97d8ff443b5c519a9fdebbac2925e6367b6aeca93f19f59cef391e718538
BLAKE2b-256 checksum
How to use checksums
6babd35a9ad185dcd2753ddc5240421f4653594c1b94e346e42a1837fb03b818
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.3.0-cp312-cp312-win_amd64.whl

Download URL virtualshell-1.3.0-cp312-cp312-win_amd64.whl
Size 531.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f39ffec0dc965fcce50dde32b1d944e6e5ec6ce16afb9826689d11c8b966ba29
BLAKE2b-256 checksum
How to use checksums
3901f3ec83684284b2eb62cef0d685fdcaed5bd52e64be007e4727e603fac6f4
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.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 413.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
e8aacbae189db5bef1900631d5a758dc74452acd7f0bd3bfe90b6d7e29e46625
BLAKE2b-256 checksum
How to use checksums
eefcb82f6f222710bd734972d3f82b2559bb724b4f712a259c8d82433bfa4416
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.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 376.6 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
16caa164c8608a5a8cb491f761d86be4bee2e8944d44e5a228ba446abd56a100
BLAKE2b-256 checksum
How to use checksums
02f87a94b30b5f19e05854375017dd25b267ff2762b84ca1d9d8ca2acd7e19a8
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.3.0-cp312-cp312-macosx_11_0_universal2.whl

Download URL virtualshell-1.3.0-cp312-cp312-macosx_11_0_universal2.whl
Size 479.7 kB
Tags CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
73e8f092b8b9ddae9fb3777252f2b0408999ae683de5ca54007efb20e5994a85
BLAKE2b-256 checksum
How to use checksums
72849611ac6cd54ab1a5340a7282d8e6190acbed859c1bede922349ce72ea7b4
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.3.0-cp311-cp311-win_amd64.whl

Download URL virtualshell-1.3.0-cp311-cp311-win_amd64.whl
Size 530.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
04911bffaa72334a31bc1cd6ad9cb06ba36da7768d00c9606d68631efc0463a6
BLAKE2b-256 checksum
How to use checksums
63d49846d680a1283aba6f5407f846bb0d0e713f943ca2685e76d981ce1a6583
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.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL virtualshell-1.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 410.9 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2efdb59d9089eb267d71df17cf6237bc8f32d0d1f3cb80de9fcf9742ca933747
BLAKE2b-256 checksum
How to use checksums
d92f6620b2b3e965ae818279accbd0d5cfc17718cb561d19c7845aea86839eba
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.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL virtualshell-1.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 375.6 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
85ca8cbfdf3cb7b9e5e5301f932cb681ca680e6bf7a9a7a0d64a3b787cbfa21f
BLAKE2b-256 checksum
How to use checksums
b19a9f2463ed5bd5025d87164bbc70979fb063851c7b817cb626de273d128988
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.3.0-cp311-cp311-macosx_11_0_universal2.whl

Download URL virtualshell-1.3.0-cp311-cp311-macosx_11_0_universal2.whl
Size 478.5 kB
Tags CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
105ae99df362e5b4b8807ff7077cef3d40e324bf150e809cc196c7974b554668
BLAKE2b-256 checksum
How to use checksums
6a304f3143026ef2adc88e38eaf7b06869a340339777d026a9a43007b5146dde
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

This release

1.3.0 This release

17 release files

1.2.3

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