SDKs

TypeScript

npm install dedalus
import Dedalus from "dedalus";

const client = new Dedalus();

const machine = await client.machines.create({
  vcpu: 1,
  memory_mib: 2048,
  storage_gib: 10,
});

console.log(machine.machine_id);

Auto-pagination is built in:

for await (const machine of client.machines.list()) {
  console.log(machine.machine_id, machine.status.phase);
}

Python

pip install dedalus-sdk
from dedalus_sdk import Dedalus

client = Dedalus()

machine = client.machines.create(
    vcpu=1,
    memory_mib=2048,
    storage_gib=10,
)

print(machine.machine_id)

Async is supported:

from dedalus_sdk import AsyncDedalus

client = AsyncDedalus()
machine = await client.machines.create(vcpu=1, memory_mib=2048, storage_gib=10)

Go

go get github.com/dedalus-labs/dedalus-go
package main

import (
    "context"
    "fmt"

    "github.com/dedalus-labs/dedalus-go"
)

func main() {
    client := dedalus.NewClient()

    machine, _ := client.Machines.New(context.TODO(), dedalus.MachineNewParams{
        CreateParams: dedalus.CreateParams{
            VCPU:       1,
            MemoryMiB:  2048,
            StorageGiB: 10,
        },
    })

    fmt.Println(machine.MachineID)
}

Resources

Each SDK exposes the same resource hierarchy:

ResourceDescription
machinesCreate, list, update, sleep, wake, and delete machines
machines.sshSSH session management
machines.executionsRun commands and scripts
machines.terminalsInteractive terminal sessions
machines.artifactsRetrieve, list, and delete captured artifacts
machines.previewsWeb preview URLs
usageRetrieve organization, compute, and storage usage
SDKPackageRepository
TypeScriptdedalusdedalus-labs/dedalus-typescript
Pythondedalus-sdkdedalus-labs/dedalus-python
Godedalus-godedalus-labs/dedalus-go