This guide will walk you through creating your first workflow, installing Cyberdriver, and executing a run programmatically.

Prerequisites

  • An active Cyberdesk subscription (if you’re not on a paid plan, book a demo)
  • A Cyberdesk account (sign up here)
  • Node.js 14+ or Python 3.8+ for SDK usage
  • Windows machine for desktop automation

Step 1: Create a workflow in the dashboard

Workflows define the tasks you want to automate. Let’s create your first one.
1

Navigate to Workflows

Go to the Cyberdesk Dashboard and click on Workflows in the sidebar.
2

Create a new workflow

Click the New Workflow button to open the workflow editor.
3

Define your workflow

Fill in the workflow details:
  • Name (optional): Give your workflow a descriptive name like “Extract Patient Data”
  • Main Prompt: This is the instruction that tells AI what to do. For example:
    Navigate to the patient portal and extract the demographics information 
    for patient ID: {patient_id}. Look for patient name {patient_first_name} 
    {patient_last_name} to confirm you have the right record.
    
    You can also add images to the prompt from the dashboard editor (click Add Image). Images help the agent understand tricky icons and UI elements in legacy apps.
  • Output Schema (optional): Define the structure of data you want back using JSON Schema
Variables in Workflows:
  • Use {variable_name} for input variables - values you pass when starting the workflow
  • Use {{runtime_variable}} for runtime variables - values discovered and set during execution by focused_action
Example: "Search for {patient_name} and save their ID as {{patient_id}} for later use"
AI Assist Feature: Instead of writing prompts manually, you can use our AI assist feature:
  1. Type a natural language description of what you want to automate
  2. Click the Generate button
  3. AI will create a detailed prompt for you
  4. You can send follow-up instructions to refine the prompt - the AI maintains context
The same AI assist is available for the Output Schema field to help you define the data structure.
4

Save your workflow

Click Create to save. You’ll be redirected to the workflow details page where you can find your workflow ID.

Step 2: Install Cyberdriver

Cyberdriver connects your desktop to Cyberdesk, enabling remote automation.
Cyberdriver will automatically request administrator privileges when it runs. Make sure you have the necessary permissions or administrator password available, as this is required for automating certain desktop applications.
1

Run the installer in PowerShell

# Create tool directory
$toolDir = "$env:USERPROFILE\.cyberdriver"
New-Item -ItemType Directory -Force -Path $toolDir

# Download cyberdriver
Invoke-WebRequest -Uri "https://github.com/cyberdesk-hq/cyberdriver/releases/download/v0.0.15/cyberdriver.exe" -OutFile "$toolDir\cyberdriver.exe"

# Add to PATH if not already there
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
if ($userPath -notlike "*$toolDir*") {
    [Environment]::SetEnvironmentVariable("Path", $userPath + ";" + $toolDir, "User")
}

Write-Host "Cyberdriver installed! You may need to restart your terminal for PATH changes to take effect."
2

Restart PowerShell

Close and reopen your PowerShell terminal for the PATH changes to take effect.
3

Connect to Cyberdesk

cyberdriver join --secret YOUR_API_KEY
Replace YOUR_API_KEY with your actual API key from the Cyberdesk Dashboard.
After connecting, find your machine in the dashboard and give it a readable name (like “John’s Desktop” or “Dev Machine”) to easily identify it later.

Step 3: Create a run via SDK

Now let’s execute your workflow programmatically using the SDK.
1

Install the SDK

npm install cyberdesk
2

Create and run your workflow

import { createCyberdeskClient } from 'cyberdesk';

async function runWorkflow() {
  // Initialize the client
  const client = createCyberdeskClient('YOUR_API_KEY');

  // Create a run
  const { data: run } = await client.runs.create({
    workflow_id: 'your-workflow-id',  // From Step 1
    machine_id: 'your-machine-id',    // From dashboard (Desktops page)
    input_values: {
      patient_id: '12345',
      patient_first_name: 'John',
      patient_last_name: 'Doe'
    }
  });

  console.log('Run created:', run.id);

  // Wait for completion
  let status = run.status;
  while (status === 'scheduling' || status === 'running') {
    await new Promise(resolve => setTimeout(resolve, 5000));
    const { data: updatedRun } = await client.runs.get(run.id);
    status = updatedRun.status;
    console.log('Status:', status);
  }

  // Get results
  if (status === 'success') {
    console.log('Results:', updatedRun.output_data);
  } else {
    console.error('Run failed:', updatedRun.error?.join(', '));
  }
}

runWorkflow();

Step 4: View results in the dashboard

After your run completes, you can view detailed information in the dashboard.
1

Navigate to Runs

Go to the Runs page in your dashboard.
2

View run details

Click on your run to see:
  • Status: Current state of the run
  • Output Data: The extracted/processed data based on your output schema
  • Message History: Complete conversation between AI and your desktop
3

View workflow trajectories

Navigate to your workflow and click on the Trajectories tab to see:
  • Visual traces of trajectories
  • Step-by-step actions taken
  • Ability to edit or remove trajectory steps

What’s next?