Skip to main content
Looking for full control over the agent loop? See the Quickstart — use any LLM, any framework, and control desktops via the Tools API.

What are Managed Workflows?

With Managed Workflows, Nen handles the agent loop for you. You write Python automation scripts using the Nen SDK, and Nen executes them inside a managed desktop — controlling applications via keyboard, mouse, and VLM-powered vision.
from nen import Agent, Computer, Secure

Agent

VLM-driven controller. Execute actions, verify screen state, extract structured data.

Computer

Low-level keyboard, mouse, and filesystem access inside the desktop.

Secure

Type-safe secret references. Values never enter the desktop.

run()

Entry point function. Accepts typed Pydantic params, returns typed results.

Core Concepts

Every Nen workflow is a Python file with a run() function. The SDK provides four building blocks:
ConceptPurpose
run()Entry point. Receives validated Pydantic params, returns validated results.
AgentAI controller that sees the screen and performs actions via natural language.
ComputerDirect keyboard, mouse, and file system access.
Secure[str]Type-safe secret handling — real values never touch the desktop.

How It Works

1

Write a workflow

Define a run() function with Pydantic input/output models. Use Agent for AI-driven actions and Computer for precise control.
2

Deploy to a managed desktop

Your workflow runs inside an isolated desktop environment. Nen orchestrates VLM calls to interpret the screen.
3

Get structured results

Results are validated against your Pydantic schema and returned via API. Files are packaged as assets.zip.

Quick Example

workflow.py
from nen import Agent
from pydantic import BaseModel, AnyUrl

class Params(BaseModel):
    website: AnyUrl

class Result(BaseModel):
    title: str

def run(params: Params) -> Result:
    agent = Agent()
    agent.execute(f"Open the browser at {params.website}")
    data = agent.extract("What is the page title?", Result.model_json_schema())
    return Result.model_validate(data)

Next Steps

Quickstart

Get a minimal workflow running in minutes

Agent

Learn execute, verify, and extract

Full Example

See a complete end-to-end workflow