Official Python SDK for the JustAVPS API — machines, filesystem, process execution
Project description
JustAVPS Python SDK
Official Python client for the JustAVPS API.
pip install kortix-justavps
Quick Start
from justavps import JustAVPS
client = JustAVPS("sk_live_...")
Machines
# List machines
machines = client.machines.list()
# Create a machine
machine = client.machines.create(server_type="cpx32", region="hel1", name="my-box")
print(f"Created: {machine['id']} — {machine['slug']}")
# Get details
machine = client.machines.get(machine_id)
print(f"Status: {machine['status']}, IP: {machine['ip']}")
# Reboot / Resize / Delete
client.machines.reboot(machine_id)
client.machines.resize(machine_id, server_type="cpx42")
client.machines.delete(machine_id)
Toolbox: Filesystem
Read, write, search, and manage files on a running machine.
tb = client.toolbox(machine_id)
# List files
entries = tb.files.list("/root")
for e in entries:
print(f" {e['type']:4s} {e['mode_bits']} {e['size']:>8d} {e['name']}")
# Upload a file (auto-creates parent dirs)
tb.files.upload("/root/app.py", "print('hello')", mode="755")
# Download a file
content = tb.files.download("/root/app.py")
# Check existence
result = tb.files.exists("/root/app.py")
print(result["exists"], result["type"])
# File metadata
info = tb.files.info("/root/app.py")
print(f"Size: {info['size']}, Owner: {info['owner']}")
# Create directory (mkdir -p)
tb.files.mkdir("/root/project/src")
# Search text in files (grep)
result = tb.files.find("/root/project", r"TODO|FIXME", include="*.py")
for m in result["matches"]:
print(f" {m['file']}:{m['line']}: {m['content']}")
# Find and replace
tb.files.replace(["/root/app.py"], "hello", "goodbye")
# Move / rename
tb.files.move("/root/app.py", "/root/main.py")
# Set permissions
tb.files.chmod("/root/main.py", "755")
# Delete file
tb.files.remove("/root/main.py")
# Delete directory recursively
tb.files.remove("/root/project", recursive=True)
Toolbox: Process
Execute commands, run code, and manage processes on a running machine.
tb = client.toolbox(machine_id)
# Execute a shell command
result = tb.process.exec("ls -la /root")
print(f"Exit: {result['exit_code']}")
print(result["stdout"])
# Execute with cwd, timeout, env vars
result = tb.process.exec(
"npm install && npm run build",
cwd="/root/project",
timeout=120,
env={"NODE_ENV": "production"},
)
# Run a code snippet
result = tb.process.code_run("print(6 * 7)", language="python")
print(result["stdout"]) # "42\n"
# List running processes
processes = tb.process.list()
for p in processes:
print(f" PID {p['pid']}: {p['command']}")
# Kill a process
tb.process.kill(1234, signal="SIGTERM")
Images
# Create image from a running machine
image = client.machines.create_image(machine_id, name="my-snapshot")
# List / get / delete
images = client.images.list()
image = client.images.get(image_id)
client.images.delete(image_id)
SSH Keys, API Keys, Webhooks
# SSH Keys
keys = client.ssh_keys.list()
key = client.ssh_keys.create("laptop", "ssh-ed25519 AAAA...")
client.ssh_keys.delete(key["id"])
# API Keys
keys = client.api_keys.list()
key = client.api_keys.create("ci-deploy")
print(key["key"]) # Only shown once!
client.api_keys.delete(key["id"])
# Webhooks
hooks = client.webhooks.list()
hook = client.webhooks.create("https://example.com/hook", ["machine.ready", "machine.deleted"])
client.webhooks.delete(hook["id"])
Server Types
providers = client.server_types.providers()
regions = client.server_types.regions("cloud")
types = client.server_types.list("hel1")
for t in types:
print(f" {t['name']}: {t['cores']} vCPU, {t['memory']}GB, ${t['price_monthly']}/mo")
Context Manager
with JustAVPS("sk_live_...") as client:
machines = client.machines.list()
# client.close() called automatically
API Reference
Full interactive docs: justavps.com/api/docs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kortix_justavps-2026.3.0.tar.gz.
File metadata
- Download URL: kortix_justavps-2026.3.0.tar.gz
- Upload date:
- Size: 64.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9dfe74ff762201b9af5f38dc35554bd89b8d78239e42c56aafdcf1f52a58681a
|
|
| MD5 |
94b92d87489f8843a4b87f3702bc7de5
|
|
| BLAKE2b-256 |
85f8849beb6208fd002732bac69b48b0eada582cf69f90a5e120117cc7a28d8c
|
Provenance
The following attestation bundles were made for kortix_justavps-2026.3.0.tar.gz:
Publisher:
publish-sdks.yml on kortix-ai/justavps
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kortix_justavps-2026.3.0.tar.gz -
Subject digest:
9dfe74ff762201b9af5f38dc35554bd89b8d78239e42c56aafdcf1f52a58681a - Sigstore transparency entry: 1130142496
- Sigstore integration time:
-
Permalink:
kortix-ai/justavps@502229f7742f1a95514b61a26f5fcacc9cd0473a -
Branch / Tag:
refs/heads/master - Owner: https://github.com/kortix-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdks.yml@502229f7742f1a95514b61a26f5fcacc9cd0473a -
Trigger Event:
push
-
Statement type:
File details
Details for the file kortix_justavps-2026.3.0-py3-none-any.whl.
File metadata
- Download URL: kortix_justavps-2026.3.0-py3-none-any.whl
- Upload date:
- Size: 291.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2b625a831039b459eb2129ad4e9eabc14667e7b12df498e44acddb219ed899f
|
|
| MD5 |
82be0b574569260e49ffdd7cdee666b4
|
|
| BLAKE2b-256 |
170efb76fb035ac5341e18f8145cac164e30d684f5e3f289f8931dc98dc4e1b4
|
Provenance
The following attestation bundles were made for kortix_justavps-2026.3.0-py3-none-any.whl:
Publisher:
publish-sdks.yml on kortix-ai/justavps
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kortix_justavps-2026.3.0-py3-none-any.whl -
Subject digest:
e2b625a831039b459eb2129ad4e9eabc14667e7b12df498e44acddb219ed899f - Sigstore transparency entry: 1130142570
- Sigstore integration time:
-
Permalink:
kortix-ai/justavps@502229f7742f1a95514b61a26f5fcacc9cd0473a -
Branch / Tag:
refs/heads/master - Owner: https://github.com/kortix-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdks.yml@502229f7742f1a95514b61a26f5fcacc9cd0473a -
Trigger Event:
push
-
Statement type: