runpod Python package, so there’s one SDK, one package to install, and one CLI. This guide shows where each part of Flash lives in the Runpod SDK and walks you through moving an existing Flash project over.
Your existing Flash code keeps working. The
runpod-flash package is still available, from runpod_flash import Endpoint continues to work, and endpoints you already deployed with Flash keep running. You don’t need to migrate today. New features land only in the runpod package.What changed at a glance
- One package. Install
runpodinstead ofrunpod-flash. The app SDK, the endpoint client, the Serverless worker SDK, and the API wrapper all ship together. - One CLI. Flash commands now run as
rp flash COMMAND. Account commands such asrp loginlive at the root of the same CLI. The CLI is also available asrunpod, sorunpod flash deployworks too. - One login.
rp loginsaves credentials to~/.runpod/config.toml, which the whole SDK reads.RUNPOD_API_KEYis the only environment variable for authentication. - An app-based API. Instead of decorating functions with
@Endpoint, you create arunpod.Appand attach resources to it with@app.queue,@app.api, or the new@app.task. - A separate runtime. The code that runs on workers now ships in its own package,
runpod-sdk-runtime, so it can be released independently of the SDK. See Runtime.
What stays the same
runpod.Endpoint("ENDPOINT_ID")and itsrun,run_sync,status, andoutputmethods work exactly as before.runpod.serverless.startand the rest of the Serverless worker SDK are unchanged.- API wrapper functions such as
runpod.create_podandrunpod.get_podsstill work. - Your credentials file and
RUNPOD_API_KEYcarry over, so you don’t need to create a new API key.
Do you need to migrate?
You can keep using Flash, or you can move to the Runpod SDK when you’re ready. Migrate if you want features that are only in the Runpod SDK:@app.taskfor running one ephemeral Pod per call, such as training or fine-tuning jobs.runpod.Secretfor reading environment values from Runpod secrets.runpod.Modelfor platform-cached model weights..spawn()and.stream()for background jobs and streamed results.rp flash logsfor following worker logs from your terminal.
Requirements
- An existing Flash project.
- Python 3.10 or higher.
- A Runpod account with a verified email address.
Step 1: Install the SDK and log in
In your project’s virtual environment, removerunpod-flash and install runpod:
flash login, your saved credentials still work and this step updates the same ~/.runpod/config.toml file.
Step 2: Update your CLI commands
Replaceflash commands in your scripts, Makefiles, and CI with their rp flash equivalents:
See the CLI reference for all commands and flags.
Step 3: Update your code
The Runpod SDK groups your resources into an app. Work through the sections below in order.Imports and the app
Replace therunpod_flash import with runpod and create an app. The app name groups your resources when you deploy.
Queue-based endpoints
Replace the@Endpoint decorator with @app.queue:
rp flash dev main.py.
Load-balanced endpoints
This is the biggest change. In Flash, you created anEndpoint instance and attached route functions to it. In the Runpod SDK, you write a class and mark it with @app.api. Methods marked with @runpod.get or @runpod.post become routes, and a method marked with @runpod.init runs once when each worker starts.
MyApi.post("/compute", {"x": 1}).
Calling functions
Hardware
TheGpuType and GpuGroup names are the same, and you can also use shorter strings:
Storage
Queue-based and load-balanced resources support one volume, mounted at
/runpod-volume. Tasks support one network volume and one global volume at different paths. Global volumes require GPU compute.
Other settings
Environment variables and secrets
You can still pass plain values inenv. To keep tokens out of your code, store them as Runpod secrets and reference them with runpod.Secret:
Existing endpoints and custom images
Step 4: Check behavior that changed
These differences don’t raise errors, so check them before you deploy:- Default worker range. Resources now default to
workers=(0, 3)instead of(0, 1), so a busy endpoint can scale to three workers. Setworkersexplicitly if you need a different limit. - No local server in dev sessions.
flash devran a local server onlocalhost:8888with an API explorer at/docs.rp flash dev main.pyruns your@runpod.local_entrypointfunction instead and streams worker logs to your terminal. Update any local testing that sent curl requests tolocalhost:8888. - Custom images work differently. You no longer need an image that implements a Serverless handler. The SDK runs your function on any image that has Python 3.
- One volume per endpoint. Lists of volumes across datacenters aren’t supported.
- Volumes keep billing. Undeploying an app doesn’t delete the network volumes it created. Delete them separately when you no longer need them.
Step 5: Test, then deploy
-
Run your migrated app once in a dev session and check the output:
-
Fix any errors, then deploy:
- Confirm your endpoints on the Serverless page in the console.
-
When the new deployment works, remove the endpoints you deployed with Flash:
Known differences
A few Flash patterns don’t work the same way in the Runpod SDK yet. If your project uses one of them, test it carefully or stay on Flash until it’s supported:- Projects split across multiple local files.
- Classes used as remote resources, other than
@app.apiclasses. - Path and query parameters on HTTP routes.
- Resources that reference an existing template or endpoint with
template=orid=.
Flash repository deprecation timeline
The standalone runpod/flash repository is deprecated and will be archived. Archiving makes the repository read-only. It doesn’t remove therunpod-flash package from PyPI, and it doesn’t affect endpoints you’ve already deployed.
The deprecation happens in two stages:
- Deprecation. Flash is part of the
runpodpackage, and the runpod/flash repository shows a deprecation notice. Therunpod-flashpackage is frozen: it keeps working but gets no new features. - Archive. The runpod/flash repository is archived and becomes read-only. The archive date is announced in the runpod/flash repository.
Next steps
- Read the SDK overview to learn about apps, resource types, and storage.
- Review the CLI reference.
- Learn about the runtime that runs your code on workers.
- Browse the examples in the runpod-python repository.