{"id":20978041,"url":"https://github.com/isaac-sim/isaacautomator","last_synced_at":"2026-04-09T03:01:08.704Z","repository":{"id":203175660,"uuid":"706823017","full_name":"isaac-sim/IsaacAutomator","owner":"isaac-sim","description":"Isaac Sim/Lab in AWS, Azure, Google Cloud, Alibaba Cloud","archived":false,"fork":false,"pushed_at":"2026-04-04T23:20:43.000Z","size":15046,"stargazers_count":217,"open_issues_count":6,"forks_count":31,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-04-05T01:25:37.149Z","etag":null,"topics":["alicloud","aws","azure","cloud","gcp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isaac-sim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-18T17:25:44.000Z","updated_at":"2026-04-03T17:46:41.000Z","dependencies_parsed_at":"2023-11-10T12:54:28.358Z","dependency_job_id":"d9c44d4d-dc62-4933-82b2-c5af2016f546","html_url":"https://github.com/isaac-sim/IsaacAutomator","commit_stats":{"total_commits":347,"total_committers":2,"mean_commits":173.5,"dds":"0.21037463976945248","last_synced_commit":"791938a846940dcd6b9fe2e075d2eec90f9aada2"},"previous_names":["nvidia-omniverse/isaacsim-automator","isaac-sim/isaacautomator"],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/isaac-sim/IsaacAutomator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaac-sim%2FIsaacAutomator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaac-sim%2FIsaacAutomator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaac-sim%2FIsaacAutomator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaac-sim%2FIsaacAutomator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isaac-sim","download_url":"https://codeload.github.com/isaac-sim/IsaacAutomator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaac-sim%2FIsaacAutomator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31583290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alicloud","aws","azure","cloud","gcp"],"created_at":"2024-11-19T05:04:07.200Z","updated_at":"2026-04-09T03:01:08.689Z","avatar_url":"https://github.com/isaac-sim.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Isaac Automator](src/banner.png)\n\n# Isaac Automator (v4)\n\nIsaac Automator allows quick deployment of Isaac Sim, Isaac Lab, and Isaac Lab Arena to public clouds (AWS, GCP, Azure, and Alibaba Cloud are currently supported).\n\nThe result is a fully configured deployed Isaac Workstation — a remote desktop cloud VM that you can use to develop and test robotic applications within minutes and on a budget. Isaac Automator supports a variety of GPU instances and stop/start functionality to save on cloud costs and provides tools to aid your workflow (uploading and downloading data, autorun, deployment management, etc.).\n\n- [TLDR ;)](#tldr-)\n- [Installation](#installation)\n  - [Installing Docker](#installing-docker)\n  - [Building the Container](#building-the-container)\n    - [Linux/macOS](#linuxmacos)\n    - [Windows](#windows)\n- [Usage](#usage)\n  - [Running Isaac Automator](#running-isaac-automator)\n    - [Linux/macOS](#linuxmacos-1)\n    - [Windows](#windows-1)\n  - [Deploying an Isaac Workstation](#deploying-an-isaac-workstation)\n    - [AWS](#aws)\n    - [GCP](#gcp)\n    - [Azure](#azure)\n    - [Alibaba Cloud](#alibaba-cloud)\n    - [Common Deploy Options](#common-deploy-options)\n    - [Complete Options Reference](#complete-options-reference)\n  - [Credential Management](#credential-management)\n  - [Connecting to Deployed Isaac Workstation](#connecting-to-deployed-isaac-workstation)\n  - [Running Applications](#running-applications)\n    - [Isaac Sim](#isaac-sim)\n    - [Isaac Lab](#isaac-lab)\n    - [Isaac Lab Arena](#isaac-lab-arena)\n  - [Autorun Script](#autorun-script)\n  - [Standard Folders](#standard-folders)\n  - [Pausing and Resuming](#pausing-and-resuming)\n  - [Uploading Data](#uploading-data)\n  - [Downloading Data](#downloading-data)\n  - [Repairing](#repairing)\n  - [Destroying](#destroying)\n  - [Speeding Up Deployment with Pre-Built Images](#speeding-up-deployment-with-pre-built-images)\n- [Tips](#tips)\n  - [Persisting Modifications to the deployed Isaac Workstation](#persisting-modifications-to-the-deployed-isaac-workstation)\n\n## TLDR ;)\n\n```sh\n./build                       # build the Isaac Automator container (one-time)\n./run                         # enter the container\n./deploy-aws                  # deploy an Isaac Workstation (follow the prompts)\n./novnc \u003cdeployment-name\u003e     # open the remote desktop in your browser\n./destroy \u003cdeployment-name\u003e   # tear down the deployment when done\n```\n\nReplace `deploy-aws` with `deploy-gcp`, `deploy-azure`, or `deploy-alicloud` for other clouds. See sections below for details.\n\n## Installation\n\n### Installing Docker\n\nDocker should be installed on your system. Visit \u003chttps://docs.docker.com/engine/install/\u003e for installation instructions.\n\n### Building the Container\n\nPlease enter the following command in the project root directory to build the container:\n\n#### Linux/macOS\n\n```sh\n./build\n```\n\n#### Windows\n\n```sh\ndocker build --platform linux/x86_64 -t isaac_automator .\n```\n\nThis will build the Isaac Automator container and tag it as `isaac_automator`.\n\n## Usage\n\n### Running Isaac Automator\n\n#### Linux/macOS\n\nOn Linux and macOS there are two ways to run Isaac Automator commands:\n\n1. First enter the Isaac Automator container and then run the command inside the container:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./somecommand\n```\n\n2. Simply prepend the command with `./run`, like so:\n\n```sh\n./run ./somecommand \u003cparameters\u003e\n```\n\nfor example:\n\n```sh\n./run ./deploy-aws\n./run ./destroy my-deployment\n```\n\n#### Windows\n\nOn Windows, you can run Isaac Automator commands by entering the container first and then running the command inside the container, like so:\n\n(enter Isaac Automator container)\n\n```sh\ndocker run --platform linux/x86_64 -it --rm -v .:/app isaac_automator bash\n```\n\n(run the command inside the container)\n\n```sh\n./somecommand\n```\n\n### Deploying an Isaac Workstation\n\n#### AWS\n\n\u003cdetails\u003e\n  \u003ca name=\"#aws-permissions\"\u003e\u003c/a\u003e\n  \u003csummary\u003eEnabling Access Permissions\u003c/summary\u003e\n\n  You need _AmazonEC2FullAccess_ permissions enabled for your AWS user. You can enable those in the [Identity and Access Management (IAM) section](https://console.aws.amazon.com/iamv2/home#/home) of the AWS console, as follows:\n\n  1. Go to \u003chttps://console.aws.amazon.com/iamv2/home#/home\u003e\n  2. Click \"Access Management\" \\\u003e \"Users\" in the left menu\n  3. Search for your user name\n  4. Under \"Permissions\" tab click \"Add permissions\"\n  5. Choose \"Attach existing policies directly\"\n  6. Search for _AmazonEC2FullAccess_, check the box next to it, click \"Next\"\n  7. Click \"Add permissions\"\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003ca name=\"#aws-access-creds\"\u003e\u003c/a\u003e\n  \u003csummary\u003eGetting Access Credentials\u003c/summary\u003e\n  You will need an _AWS Access Key_ and _AWS Secret Key_ for an existing account. You can obtain those in the [Identity and Access Management (IAM) section](https://console.aws.amazon.com/iamv2/home#/home) of the AWS console.\n\u003c/details\u003e\n\nIf you have completed the above steps or already have your permissions and credentials set up, run the following command in the project root directory:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./deploy-aws\n```\n\nOn the first run (or when credentials expire), you will be prompted to enter your AWS credentials (via `aws configure`). The credentials are stored in `state/.aws/` and persist across Isaac Automator restarts.\n\nTip: Run `./deploy-aws --help` to see more options.\n\n#### GCP\n\n\u003cdetails\u003e\n  \u003csummary\u003eSetting Up GCP Access\u003c/summary\u003e\n\n  You will be prompted to log in with your Google account (`gcloud auth login`) during the first deployment. The credentials are stored in `state/.gcp/` and persist across container restarts.\n\n  Make sure you have a GCP project with Compute Engine API enabled and sufficient GPU quota in the target zone.\n\u003c/details\u003e\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./deploy-gcp\n```\n\nTip: Run `./deploy-gcp --help` to see more options.\n\n#### Azure\n\n\u003cdetails\u003e\n  \u003csummary\u003eSetting Up Azure Access\u003c/summary\u003e\n\n  You will be prompted to log in with your Azure account (`az login`) during the first deployment. The credentials are stored in `state/.azure/` and persist across container restarts.\n\n  If you have multiple subscriptions, select the desired one before deploying:\n\n  ```sh\n  # inside container:\n  az login\n  az account show --output table       # list subscriptions\n  az account set --subscription \"\u003csubscription_name\u003e\"\n  ./deploy-azure --no-login\n  ```\n\u003c/details\u003e\n\nIf you have a single subscription:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./deploy-azure\n```\n\nTip: Run `./deploy-azure --help` to see more options.\n\n#### Alibaba Cloud\n\n\u003cdetails\u003e\n  \u003ca name=\"#alicloud-access-creds\"\u003e\u003c/a\u003e\n  \u003csummary\u003eGetting Access Credentials\u003c/summary\u003e\n  You will need an _Access Key_ and _Secret Key_ for an existing Alibaba Cloud account. You can obtain those in the [AccessKey Management](https://usercenter.console.aliyun.com/#/manage/ak) section of the Alibaba Cloud console.\n\u003c/details\u003e\n\nOnce you have prepared the access credentials, run the following command in the project root directory:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./deploy-alicloud\n```\n\nTip: Run `./deploy-alicloud --help` to see more options.\n\nGPU-accelerated instances with NVIDIA A100, A10, and T4 GPUs are supported. You can find the complete list of instance types, availability, and pricing at \u003chttps://www.alibabacloud.com/help/en/ecs/user-guide/gpu-accelerated-compute-optimized-and-vgpu-accelerated-instance-families-1\u003e. Please note that vGPU instances are not supported.\n\n#### Common Deploy Options\n\nAll `deploy-*` commands accept the deployment name as an optional positional argument:\n\n```sh\n./deploy-aws my-deployment\n# equivalent to:\n./deploy-aws --deployment-name my-deployment\n```\n\nRun `./deploy-\u003ccloud\u003e --help` to see the full list of options. Key options include:\n\n- `--existing` — What to do if a deployment with the same name already exists. Choices:\n  - `ask` (default) — prompt interactively\n  - `repair` — fix a broken deployment without changing parameters\n  - `modify` — update parameters and attempt to update existing cloud resources\n  - `replace` — delete old cloud resources first, then redeploy\n  - `run_ansible` — re-run software configuration (Ansible) only\n- `--instance-type` — Cloud VM instance type (each cloud has its own supported list and default).\n- `--isaacsim` / `--isaaclab` / `--isaaclab-arena` — Git ref for Isaac Sim / Isaac Lab / Isaac Lab Arena version, or `no` to skip installation.\n- `--from-image` — Deploy from a pre-built VM image to speed up provisioning (not supported on GCP).\n- `--in-china` — Use local mirrors for deployments in China. Choices: `auto` (default), `yes`, `no`.\n- `--prefix` — Prefix for created cloud resource names (default: `isaacautomator`).\n- `--ingress-cidrs` — CIDR blocks for allowed ingress traffic, comma-separated. Use `myip` for your current public IP, or `myip/16`, `myip/24` for subnets.\n\nGCP additionally supports `--isaac-workstation-gpu-count` (choices: `1`, `2`, `4`, `8`; default: `1`) to control the number of GPUs attached to the instance:\n\n- N1 instances: up to 4x NVIDIA T4\n- G2 instances: up to 8x NVIDIA L4\n- G4 instances: up to 8x NVIDIA RTX PRO 6000\n\n\u003cdetails\u003e\n\u003csummary\u003edeploy-aws options\u003c/summary\u003e\n\n#### Complete Options Reference\n\n```\nOptions:\n  --debug / --no-debug          Enable debug output.  [default: no-debug]\n  --prefix TEXT                 Prefix for all cloud resources.  [default: isaacautomator]\n  --from-image / --not-from-image\n                                Deploy from pre-built image, from bare OS\n                                otherwise.  [default: not-from-image]\n  --in-china [auto|yes|no]      Is deployment in China? (Local mirrors will be\n                                used.)  [default: auto]\n  --deployment-name TEXT        Name of the deployment.  [default: \u003crandom\u003e]\n  --ingress-cidrs TEXT          CIDR blocks for ingress traffic, comma\n                                separated. \"myip\" for your public IP.\n                                [default: 0.0.0.0/0]\n  --existing [ask|repair|modify|replace|run_ansible]\n                                What to do if deployment already exists.\n                                [default: ask]\n  --isaacsim TEXT               Git ref at github.com/isaac-sim/IsaacSim, or\n                                \"no\".  [default: v6.0.0-dev2]\n  --isaaclab TEXT               Git ref at github.com/isaac-sim/IsaacLab, or\n                                \"no\".  [default: v3.0.0-beta]\n  --isaaclab-arena TEXT         Git ref at\n                                github.com/isaac-sim/IsaacLab-Arena, or\n                                \"no\".  [default: release/0.1.1]\n  --vnc-password TEXT           Password for VNC access.  [default: \u003crandom\u003e]\n  --system-user-password TEXT   System user password.  [default: \u003crandom\u003e]\n  --ssh-port TEXT               SSH port.  [default: 22]\n  --ssh-user TEXT               OS username on the deployed instances.\n                                [default: ubuntu]\n  --upload / --no-upload        Upload user data from \"uploads/\" to cloud\n                                instances.  [default: upload]\n  --instance-type TEXT          Instance type (G4dn, G5, G6, G6e supported).\n                                [default: g6e.2xlarge]\n  --region TEXT                 AWS Region.  [default: us-east-1]\n\nNote: AWS credentials are managed via `aws configure` and stored in\n`state/.aws/`. You will be prompted to enter them on first run or when\nthey expire.\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003edeploy-gcp options\u003c/summary\u003e\n\n```\nOptions:\n  --debug / --no-debug          Enable debug output.  [default: no-debug]\n  --prefix TEXT                 Prefix for all cloud resources.  [default: isaacautomator]\n  --in-china [auto|yes|no]      Is deployment in China? (Local mirrors will be\n                                used.)  [default: auto]\n  --deployment-name TEXT        Name of the deployment.  [default: \u003crandom\u003e]\n  --zone TEXT                   GCP zone (see cloud.google.com/compute/docs/\n                                gpus/gpu-regions-zones).\n                                [default: us-central1-a]\n  --project TEXT                GCP Project ID.  [default: from gcloud config]\n  --ingress-cidrs TEXT          CIDR blocks for ingress traffic, comma\n                                separated. \"myip\" for your public IP.\n                                [default: 0.0.0.0/0]\n  --existing [ask|repair|modify|replace|run_ansible]\n                                What to do if deployment already exists.\n                                [default: ask]\n  --isaacsim TEXT               Git ref at github.com/isaac-sim/IsaacSim, or\n                                \"no\".  [default: v6.0.0-dev2]\n  --isaaclab TEXT               Git ref at github.com/isaac-sim/IsaacLab, or\n                                \"no\".  [default: v3.0.0-beta]\n  --isaaclab-arena TEXT         Git ref at\n                                github.com/isaac-sim/IsaacLab-Arena, or\n                                \"no\".  [default: release/0.1.1]\n  --vnc-password TEXT           Password for VNC access.  [default: \u003crandom\u003e]\n  --system-user-password TEXT   System user password.  [default: \u003crandom\u003e]\n  --ssh-port TEXT               SSH port.  [default: 22]\n  --ssh-user TEXT               OS username on the deployed instances.\n                                [default: ubuntu]\n  --upload / --no-upload        Upload user data from \"uploads/\" to cloud\n                                instances.  [default: upload]\n  --instance-type [g2-standard-4|g2-standard-8|...|n1-standard-4|...|g4-standard-48|...]\n                                Instance type.  [default: g2-standard-8]\n  --isaac-workstation-gpu-count [1|2|4|8]\n                                Number of GPUs. N1: NVIDIA T4, G2: NVIDIA L4,\n                                G4: NVIDIA RTX PRO 6000.  [default: 1]\n\nNote: --from-image is not supported on GCP.\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003edeploy-azure options\u003c/summary\u003e\n\n```\nOptions:\n  --debug / --no-debug          Enable debug output.  [default: no-debug]\n  --prefix TEXT                 Prefix for all cloud resources.  [default: isaacautomator]\n  --from-image / --not-from-image\n                                Deploy from pre-built image, from bare OS\n                                otherwise.  [default: not-from-image]\n  --in-china [auto|yes|no]      Is deployment in China? (Local mirrors will be\n                                used.)  [default: auto]\n  --deployment-name TEXT        Name of the deployment.  [default: \u003crandom\u003e]\n  --region TEXT                 Azure region.  [default: westus3]\n  --ingress-cidrs TEXT          CIDR blocks for ingress traffic, comma\n                                separated. \"myip\" for your public IP.\n                                [default: 0.0.0.0/0]\n  --existing [ask|repair|modify|replace|run_ansible]\n                                What to do if deployment already exists.\n                                [default: ask]\n  --isaacsim TEXT               Git ref at github.com/isaac-sim/IsaacSim, or\n                                \"no\".  [default: v6.0.0-dev2]\n  --isaaclab TEXT               Git ref at github.com/isaac-sim/IsaacLab, or\n                                \"no\".  [default: v3.0.0-beta]\n  --isaaclab-arena TEXT         Git ref at\n                                github.com/isaac-sim/IsaacLab-Arena, or\n                                \"no\".  [default: release/0.1.1]\n  --vnc-password TEXT           Password for VNC access.  [default: \u003crandom\u003e]\n  --system-user-password TEXT   System user password.  [default: \u003crandom\u003e]\n  --ssh-port TEXT               SSH port.  [default: 22]\n  --ssh-user TEXT               OS username on the deployed instances.\n                                [default: ubuntu]\n  --upload / --no-upload        Upload user data from \"uploads/\" to cloud\n                                instances.  [default: upload]\n  --instance-type TEXT          VM type (T4 and A10 supported).\n                                [default: Standard_NV36ads_A10_v5]\n  --login / --no-login          Login into Azure before deploying.\n                                [default: login]\n  --resource-group TEXT         Azure resource group (created if empty).\n                                [default: \"\"]\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003edeploy-alicloud options\u003c/summary\u003e\n\n```\nOptions:\n  --debug / --no-debug          Enable debug output.  [default: no-debug]\n  --prefix TEXT                 Prefix for all cloud resources.  [default: isaacautomator]\n  --in-china [auto|yes|no]      Is deployment in China? (Local mirrors will be\n                                used.)  [default: auto]\n  --deployment-name TEXT        Name of the deployment.  [default: \u003crandom\u003e]\n  --ingress-cidrs TEXT          CIDR blocks for ingress traffic, comma\n                                separated. \"myip\" for your public IP.\n                                [default: 0.0.0.0/0]\n  --existing [ask|repair|modify|replace|run_ansible]\n                                What to do if deployment already exists.\n                                [default: ask]\n  --isaacsim TEXT               Git ref at github.com/isaac-sim/IsaacSim, or\n                                \"no\".  [default: v6.0.0-dev2]\n  --isaaclab TEXT               Git ref at github.com/isaac-sim/IsaacLab, or\n                                \"no\".  [default: v3.0.0-beta]\n  --isaaclab-arena TEXT         Git ref at\n                                github.com/isaac-sim/IsaacLab-Arena, or\n                                \"no\".  [default: release/0.1.1]\n  --vnc-password TEXT           Password for VNC access.  [default: \u003crandom\u003e]\n  --system-user-password TEXT   System user password.  [default: \u003crandom\u003e]\n  --ssh-port TEXT               SSH port.  [default: 22]\n  --ssh-user TEXT               OS username on the deployed instances.\n                                [default: ubuntu]\n  --upload / --no-upload        Upload user data from \"uploads/\" to cloud\n                                instances.  [default: upload]\n  --aliyun-access-key TEXT      Alibaba Cloud Access Key.\n                                [default: ALIYUN_ACCESS_KEY env var]\n  --aliyun-secret-key TEXT      Alibaba Cloud Secret Key.\n                                [default: ALIYUN_SECRET_KEY env var]\n  --region TEXT                 Alibaba Cloud Region ID.\n                                [default: us-east-1]\n  --instance-type TEXT          Instance type.\n                                [default: ecs.gn7i-c16g1.4xlarge]\n\nNote: --from-image is not supported on Alibaba Cloud.\n```\n\n\u003c/details\u003e\n\n### Credential Management\n\nEach cloud provider's credentials are stored inside the `state/` directory so they persist across container restarts:\n\n| Cloud         | Storage Location      | How Credentials Are Set                                                          |\n| ------------- | --------------------- | -------------------------------------------------------------------------------- |\n| AWS           | `state/.aws/`         | `aws configure` — prompted automatically when credentials are missing or expired |\n| GCP           | `state/.gcp/`         | `gcloud auth login` — prompted during the first deployment                       |\n| Azure         | `state/.azure/`       | `az login` — prompted during the first deployment                                |\n| Alibaba Cloud | Environment variables | `ALIYUN_ACCESS_KEY` and `ALIYUN_SECRET_KEY` — passed from the host via `./run`   |\n\nAll commands that interact with cloud resources (`deploy-*`, `start`, `stop`, `destroy`, `repair`) validate credentials before proceeding and prompt you to re-authenticate if they are invalid or expired.\n\n### Connecting to Deployed Isaac Workstation\n\nDeployed Isaac Workstation can be accessed via:\n\n- SSH\n- noVNC (browser-based VNC client)\n- NoMachine (remote desktop client)\n\nLook for the connection instructions at the end of the deployment command output. Additionally, this information is saved in the `state/\u003cdeployment-name\u003e/info.txt` file.\n\nYou can view available arguments with the `--help` switch for the start scripts. In most cases, you won't need to change the defaults.\n\nUse `./ssh \u003cdeployment-name\u003e` to connect to the deployed instance via SSH.\n\nUse `./novnc \u003cdeployment-name\u003e` to open the noVNC web client for the deployed instance.\n\n### Running Applications\n\nTo use the installed applications, connect to the deployed Isaac Workstation using noVNC or NoMachine. You can find the connection instructions at the end of the deployment command output. Additionally, this information is saved in the `state/\u003cdeployment-name\u003e/info.txt` file.\n\n#### Isaac Sim\n\nIsaac Sim is installed from source on the deployed Isaac Workstation. By default, it will automatically start when the instance is deployed. Alternatively, click the \"Isaac Sim\" icon on the desktop, or run the following command in a terminal on the deployed vm:\n\n```sh\n~/IsaacSim/isaac-sim.sh\n```\n\nTo install a specific version of Isaac Sim, provide a valid Git reference from \u003chttps://github.com/isaac-sim/IsaacSim\u003e as the value of the `--isaacsim` parameter to the deployment command. Use `--isaacsim no` to skip Isaac Sim installation.\n\n#### Isaac Lab\n\n[Isaac Lab](https://isaac-sim.github.io/IsaacLab/) is installed from source on the Isaac Workstation. To install a specific version of Isaac Lab, provide a valid Git reference from \u003chttps://github.com/isaac-sim/IsaacLab\u003e as the value of the `--isaaclab` parameter to the deployment command. Use `--isaaclab no` to skip Isaac Lab installation.\n\nTo run Isaac Lab CLI, use the following command in the terminal on the deployed instance:\n\n```sh\n~/IsaacLab/isaaclab.sh [options]\n```\n\n#### Isaac Lab Arena\n\n[Isaac Lab Arena](https://github.com/isaac-sim/IsaacLab-Arena) is an extension to Isaac Lab that provides multi-agent task environments and benchmarks. It is installed from source on the Isaac Workstation by default.\n\nTo install a specific version, provide a valid Git reference from \u003chttps://github.com/isaac-sim/IsaacLab-Arena\u003e as the value of the `--isaaclab-arena` parameter to the deployment command. Use `--isaaclab-arena no` to skip installation.\n\nIsaac Lab Arena is installed to `~/IsaacLab-Arena` on the deployed instance.\n\n### Autorun Script\n\nBy default, Isaac Sim will start when the cloud VM is deployed.\n\nIf you want to launch a custom application or script on startup, modify the [`uploads/autorun.sh`](uploads/autorun.sh) script (on your local machine). It will either be uploaded to the cloud VM automatically, or you can upload it manually using the `./upload` command.\n\nEvery time the cloud VM is deployed or started from a stopped state, the `autorun.sh` script will be executed.\n\nThis functionality can be useful for running batch jobs, generating data on startup, or preparing the environment for the user.\n\n### Standard Folders\n\nTwo folders are used for exchanging data between your local machine and the deployed instance:\n\n| Local (Isaac Automator) | Remote (Isaac Workstation) | Purpose                                                                                     |\n| ----------------------- | -------------------------- | ------------------------------------------------------------------------------------------- |\n| `uploads/`              | `~/uploads`                | Data you send to the instance. Synced automatically on deploy, or manually with `./upload`. |\n| `results/`              | `~/results`                | Data you pull back from the instance with `./download`.                                     |\n\n### Pausing and Resuming\n\nYou can stop and restart instances to save on cloud costs. To do so, run the following commands:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./stop \u003cdeployment-name\u003e\n./start \u003cdeployment-name\u003e\n```\n\nBy default, `./start` re-runs necessary Ansible steps (such as ECC disabling, etc) after starting the VM. If you're in a rush, use `--quick` to skip that and only run the autorun script:\n\n```sh\n./start \u003cdeployment-name\u003e --quick\n```\n\n### Uploading Data\n\nYou can upload user data from the `uploads/` folder (in the project root) to the deployment by running the following command:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./upload \u003cdeployment-name\u003e\n```\n\nData will be uploaded to the `/home/ubuntu/uploads` directory by default (the `ubuntu` part of the path depends on the configured `default_ssh_user`), on all deployed instances. You can change this by passing the `--remote-dir` argument to the command. By default, files deleted locally are also deleted on the remote side during sync; use `--no-delete` to keep remote files that no longer exist locally. Run `./upload --help` to see more options.\n\n### Downloading Data\n\nYou can download user data to the `results/` folder (in the project root) from deployed instances by running the following command:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./download \u003cdeployment-name\u003e\n```\n\nData will be downloaded from the `/home/ubuntu/results` directory by default (the `ubuntu` part of the path depends on the configured `default_ssh_user`). You can change this by passing the `--remote-dir` argument to the command. By default, local files not present on the remote side are deleted during sync; use `--no-delete` to keep them. Run `./download --help` to see more options.\n\n### Repairing\n\nIf, for some reason, the deployment cloud resources or software configuration become corrupted, you can attempt to repair the deployment by running the following commands:\n\n```sh\n# run both terraform and ansible\n./repair \u003cdeployment-name\u003e\n# just run terraform to try fixing the cloud resources\n./repair \u003cdeployment-name\u003e --no-ansible\n# just run ansible to try fixing the software configuration\n./repair \u003cdeployment-name\u003e --no-terraform\n```\n\nYou can also use `./repair` to update the ingress CIDR blocks (firewall rules) on an existing deployment:\n\n```sh\n# restrict access to your current IP\n./repair \u003cdeployment-name\u003e --ingress-cidrs myip\n# allow a /16 subnet\n./repair \u003cdeployment-name\u003e --ingress-cidrs myip/16\n# specify explicit CIDR blocks\n./repair \u003cdeployment-name\u003e --ingress-cidrs \"10.0.0.0/8,192.168.1.0/24\"\n```\n\n### Destroying\n\nTo destroy a deployment, run the following command:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./destroy \u003cdeployment-name\u003e\n```\n\n_Please note that information about the deployed cloud resources is stored in the `state/` directory. Do not delete this directory._\n\n### Speeding Up Deployment with Pre-Built Images\n\n_At the moment, only `./image-aws` command is implemented. Versions for other clouds are in the works._\n\nYou can build pre-built AWS AMIs to speed up future deployments (using the `--from-image` flag). The `image-aws` command wraps Packer and handles AWS credential management automatically:\n\n```sh\n# enter Isaac Automator container\n./run\n# inside container:\n./image-aws\n```\n\nThe AMI name defaults to the current date and is automatically prefixed with `isaacautomator.isaacworkstation.`. When deploying with `--from-image`, Terraform picks the most recent AMI matching this prefix.\n\nKey options:\n\n- The image name can be passed as a positional argument: `./image-aws my-image-name`\n- `--instance-type` — Instance type for the Packer build (G4dn, G5, G6, G6e supported; default: `g6e.2xlarge`)\n- `--region` — AWS Region, can be entered as `us-east-1` or `US East 1` (default: `us-east-1`)\n- `--existing` — What to do if an AMI with the same name already exists: `overwrite` or `fail` (default: `fail`)\n- `--isaacsim` / `--isaaclab` / `--isaaclab-arena` — Git refs for the versions to bake into the image\n\nTip: Run `./image-aws --help` to see all options.\n\n## Tips\n\n### Persisting Modifications to the deployed Isaac Workstation\n\nIsaac Workstation local data is persistent and survives `./stop`/`.start` cycles.\n\nFor changes that need to be re-applied automatically on every deployment or `./start`, modify the [`uploads/autorun.sh`](uploads/autorun.sh) script. This script runs each time the instance is deployed or started (see [Autorun Script](#autorun-script)).\n\nFor example, you can use `autorun.sh` to install additional Python packages, apply patches, or run setup scripts:\n\n```sh\n#!/bin/sh\n\n# This script is executed when\n# 1. the VM is first deployed\n# 2. the VM is started after being stopped\n\nSELF_DIR=\"$(dirname $0)\"\n\n# example: install additional packages into the Isaac Lab environment\npip install torch\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaac-sim%2Fisaacautomator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisaac-sim%2Fisaacautomator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaac-sim%2Fisaacautomator/lists"}