virtualshell
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
Protocolstubs from PowerShell objects and control them through live proxies.
Requirements
- Python 3.11 – 3.14
- PowerShell 7 (
pwsh) onPATH, or Windows PowerShell 5.1 on Windows. By default the backend preferspwshand falls back to Windows PowerShell; see PowerShell editions to pin one, or passpowershell_pathto 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
- Documentation wiki
- llms.txt and SKILL.md — compact guides written for LLM agents
- Issues
- Discussions
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)
| File | Size | Uploaded | |
|---|---|---|---|
| virtualshell-1.3.0.tar.gz | 221.9 kB | Details |
Built distributions (wheels)
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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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