What is Cyberdriver?
Cyberdriver is a small, simple executable that connects your desktop to Cyberdesk, enabling AI-powered automation of any desktop task. It provides a secure bridge between Cyberdesk’s cloud infrastructure and your local machine.Key Features
- Local HTTP Server - All endpoints for display, keyboard, and mouse control
- WebSocket Tunnel - Secure connection to Cyberdesk cloud
- Screenshot Capture - With intelligent scaling modes
- Advanced Keyboard Input - Support for complex key sequences
- Automatic Reconnection - Robust connection handling with exponential backoff
No Firewall Configuration Required
Unlike traditional remote desktop solutions, Cyberdriver doesn’t require you to open any inbound firewall ports. It works through a secure reverse tunnel, connecting outbound to Cyberdesk Cloud. This means:- ✅ 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 Cyberdriver on Windows is using our PowerShell installer.Admin Privileges: Cyberdriver does not require administrator privileges by default. However, if you need to automate desktop applications that require admin rights to start (such as many legacy enterprise applications), you must run cyberdriver from an Administrator PowerShell terminal:
- Right-click on PowerShell and select “Run as Administrator”
- Navigate to your desired directory
- Run
cyberdriver join --secret YOUR_KEY
1
Run the installer in PowerShell
2
Restart PowerShell
Close and reopen your PowerShell terminal for the PATH changes to take effect. Once restarted, you’re ready to connect to Cyberdesk Cloud in the next section.
Cyberdriver automatically disables PowerShell’s QuickEdit Mode on startup. This prevents the terminal from freezing when you accidentally click on 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 actual API key from the Cyberdesk Dashboard.
When you run
cyberdriver join
, Cyberdriver connects your machine to Cyberdesk Cloud using your API key. You can view the machine in the Cyberdesk Dashboard; the machine ID is managed in the backend and not printed by the CLI.Local Development Mode
While most users will connect to Cyberdesk Cloud, you can also run Cyberdriver in standalone mode for local development and testing:http://localhost:3000
, without connecting to Cyberdesk Cloud.
Keepalive Mode
Some desktop environments suspend or lock due to inactivity, which can stop active automation. Cyberdriver offers an optional keepalive mode to simulate light, realistic user activity when no work is incoming.How it works
- Idle detection: When connected via
cyberdriver join
, Cyberdriver tracks the last time it received a request from Cyberdesk Cloud. - Threshold: If there has been no work for a configurable threshold (default: 3 minutes), keepalive triggers.
- Actions: Cyberdriver clicks near the bottom-left corner of the screen, types 2–5 short phrases with natural intervals, then presses Escape to close any UI. If your Windows Start icon isn’t in the bottom-left, you might not see anything visible, but the keepalive still works and prevents idle timeouts.
- No disruption: If a request arrives while keepalive is running, Cyberdriver waits for keepalive to finish (to close Start/Spotlight cleanly) and then processes the request immediately. After any request, keepalive remains off until the system is idle again for the threshold.
- No disruption: If a request arrives while keepalive is running, Cyberdriver waits for keepalive to finish (to close Start/Spotlight cleanly) and then processes the request immediately. After any request, keepalive remains off until the system is idle again for the threshold.
- Natural cadence: When remote keepalive activity is signaled from the host, the idle timer resets with a small random jitter (±7s) around your configured threshold.
Enable keepalive
--keepalive
: Enables keepalive mode--keepalive-threshold-minutes
: Minutes of inactivity before keepalive runs (default: 3)
Disable/Re-enable without stopping the process
Startjoin
in interactive mode to toggle the tunnel and keepalive on demand:
d
ordisable
: Disconnects the cloud tunnel and pauses keepalive. Local server stays up.e
orenable
: Reconnects the tunnel and resumes keepalive.q
orquit
: Exit cyberdriver.h
orhelp
: Show commands.
Remote Keepalive (Host + VM)
When automating a Windows VM managed by remote desktop software (RDP, Avatara, AnyDesk, etc.), the VM often locks or shuts off after inactivity. Because this is enforced at the remote desktop layer, running keepalive inside the VM may not help. Remote Keepalive solves this by running a second Cyberdriver on the host (where the remote desktop software runs) to keep the VM session active while your main Cyberdriver inside the VM is idle. Why this matters: it keeps the VM ready for work without repeatedly passing 2FA every time you want to run a workflow. Quick setup (on the host machine):- The host Cyberdriver links itself to your VM’s Cyberdriver (same organization enforced; self-links rejected).
- The host Cyberdriver won’t interfere while a workflow runs on the VM. It only runs keepalive when the VM has been idle beyond your configured threshold.
- If the VM’s own keepalive happens to be running when work arrives, Cyberdriver finishes that action before starting the workflow to avoid leaving UI elements open on the wrong screen.
- Remote activity resets the VM’s idle timer with a small random jitter (±7s) around the keepalive threshold.
- If the host Cyberdriver disconnects, the link is removed automatically. When it reconnects, the link is re-established.
Common Issues
TLS Certificate Errors
If you encounter TLS certificate errors when connecting to Cyberdesk, run this PowerShell script to install the required certificates:Fix TLS Certificate Errors
Fix TLS Certificate Errors
cyberdriver join
command.Connection Issues
If Cyberdriver fails to connect or keeps disconnecting:- Verify your API key - Make sure you’re using a valid API key from your dashboard
- Check your internet connection - Cyberdriver requires a stable internet connection
- Check application permissions - If automating admin-level apps, ensure you’re running cyberdriver from an Administrator PowerShell terminal
Performance Issues
If automation seems slow or unresponsive:- Close unnecessary applications - Free up system resources
- Check CPU usage - High CPU usage can affect automation performance
- Disable Windows animations - This can speed up window switching
Configuration
Cyberdriver stores its configuration in Windows at:%LOCALAPPDATA%\.cyberdriver\config.json
- Version: Current Cyberdriver version
- Fingerprint: Unique machine identifier
- Connection settings: Host and authentication details
API Endpoints
Cyberdriver always starts a local HTTP server on port 3000. When you usecyberdriver join
, it additionally creates a secure reverse tunnel to Cyberdesk Cloud, allowing remote access without opening any inbound ports.
The local server exposes these endpoints:
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"}
(XDO style: ‘ctrl+c’, ‘alt+tab’, ‘cmd+a’)
- Body:
Mouse
GET /computer/input/mouse/position
- Get cursor positionPOST /computer/input/mouse/move
- Move cursor instantly- Body:
{"x": 100, "y": 200}
- Body:
POST /computer/input/mouse/click
- Click mouse button- Body:
{"button": "left", "down": true/false, "x": 100, "y": 200}
- Body:
POST /computer/input/mouse/scroll
- Scroll mouse wheel (vertical or horizontal)- Body:
{"direction": "up|down|left|right", "amount": 3, "x": 100, "y": 200}
- Body:
File System
GET /computer/fs/list
- List directory contents- Query param:
path
(defaults to current directory)
- Query param:
GET /computer/fs/read
- Read file contents- Query param:
path
(required) - Returns: Base64 encoded content (100MB limit)
- Query param:
POST /computer/fs/write
- Write file contents- Body:
{"path": "/path/to/file", "content": "base64_encoded_data", "mode": "write/append"}
- Body:
PowerShell
POST /computer/shell/powershell/exec
- Execute PowerShell commands- Body:
{"command": "Get-Process", "timeout": 30, "working_directory": "C:\\"}
- Body:
POST /computer/shell/powershell/session
- Manage PowerShell sessions- Body:
{"action": "create/destroy", "session_id": "uuid"}
- Body:
Security Considerations
Cyberdriver provides remote access to your desktop. Follow these security best practices:
- Keep your API key secret - Never share or commit it to version control
- Use on trusted networks - Avoid public WiFi when possible
- Monitor active connections - Check your dashboard for unexpected activity
- Update regularly - Install Cyberdriver updates for security patches