{"id":50436909,"url":"https://github.com/runprism/alto","last_synced_at":"2026-05-31T17:30:56.345Z","repository":{"id":192668937,"uuid":"681839159","full_name":"runprism/alto","owner":"runprism","description":"Serverless for data practitioners. The fastest ⚡️ way to run your code in the cloud. Effortlessly run scripts, functions, and Jupyter notebooks in virtual machines.","archived":false,"fork":false,"pushed_at":"2024-02-19T13:53:04.000Z","size":1298,"stargazers_count":39,"open_issues_count":6,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T06:06:13.755Z","etag":null,"topics":["aws","cli","cloud","data","data-analysis","data-science","deployment","ec2","entrypoint","function","gcp","infrastructure","jupyter","python","serverless"],"latest_commit_sha":null,"homepage":"https://alto.mintlify.app","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/runprism.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2023-08-22T21:49:33.000Z","updated_at":"2024-12-30T22:28:26.000Z","dependencies_parsed_at":"2023-12-24T02:25:50.724Z","dependency_job_id":"603d71df-f263-4df6-9d3f-80efce828e17","html_url":"https://github.com/runprism/alto","commit_stats":{"total_commits":215,"total_committers":4,"mean_commits":53.75,"dds":"0.32093023255813957","last_synced_commit":"9c73a0cd6742632e5a5108230e689166adb6e8cf"},"previous_names":["runprism/nomad","runprism/alto"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/runprism/alto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runprism%2Falto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runprism%2Falto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runprism%2Falto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runprism%2Falto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/runprism","download_url":"https://codeload.github.com/runprism/alto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runprism%2Falto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33742185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"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":["aws","cli","cloud","data","data-analysis","data-science","deployment","ec2","entrypoint","function","gcp","infrastructure","jupyter","python","serverless"],"created_at":"2026-05-31T17:30:55.552Z","updated_at":"2026-05-31T17:30:56.340Z","avatar_url":"https://github.com/runprism.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/runprism/alto/blob/main/.github/alto.png\" alt=\"Alto logo\" style=\"width: 65%\"/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Tests](https://github.com/runprism/alto/actions/workflows/tests.yml/badge.svg)](https://github.com/runprism/alto/actions/workflows/tests.yml)\n[![PyPI version](https://img.shields.io/pypi/v/alto-dev)](https://pypi.org/project/alto-dev/)\n![Python version](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11-blue)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![Checked with flake8](https://img.shields.io/badge/flake8-checked-blueviolet)](https://flake8.pycqa.org/en/latest/)\n\n\n\u003c/div\u003e\n\n# Welcome to Alto!\nAlto is the easiest way to run any code on the cloud! Alto is designed to be used with Prism projects, but it can be used to any arbitrary code (e.g., functions, scripts, Jupyter notebooks, or entire projects)!\n\n\n## Getting Started\n\nAlto can be installed via ```pip```. Alto requires Python \u003e= 3.8.\n\n```\npip install --upgrade pip\npip install alto-dev\n```\n\nThen, initialize a configuration file with the `alto init` CLI command. This command will automatically prompt you for all the information needed to configure your cloud environment.\n```\n$ alto init\n\nWhat type of cloud environment do you want to use [ec2]? ec2\nWhat would you like the name of your configuration file to be (default: alto.yml)?\n\n\u003cHH:MM:SS\u003e | INFO | Building configuration file...\n\u003cHH:MM:SS\u003e | INFO | Done!\n```\n\nTo run your project on your cloud environment, use the `alto build` command. Under the hood, this command:\n1. Builds the cloud environment according to instructions contained in the configuration file, and\n2. Executes your project on the cloud.\n```\n$ alto build -f alto.yml\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[build]  | Created key pair my_cloud_agent\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[build]  | Created security group with ID sg-XXXXXXXXXXXXXXXXX in VPC vpc-XXXXXXXXXXXXXXXXX\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[build]  | Created EC2 instance with ID i-XXXXXXXXXXXXXXXXX\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[build]  | Instance i-XXXXXXXXXXXXXXXXX is pending... checking again in 5 seconds\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[build]  | Instance i-XXXXXXXXXXXXXXXXX is pending... checking again in 5 seconds\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[build]  | Instance i-XXXXXXXXXXXXXXXXX is pending... checking again in 5 seconds\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[build]  | Instance i-XXXXXXXXXXXXXXXXX is pending... checking again in 5 seconds\n...\n...\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[run]    | Done!\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[delete] | Deleting key-pair my_cloud_agent at /../../../my_cloud_agent.pem\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[delete] | Deleting instance i-XXXXXXXXXXXXXXXXX\n\u003cHH:MM:SS\u003e | INFO  | my_cloud_agent[delete] | Deleting security group sg-XXXXXXXXXXXXXXXXX\n```\n\nAlternatively, you could use the `alto apply` command to first build the cloud environment and then use `alto run` to actually run the code.\n\nCheck out our [documentation](https://docs.tryalto.dev/) to see the full list of CLI command and their usage!\n\n## Cloud environments\nAlto currently supports the following cloud environments (which we call \"Agents\"):\n- **ec2**\n\n## Product Roadmap\n\nWe're always looking to improve our product. Here's what we're working on at the moment:\n\n- **Additional Agents**: GCP Virtual Machines, EMR clusters, Databricks clusters, and more!\n- **Managed service**: Managed platform to easily view, manage, and schedule your different cloud deployments\n\nLet us know if you'd like to see another feature!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunprism%2Falto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frunprism%2Falto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunprism%2Falto/lists"}