PyVaultRCE
Remote Code Hosting client for PyVault.
Upload Python scripts to a PyVault server and execute them remotely — the source code never leaves the server. Clients only ever hold a 21-character hex Session ID.
Install
pip install PyVaultRCE
Quick Start
from pyvaultrce import CodeManager
# Upload a local .py file → get a 21-character Session ID
sid = CodeManager.enc("my_script.py")
# [PyVault] ✓ Uploaded — Session ID : 3a7f1c9b2d0e8a5f41c7e
# Upload from a paste service URL
sid = CodeManager.enc_url("https://pastebin.com/abcXYZ123")
# Execute in a short-lived isolated subprocess by default
CodeManager.run(sid)
# Upload with a short share link and library metadata
sid = CodeManager.enc(
"my_script.py",
label="analytics demo",
libraries=["requests", "pandas"],
username="your_name",
description="A public demo post",
tags=["python", "demo"],
)
# Hide PyVault status messages while running
CodeManager.run(sid, show_terminal=False)
# Check metadata without incrementing execution counter
CodeManager.info(sid)
# Verify server is up
CodeManager.ping()
Configuration
Set PYVAULT_URL to point at your hosted PyVault server:
export PYVAULT_URL=https://secure-code-runner--diwasrepl.replit.app
The package uses the public PyVault deployment when PYVAULT_URL is not set.
For local development, explicitly use PYVAULT_URL=http://localhost:5000.
You can also control status output globally:
export PYVAULT_TERMINAL=off
Library names are metadata only. PyVault does not auto-install packages or
execute dependency installers; install the libraries in the Python environment
where CodeManager.run() executes.
API Reference
| Method | Description |
|---|---|
CodeManager.enc(file_path) |
Upload a local .py file → returns Session ID |
CodeManager.enc(file_path, label=..., libraries=[...], username=..., description=..., tags=...) |
Upload with public profile metadata and visible library metadata |
CodeManager.enc_url(url) |
Download code from a paste URL and upload → returns Session ID |
CodeManager.run(session_id, show_terminal=False, isolated=True) |
Fetch and execute code in an isolated subprocess with timeout/resource limits |
CodeManager.info(session_id) |
Get session metadata (no exec count increment) |
CodeManager.ping() |
Check server connectivity |
CodeManager.edit(session_id, file_path, admin_token=...) |
Replace stored code (admin or owner token) |
CodeManager.delete(session_id, owner_token) |
Delete your own session |
Supported Paste Services (enc_url)
pastebin.comhastebin.comdpaste.compaste.ofcode.org- GitHub raw URLs
- Any URL returning raw Python text
Error Handling
| Exception | When |
|---|---|
FileNotFoundError |
Local file not found |
ValueError |
Invalid Session ID or empty file |
ConnectionError |
Server unreachable |
TimeoutError |
Request timed out |
RuntimeError |
Server error (404, 403, 500, etc.) |
SyntaxError |
Remote code syntax error (during run) |
Security
- Session IDs are 21-character cryptographically random hex strings
- Source code is never written to disk on the client
- Code is encrypted at rest with Fernet on the server
- Code runs in a short-lived subprocess by default with a clean environment, temporary working directory, CPU/memory/file-size limits, and a hard timeout
isolated=Falseis an explicit trusted-code escape hatch for shared namespaces; it is not recommended for untrusted sessions- Share links expose only session metadata and declared library names, never source
- Admin edits require the admin access code; owner edits/deletes require the one-time owner token
- Sessions never expire unless an expiry is explicitly selected
License
MIT
Metadata
Release files for PyVaultRCE 2.5.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 | Provenance | |
|---|---|---|---|---|
| pyvaultrce-2.5.0.tar.gz | 11.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyvaultrce-2.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.5 kB
Release files / pyvaultrce-2.5.0.tar.gz
| Download URL | pyvaultrce-2.5.0.tar.gz |
|---|---|
| Size | 11.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f967425465913ab4b7b442167afcbaa9d2502bc5921fd2310bb65e8b32ee859e
|
|
BLAKE2b-256 checksum How to use checksums |
88abe744464270d23e7baae06a1d064893b23d74ffd0ce76ce86d9baa96f3095
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / pyvaultrce-2.5.0-py3-none-any.whl
| Download URL | pyvaultrce-2.5.0-py3-none-any.whl |
|---|---|
| Size | 14.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6002afd0f5296e8ec4153f16518ecbcb05ff0880837daab5f43225ad2a19319
|
|
BLAKE2b-256 checksum How to use checksums |
f2b41ac965a489bea85f231b3071d448b2ea02fbe2e95b0ba5033ee09471ffb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Security for PyVaultRCE 2.5.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.