Edge

CLI

Compute Commands

Create and manage virtual machines, SSH keys, and security groups.

Virtual Machines

List VMs

$ edge compute list
ID          NAME           STATUS    IP             SIZE           REGION
vm-abc123   web-1          running   192.0.2.10     s-2vcpu-4gb    london
vm-def456   api-server     running   192.0.2.11     s-4vcpu-8gb    london
vm-ghi789   database       stopped   192.0.2.12     s-8vcpu-16gb   london

Create a VM

$ edge compute create \
    --name web-2 \
    --size s-2vcpu-4gb \
    --image ubuntu-24 \
    --region london \
    --ssh-key my-laptop

Creating VM... done

ID:      vm-jkl012
Name:    web-2
Status:  creating
IP:      Assigning...
Size:    s-2vcpu-4gb
Region:  london

Or use interactive mode:

$ edge compute create
? VM name: my-webserver
? Size: s-2vcpu-4gb (2 vCPU, 4 GB RAM)
? Image: ubuntu-24
? Region: london
? SSH key: my-laptop

Creating VM... done

Get VM Details

$ edge compute get vm-abc123
ID:           vm-abc123
Name:         web-1
Status:       running
IP:           192.0.2.10
IPv6:         2001:db8::1
Size:         s-2vcpu-4gb
vCPUs:        2
Memory:       4 GB
Disk:         50 GB
Image:        ubuntu-24.04-x64
Region:       london
Created:      2025-02-10 14:30:00 UTC
SSH Keys:     my-laptop, deploy-key

VM Actions

# Start a stopped VM
edge compute start vm-abc123

# Stop a running VM
edge compute stop vm-abc123

# Restart a VM
edge compute restart vm-abc123

# Delete a VM (with confirmation)
edge compute delete vm-abc123

# Delete without confirmation
edge compute delete vm-abc123 --yes

Resize a VM

$ edge compute resize vm-abc123 --size s-4vcpu-8gb

Resizing VM... done

Note: VM will be restarted to apply new size.

SSH Access

# SSH into a VM by ID
edge compute ssh vm-abc123

# SSH with a specific user
edge compute ssh vm-abc123 --user root

# Open web console in browser
edge compute console vm-abc123

Metrics

$ edge compute metrics vm-abc123
Period: Last 24 hours

CPU Usage:      12.5% avg, 45.2% peak
Memory Usage:   1.2 GB / 4 GB (30%)
Disk Read:      150 MB
Disk Write:     45 MB
Network In:     2.3 GB
Network Out:    890 MB

# Specify time period
edge compute metrics vm-abc123 --period 7d

# Export as CSV
edge compute metrics vm-abc123 --period 30d --export csv > metrics.csv

# Show specific metric
edge compute metrics vm-abc123 --metric cpu

Startup Scripts

Startup scripts run on a VM after its first boot. The Edge library ships ready-made scripts (Docker, Node.js, WordPress, and more), and you can create your own. See the Startup Scripts documentation for details.

List Scripts

$ edge compute scripts list
ID          NAME           CATEGORY   SOURCE         PARAMS
docker      Docker         app        edge library   -
nodejs      Node.js        web        edge library   node_version
wordpress   WordPress      app        edge library   site_title, admin_email, db_password
a1b2c3d4    My Setup       custom     custom         -

View a Script

# Show a script's details and content
edge compute scripts get docker

# Print only the content (for piping to a file)
edge compute scripts get docker --content > docker.sh

Create a Custom Script

# Create a custom script from a file
edge compute scripts create --name "My Setup" --file setup.sh \
    --description "Installs our standard tooling"

# Or pipe from stdin
cat setup.sh | edge compute scripts create --name "My Setup" --file -

Update & Delete

# Update a custom script
edge compute scripts update a1b2c3d4 --file setup-v2.sh
edge compute scripts update a1b2c3d4 --name "My Setup v2"

# Delete a custom script (library scripts can't be modified or deleted)
edge compute scripts delete a1b2c3d4

Run a Script on a New VM

# Run a script on first boot when creating a VM
edge compute create \
    --name web-2 \
    --size s-2vcpu-4gb \
    --image ubuntu-24 \
    --region london \
    --script docker

# Library scripts with parameters
edge compute create \
    --name blog \
    --size s-2vcpu-4gb \
    --image ubuntu-24 \
    --region london \
    --script wordpress \
    --script-param site_title="My Blog" \
    --script-param admin_email=me@example.com

SSH Keys

List Keys

$ edge compute keys list
ID          NAME           FINGERPRINT                                    CREATED
key-abc     my-laptop      SHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczC...  2025-01-15
key-def     deploy-key     SHA256:vM9Jxk8sxCHd0ccjU4e9BmjRXYVpLaJEUNe1...  2025-02-01
key-ghi     backup-server  SHA256:wK0Kyl9tyCIe1ddkV5f0CnkSYWWqMbKFVO...    2025-02-10

Create a Key

# Create from file
edge compute keys create --name work-laptop --public-key-file ~/.ssh/id_rsa.pub

# Create with inline key
edge compute keys create --name ci-server --public-key "ssh-rsa AAAA..."

Delete a Key

edge compute keys delete key-abc

Security Groups

List Groups

$ edge compute groups list
ID           NAME         RULES    VMs
grp-abc123   webserver    3        2
grp-def456   database     1        1
grp-ghi789   default      0        5

Get Group Details

$ edge compute groups get grp-abc123
ID:    grp-abc123
Name:  webserver
VMs:   web-1, web-2

Rules:
  1. Allow TCP 22 from 0.0.0.0/0 (SSH)
  2. Allow TCP 80 from 0.0.0.0/0 (HTTP)
  3. Allow TCP 443 from 0.0.0.0/0 (HTTPS)

Manage Groups

# Create a security group
edge compute groups create --name api-servers

# Add rules
edge compute groups add-rule grp-abc123 --port 443 --protocol tcp --source 0.0.0.0/0
edge compute groups add-rule grp-abc123 --port 22 --protocol tcp --source 10.0.0.0/8

# Remove a rule
edge compute groups remove-rule grp-abc123 rule-xyz

# Delete a group
edge compute groups delete grp-abc123

Common Flags

Flag Description
--name, -n Name for the resource
--size, -s VM size (e.g., s-2vcpu-4gb)
--image, -i OS image (e.g., ubuntu-24, debian-12)
--region, -r Datacenter region
--disk Disk size in GB (default: 50)
--ssh-key SSH key name or ID to attach
--security-group Security group name or ID
--script Startup script ID to run after first boot
--script-param Startup script parameter as name=value (repeatable)
--yes, -y Skip confirmation prompts

See Also