Skip to content

API Reference

ForeverVM

The ForeverVM class is a client for the ForeverVM API. Use it to manage your machines and for executing one-off instructions.

Instantiate the client with your ForeverVM API token:

from forevervm_sdk import ForeverVM
fvm = ForeverVM("your_forevervm_token")

If you store your API token in the FOREVERVM_TOKEN environment variable, the ForeverVM client will detect it:

from forevervm_sdk import ForeverVM
fvm = ForeverVM()

Methods

The following are all methods on the ForeverVM client:

Create Machine

Creates a new machine.

fvm.create_machine()

Output:

{
"machine_name": "9kaTDWiKdAvaIZNE"
}

Creating with tags

Optionally, you can supply one or more tags when creating a machine, which can be used for filtering machines:

fvm.create_machine(tags={"environment": "prod", "external_id": "12345"})

List Machines

Lists all the machines in your account.

fvm.list_machines()

Output:

{
"machines": [
{
"name": "9kaTDWiKdAvaIZNE",
"created_at": "2025-02-13T21:48:24.740618Z",
"running": false,
"has_pending_instruction": false,
"expires_at": null
},
{
"name": "G32G3H3IGoTpG7ST",
"created_at": "2025-02-13T21:44:18.329670Z",
"running": false,
"has_pending_instruction": false,
"expires_at": null
}
]
}

Listing by tags

Optionally, you can filter the list of machines by tags. A machine must match all the tags specified to be included in the list.

fvm.list_machines(tags={"environment": "prod"})

Execute an Instruction

Executes an instruction on a machine.

fvm.exec("1 + 1", "9kaTDWiKdAvaIZNE")

Parameters:

  • code (string, required): the code to execute on the machine. It can be an arbitrarily long string of Python statements and expressions — something as short as 1 + 1 works, as well as a series of statements spanning multiple lines.
  • machine_name (string, optional): the name of the machine on which to execute the instruction. If omitted, a new machine will be created.

Output:

{
"instruction_seq": 0,
"machine": "9kaTDWiKdAvaIZNE"
}

Get an Instruction Result

Returns the result of an instruction. If the instruction was an expression, the result can be found in the result.value property.

fvm.exec_result("9kaTDWiKdAvaIZNE", 0)

Output:

{
"instruction_id": 1,
"result": {
"value": "2",
"data": null,
"runtime_ms": 8
}
}

Connect to a REPL

Creates a REPL session on a machine. For the API of the returned object, see the REPL reference.

repl = fvm.repl("9kaTDWiKdAvaIZNE")

Parameters:

  • machine_name (string, optional): the name of the machine on which to create the REPL session. If omitted, a new machine will be created.

Authorization Troubleshooting

The whoami method returns information about the currently logged in account.

fvm.whoami()

Output:

{
"account": "your_account_name"
}