This page documents the legacy Python Cyberdriver (Documentation Index
Fetch the complete documentation index at: https://docs.cyberdesk.io/llms.txt
Use this file to discover all available pages before exploring further.
0.0.x). New installs should use Cyberdriver Quickstart. Keep this page for old customers, rollback situations, and one-off compatibility needs.
What is legacy Cyberdriver?
Legacy Cyberdriver is a small Python-based executable that connects your desktop to Cyberdesk, enabling AI-powered automation of desktop tasks. It provides a secure bridge between Cyberdesk’s cloud infrastructure and your local Windows machine.Key features
- Local HTTP server - Endpoints for display, keyboard, mouse, clipboard, file, and shell control.
- WebSocket tunnel - Secure outbound connection to Cyberdesk Cloud.
- Works on physical and virtual machines - Run on a local Windows computer or Windows VM.
- Stealth mode - Runs invisibly in the background on Windows.
- Keepalive mode - Prevents idle timeouts and session locks.
- Black screen recovery - Automatically recovers from RDP display issues.
- Persistent virtual display - Can start a virtual display that runs on the console session.
- Remote updates - Update supported legacy versions from the dashboard.
No firewall configuration required
Legacy Cyberdriver does not require inbound firewall ports. It connects outbound to Cyberdesk Cloud through a secure reverse tunnel.- Works behind corporate firewalls.
- No router configuration needed.
- No exposed ports on your machine.
- Secure, encrypted connection.
Installation
Windows PowerShell installation
The easiest way to install legacy Cyberdriver on Windows is using the PowerShell installer.Legacy Cyberdriver automatically disables PowerShell’s QuickEdit Mode on startup. This prevents the terminal from freezing if you accidentally click it while Cyberdriver is running.
Getting started
Connect to Cyberdesk Cloud
To connect your desktop to Cyberdesk for remote automation:YOUR_API_KEY with your API key from the Cyberdesk Dashboard.
On Windows, legacy Cyberdriver runs in stealth mode by default, so cyberdriver join continues in the background with no visible window. You’ll see a confirmation message, then your PowerShell prompt returns immediately.
Stopping Cyberdriver
To stop Cyberdriver:Naming a machine at join time
Pass--name <value> to cyberdriver join to set a human-readable display name for the machine. The value lands on Machine.name in the dashboard and is searchable via the API.
- First join (new fingerprint): the machine is created with
nameset to your value. - Subsequent joins (same fingerprint, different
--name): the existing machine’s name is updated. - Subsequent joins without
--name: the existing name is preserved. - Validation: printable ASCII only, max 128 characters, surrounding whitespace trimmed.
- Uniqueness is not enforced. Two machines can share the same name.
Parallel provisioning recipe
When you boot many VMs from the same image, every fresh registration starts asname: null and the only differentiator is the Cyberdesk machine ID. Push a name you already know per VM and look it up afterwards.
Pick a unique name per VM
For example, use the cloud-provider instance ID, hostname, or workflow run ID.
Look up the machine via API
Common issues
Cyberdriver can’t click or interact with certain apps
If Cyberdriver appears to be running but can’t click on or interact with specific applications, especially legacy enterprise software or system utilities, this is typically a permissions issue. Solution: run Cyberdriver from an Administrator PowerShell terminal:- Right-click PowerShell and select Run as Administrator.
- Navigate to your desired directory.
- Run
cyberdriver join --secret YOUR_API_KEY.
Connection issues
If Cyberdriver fails to connect or keeps disconnecting:- Verify your API key.
- Check your internet connection.
- Run
cyberdriver logsand contact support with the output.
Performance issues
If automation seems slow or unresponsive:- Close unnecessary applications.
- Check CPU usage.
- Disable Windows animations to speed up window switching.
TLS certificate issues
Legacy Cyberdriver uses your system certificate store by default, which works automatically on most machines. It also bundlescertifi as a fallback for machines missing standard root CAs.
If you see TLS/SSL certificate errors:
- Corporate networks with SSL inspection should work if your IT department’s certificate is installed in the OS trust store.
- Fresh Windows machines may be missing root certificates. Install Windows updates or contact support if
certififallback does not resolve it.
Space key not working in certain apps
Some applications, particularly legacy enterprise apps, may not respond correctly to space key input. Try the experimental space flag:VK_SPACE) instead of the hardware scan code.
Failed to load Python DLL during start or reinstall
If you see an error like this:Configuration
Legacy Cyberdriver stores persistent configuration at:%LOCALAPPDATA%\.cyberdriver\config.json
- Version: Current Cyberdriver version.
- Fingerprint: Unique Cyberdesk machine identifier.
config.json.
API endpoints
When you runcyberdriver join, legacy Cyberdriver opens a local HTTP server on port 3000 by default. If that port is already in use, it falls forward to the next available local port. It also creates a secure reverse tunnel to Cyberdesk Cloud, allowing remote access without opening inbound ports.
Display
GET /computer/display/screenshot- Capture screen.- Query params:
width,height,mode(exact,aspect_fit,aspect_fill) - Returns: PNG image.
- Query params:
GET /computer/display/dimensions- Get screen dimensions.
Keyboard
POST /computer/input/keyboard/type- Type text.- Body:
{"text": "Hello world"}
- Body:
POST /computer/input/keyboard/key- Send key combinations.- Body:
{"text": "ctrl+c"}
- Body:
Clipboard
POST /computer/copy_to_clipboard- SendCtrl+Cand return clipboard contents keyed by the requested name.- Body:
{"text": "account_number"}
- Body:
Mouse
GET /computer/input/mouse/position- Get cursor position.POST /computer/input/mouse/move- Move cursor instantly.POST /computer/input/mouse/click- Click mouse button.POST /computer/input/mouse/drag- Drag from a start position to an end position.POST /computer/input/mouse/scroll- Scroll mouse wheel vertically or horizontally.
File system
GET /computer/fs/list- List directory contents.GET /computer/fs/read- Read file contents.POST /computer/fs/write- Write file contents.
PowerShell
POST /computer/shell/powershell/exec- Execute PowerShell commands.POST /computer/shell/powershell/session- Compatibility endpoint for create/destroy session IDs.
Security considerations
Legacy feature details
Legacy-specific features such as stealth mode, console protection, keepalive mode, black screen recovery, persistent virtual display, coordinate capture, and remote updates are kept here for compatibility. Some newer Cyberdriver docs describe the RustDesk-based1.x client and may not apply to this Python executable.
If you are intentionally running legacy Cyberdriver and need exact behavior for one of these features, contact the founders at founders@cyberdesk.io.
Next steps
Quick Start Guide
Create and run your first workflow.
SDK Guides
Learn how to trigger runs programmatically.
Dashboard
Create workflows and manage machines.
Support
Get help from the Cyberdesk team.