Prerequisites
- Python 3.11 or 3.12, with
uv,pipx, orpipto install the CLI. - A Freesolo API key, created in your dashboard at
freesolo.co. Commands that contact Freesolo, including
server-side
--dry-run, authenticate with it. Local--costdoes not submit.
Step 1: Install the CLI
Step 2: Log in
FREESOLO_API_KEY instead of passing --api-key.
Step 3: Scaffold a project
Already have a published environment id, yours or one shared with you? Set it as[environment] id in your config and skip ahead to step 5.
flash env setup leaves any file that already exists
untouched.
Already have a training loop?
Already have a training loop?
Skip the hand-editing. Point your coding agent (Claude Code, Cursor, etc.) at
the environment guide and have it find and port your
existing reward and dataset into
environment.py. A prompt to start from:Step 4: Publish your environment
An environment is the task and reward your model trains on. Publish the scaffolded one to the managed Environments Hub to get an id:your-org/starter.
Step 5: Configure and validate your run
Openconfigs/sft.toml and set the one thing that’s yours, the environment id
from the previous step:
configs/sft.toml
--dry-run runs server-side
submit-time preflights, creates a run with state=dry_run, reports client/server
[train] schema mismatches, allocates no GPU, and incurs no charge:
--cost remains local: it prints the pre-flight USD cost and exits
without submitting:
Step 6: Train
This is the first step that can spend money. At submit time Flash checks your
org balance against the pre-flight estimate, then bills successful runs at the
quoted Flash cost. Setup and cold start time are reported separately for
observability and are not billed.
Ctrl-C to detach. The run keeps going
on the server, and you can
follow it again any time:
done when training finishes.
Start small: finish one short run end to end before you scale up. When you do,
raise train.epochs or train.max_examples and change little else.
Step 7: Deploy
Serve the trained adapter on Freesolo’s managed serving service. Serving is billed per token for requests you send:Step 8: Chat
Essential commands
The commands you used above, plus the ones you’ll reach for next. Runflash <command> --help for the full set of flags, or see the
CLI reference.
Next steps
How Flash works
The loop behind a run, and the concepts each command refers to.
Training in depth
SFT, GRPO, and OPD, config options, monitoring, and cost.
Build an environment
Replace the starter task with your own data and reward.
Deploy & chat
Serving billing and the OpenAI-compatible API.