Skip to main content
Claude Code writes the floo config, pushes it, and connects your GitHub repository. floo builds the image, provisions Postgres, runs your migrations, and serves the app at https://<app>-dev.getfloo.app. Requires a FastAPI project in a GitHub repository with a Dockerfile that starts uvicorn on 0.0.0.0:$PORT. The FastAPI guide has one to copy, and floo init offers to write one when none exists.

Set up your agent

Install the floo skill and allow floo commands, from the project root:
In .claude/settings.json:
floo still enforces your account’s role and any approval policy. See Agent setup.

Agent prompt

Paste into Claude Code. Replace my-fastapi-app with your app name.
Claude Code asks you for two browser steps: installing the floo GitHub App and authorizing floo with GitHub. Everything else runs in the terminal.

floo.app.toml

What the prompt produces:
floo.app.toml
[managed.default] provisions one Postgres database per environment and injects DATABASE_URL and PG* into the service. migrate_command runs with the new image before traffic moves to it; a failed migration stops the deploy. Drop the line if the repo has no Alembic setup. For the async SQLAlchemy engine that reads DATABASE_URL with TLS kept on, see FastAPI: add a Postgres database.

CLI commands

The same deploy by hand. Replace owner/my-fastapi-app with your repository.
floo apps github setup needs the floo GitHub App installed on the repository’s owner first. See Quickstart steps 2 and 3.

Verify

deploys status reports the live URL once the deploy is live. db schema lists the tables your migrations created in the dev database. Replace /health with any route your app serves. Every push to main deploys to dev. To publish to prod, run gh release create v1 --repo <owner>/<repo>; prod gets its own database. See Environments.

Next steps

Build a FastAPI app

Dockerfile, async engine, App sign-in, custom domain, and local dev.

Postgres

Injected variables, pgvector, preview branches, and migrations across dev and prod.

App sign-in

Put invite-only sign-in in front of the app with one config line.

Agent setup

JSON output, verification, and credential rules for agents.