Droid Computers
Persistent compute environments hosted and managed by Factory for Droid.
Droid Computers are persistent compute environments hosted and managed by Factory that Droid can connect to and work on across sessions. They retain state: installed packages, files, running services, and configuration all persist between sessions.
Factory provisions and maintains the underlying cloud environment. To work on a computer you already manage, use Remote Control instead.
Using Droid Computers in sessions
Factory App
In the new session modal, select the Computer tab, pick an active Droid Computer, set a working directory (for example, /home/factory-user/projects/my-app), and start your session.
Connection status (connecting / connected / error) is shown in real time.
Slack
Droid Computers can also be selected when creating sessions via the Slack integration.
Managing Droid Computers
From Settings → Droid Computers, you can:
- Browse available Droid Computers
- Rename a Droid Computer
- Delete a Droid Computer
- Open the detail page for status and connection information
Use your own computer
Remote Control connects a computer you already manage, such as a VPS, cloud VM, workstation, or on-prem server. It is a separate option from Factory-managed Droid Computers.
Create a Droid Computer
The fastest way to get started is to create a Droid Computer directly from the Factory App.
- 1Navigate to Settings → Droid Computers.
- 2Click Create.
- 3In the creation wizard, give your Droid Computer a name. Review the owner and available provider options; eligible managers and owners can select a service account as the owner.
- 4When Environments are enabled for your organization, choose a Ready Environment or start from a clean computer. The Environment selector is not shown in the bulk scratch-computer flow for delegation worker pools.
- 5Review the repositories and dependency setup options, then confirm Create. Repositories already included in an Environment do not need to be selected again; you can add more for this computer.
A computer created from an Environment starts from its successful snapshot and retains its own subsequent state. Later Environment rebuilds do not update an existing computer. See Run Droids on an Environment for this option.
Factory provisions the computer using the chosen provider and source. Provisioning progress is tracked live in the UI through the following steps:
- 1Creating Droid Computer: allocating the cloud Droid Computer
- 2Setting up user: creating the
factory-useraccount with sudo access - 3Configuring environment: writing environment config, SSH keys, and service files
- 4Installing Droid: downloading and installing the Droid binary
- 5Starting services: launching the SSH and Droid daemon services
Once provisioning completes, the Droid Computer status changes to Active and it becomes available for use in sessions. Platform-managed Droid Computers auto-pause when idle and auto-resume when a new session targets them. They also expose provisioning details, resource metrics, and remote update flows.
CLI commands
General
| Command | Description |
|---|---|
droid computer list | List all Droid Computers (shows name, ID, status; marks current machine) |
droid computer ssh <name> | Open an interactive SSH session to any Droid Computer |
droid computer port-forward <name> <mappings...> | Forward local ports to a Droid Computer over the relay |
Your own computer
To register and connect a computer you manage, see Remote Control.
SSH options
The ssh subcommand supports the following flags:
--proxy: Run as a stdio proxy (for use as aProxyCommand)--port <port>: Target port on the remote machine (default: 22)--debug: Enable verbose connection logging
Port forwarding
droid computer port-forward <name> <mappings...> forwards local TCP ports to a Droid Computer over the same relay tunnel used by droid computer ssh -- no direct port exposure is required. Managed Droid Computers are woken automatically before the connection is established.
Mappings can be passed multiple at a time in one command:
LOCAL:REMOTE-- bindLOCALlocally and forward toREMOTE(e.g.8080:80)REMOTE-- use the same port on both sides (e.g.5432):REMOTE-- pick a random free local port (e.g.:9000)
# Forward local 8080 to remote 80, and local 5432 to remote 5432
droid computer port-forward mycomputer 8080:80 5432The port-forward subcommand supports the following flags:
--address <addr>-- Local address to bind (default:127.0.0.1)--debug-- Enable debug output
Only TCP is supported.
Monitoring
Click on any Droid Computer in Settings → Droid Computers to open its detail page. For platform-managed Droid Computers, the detail page shows live resource metrics:
CPU usage- Percentage utilization over time.
Memory usage- Used vs. total memory.
Disk usage- Used vs. total disk space.
The detail page also shows the current daemon version and connection status. Possible Droid Computer statuses are:
Provisioning- Initial setup in progress.
Active- Ready for sessions.
Error- Provisioning or runtime failure.
Updating the daemon
The Droid Computer detail page displays the running daemon version alongside the latest available version. When an update is available, an Update button appears. Clicking it triggers a remote update: the daemon downloads the new binary, restarts, and reconnects automatically.
Git credentials
If you have a personal GitHub integration with Factory, credentials are added automatically for authenticated repository access. When you add new GitHub App installations or change repository access, credentials are refreshed automatically on the next session connection.
SSH & IDE integration
droid computer ssh <name> establishes a secure WebSocket tunnel through the daemon. No direct SSH port exposure is required. Factory generates and manages a dedicated Ed25519 SSH key pair (stored in ~/.factory/.ssh/), separate from your personal SSH keys. The public key is injected on each connection for passwordless authentication.
VS Code Remote-SSH
You can use droid computer ssh as a ProxyCommand for VS Code Remote-SSH. Add the following to your ~/.ssh/config:
Host factory-*
ProxyCommand droid computer ssh %h --proxy
User factory-user
StrictHostKeyChecking accept-new
UserKnownHostsFile ~/.factory/.ssh/known_hosts
IdentityFile ~/.factory/.ssh/id_ed25519
IdentitiesOnly yesThe wildcard factory-* host applies to every Droid Computer, and %h passes the host name through to the CLI, so you connect to factory-<computer-name> (for example, factory-mycomputer) without adding a stanza per computer. Host keys are recorded on first connect (StrictHostKeyChecking accept-new) in a dedicated ~/.factory/.ssh/known_hosts file, so a changed key surfaces an SSH warning instead of being accepted silently.
This lets you open a full VS Code remote session on your Droid Computer.
Security
- Firewall: Platform-managed Droid Computers use iptables rules to restrict inbound traffic to the daemon port only; all other ports are blocked by default. Note that
factory-userhas passwordless sudo access and could modify these rules. For a hard network-level boundary, use relay mode, which blocks all public traffic at the infrastructure level. - SSH hardening: Root login and password authentication are disabled.
- Relay mode: Droid Computers can be configured to use relay mode at the organization level for stricter network isolation.
- Git credentials: Configured automatically per-user for authenticated repository access on platform-managed Droid Computers.