Managed application environments

Desktop applications,
ready for agents.

Managed desktop environments for computer-use agents, with guardrails, application monitoring, and artifact checkpoints built in.

Ready in seconds Any agent or model
555 LED BlinkerKiCad · afc1c0d0Running
Mouse click(1424, 819)
01

Application-ready

The software is installed, configured, and open.

02

Application-aware

Health checks verify the intended application is ready.

03

Framework-agnostic

Bring any computer-use model or agent loop.

How Isle works

Your agent uses the application. Isle manages everything around it.

Generic machines leave the hard parts to your agent. Isle wraps each application in the monitoring, containment, and checkpoint controls it needs to complete real work.

01

Choose the application

Start a clean KiCad or FreeCAD environment with the SDK. No installation or desktop setup.

02

Connect your agent

Use familiar screenshot, mouse, keyboard, and file-transfer primitives with any model.

03

Protect useful progress

Create artifact checkpoints while Isle monitors and contains the application.

04

Collect the result

Download the output, stop the environment, and resume it later with its state intact.

Application-aware by design

Isle manages the application.
Not just the machine.

A machine can be healthy while the application is frozen, off task, or losing work. Isle monitors the layer your agent actually depends on and gives your agent explicit recovery controls.

Explore reliability in the docs
Managed environment behavior live

Application health monitoring

Isle watches the application itself, not just whether the underlying machine is online.

Artifact checkpoints

Save an artifact checkpoint before important actions, then restore it when needed.

Recovery controls

Restore the latest safe checkpoint and restart the application through the SDK.

Application containment

Agents stay inside the intended workflow instead of wandering into the operating system.

Application environments

The right environment for the work.

Each environment is built around its application: the right tools, file formats, guardrails, and health monitoring from the first action.

Electronics design

KiCad

kicad

Schematic capture, PCB layout, and electronics design with KiCad-native, Gerber, and BOM output.

.kicad_sch.kicad_pcbGerber

3D engineering

FreeCAD

freecad

Parametric modeling and engineering workflows with STEP, IGES, STL, and native FreeCAD files.

STEPIGESSTL

Need a managed environment for enterprise software? Talk to us

The API

One API.
Familiar controls.

Isle fits into the agent loop you already have. Control the application, move files in and out, and inspect the environment's health through the SDK. Bring the model and framework that work for you.

ScreenshotsMouseKeyboardFile transfer
Read the quickstart
from isle import Client

isle = Client()
sandbox = isle.sandboxes.create("kicad")
sandbox.wait_until_ready()

# Connect any computer-use agent
image = sandbox.screen.screenshot()
sandbox.mouse.click(500, 300)
sandbox.keyboard.type("100nF")
sandbox.keyboard.keypress(["CTRL", "S"])

# Move artifacts in and out
sandbox.files.upload("schematic.kicad_sch")
sandbox.files.download("/home/user/work/board.kicad_pcb")

sandbox.stop()

Build with GPT-6 Astra

Python + desktop control

Give Astra a desktop.
Let it work in code.

Astra can use Python to inspect the screen, operate KiCad or FreeCAD, and work with project files. Isle keeps that work in one desktop session, with screenshots and results returned to the agent after each step.

Persistent PythonScreenshot feedbackShared project filesKiCad rule checks
Explore the Astra integration

Use the same execution and observation APIs with any model. Get started with a new environment and Isle SDK 0.2.0 or later.

Environment side of the Astra loop · Isle SDK

from isle import Client

isle = Client()
sandbox = isle.sandboxes.create("kicad")
sandbox.wait_until_ready()

# Check the desktop's execution support
caps = sandbox.capabilities()
assert caps["execution"]["available"]
generation = caps["generation"]

# Run code in the application's desktop
result = sandbox.execution.run(
    "counter = 40\ndisplay(pyautogui.screenshot())",
    expected_generation=generation,
)

# Python state survives between calls
result = sandbox.execution.run(
    "counter += 2\nprint(counter)",
    expected_generation=generation,
)
print(result["stdout"])  # 42

sandbox.stop()

Pricing

Start free. Scale when you need to.

Every plan includes managed environments and artifact checkpoints.

Free

$0

per month

  • 5 environment-hours/month
  • 30 minute environment runtime
  • 1 concurrent environment
  • KiCad and FreeCAD
Start free
Most popular

Developer

$29

per month

  • 100 environment-hours/month
  • No per-session runtime cap
  • 5 concurrent environments
  • KiCad and FreeCAD
  • Priority support
Start building

Enterprise

Custom

tailored to your workload

  • Unlimited environment-hours
  • Unlimited concurrency
  • Custom application environments
  • Dedicated support
  • SLA and uptime guarantees
Talk to us

Bring the agent.
We’ll manage the application.