Develop locally
Step through your function with local inputs and your usual debugger.
@app.endpoint(route="/count")def count_words(text): words = text.split() return {"words": len(words)}"hello cloud"["hello", "cloud"]Building with agents is fast. Deploying with LazyCloud is too.
Step through your function with local inputs and your usual debugger.
@app.endpoint(route="/count")def count_words(text): words = text.split() return {"words": len(words)}"hello cloud"["hello", "cloud"]Call the function on cloud compute and inspect its returned value.
{"words": 2}Publish the function as an HTTPS endpoint for your application.
{"words": 2}APIs
Deploy a Python function as an API, or bring your ASGI app with its routes and middleware. LazyCloud handles TLS, scaling, and idle shutdown.
/review18 active141 ms median/generate12 active128 ms median/status6 active105 ms medianJobs and pipelines
Send tests, evals, data processing, and GPU jobs to the cloud. Connect tasks with dependencies and follow their logs and saved results.
Deployments / release_evals · productionReady · 0:005 tasks · 0 running—————Background jobs and crons
Submit background tasks or add a cron schedule to a function. Each run has retries, cancellation, and live logs.
Agent sandboxes
Run code and tests in isolation. Control files, processes, ports, Docker, snapshots, and network access.
Deploy without managing servers. LazyCloud provisions CPU capacity and scales down when idle.
Deploy without managing servers. LazyCloud provisions CPU capacity and scales down when idle.
Use CPU and GPU capacity in your AWS account. Manage deployments through LazyCloud.
Connect your Linux servers, VMs, or GPU machines. Deploy through the same Python API.
Call deployed functions, endpoints, and ASGI routes from Python with autocomplete and type checking. ASGI route types come from OpenAPI.
from lazycloud import App
from pydantic import BaseModel
app = App("review_app")
class Review(BaseModel):
summary: str
risks: list[str]
@app.endpoint(route="/review")
def review_patch(diff: str) -> Review:
added = [line[1:] for line in diff.splitlines()
if line.startswith("+") and not line.startswith("+++")]
risks = ["Review added TODOs"] if any("TODO" in line for line in added) else []
return Review(summary=f"{len(added)} added lines", risks=risks)
@app.function(retries=3)
def run_checks(commit_sha: str) -> dict[str, bool]:
valid = len(commit_sha) == 40 and all(c in "0123456789abcdef" for c in commit_sha)
return {"valid_commit_sha": valid}
Serve your model through an OpenAI-compatible API.
View project
Train and save a reusable vision model.
View project
Handle uploads and run OCR in background tasks.
View project
Test code inside an isolated sandbox.
View project
Fan out work over S3 partitions and combine the results.
View projectTake the code you built locally and put it to work in the cloud. Deploy an API, launch a background job, or schedule its next run.