Skip to main content
The example is a discount-approval queue: sales reps submit requests, finance approves them, and an agent reads the queue each morning. floo puts invite-only sign-in in front of the UI, tells the app each user’s role, stores the requests in Postgres, and admits the agent on one route with a scoped app API key. Requires the tool’s source in a GitHub repository with a Dockerfile that serves on 0.0.0.0:$PORT. The examples use FastAPI on port 8000; any stack reads the same headers.

Set up your agent

For Claude Code, also run floo skills install --path .claude/skills/floo. Other agents: Agent setup.

Agent prompt

Paste into your agent. Replace discount-approvals with your app name.

floo.app.toml

floo.app.toml
Every path goes through App sign-in except /api/agent, which accepts only an app API key holding the approvals.read scope. floo strips the key before forwarding the request. Sign-in is invite-only: nobody gets in by email domain or self-signup.

Check the role in code

The gateway sends X-Floo-User-Role as member or admin on every signed-in request:
app/auth.py
Add Depends(require_admin) to the approve route. Reps get member; finance gets admin.

CLI commands

The same deploy by hand. Replace owner/discount-approvals 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. Invite the team. App users do not use builder seats and get no access to floo itself:
Give the agent a key for /api/agent:
The raw key prints once. Store it in the agent’s secret store as APPROVALS_KEY; never paste it into a prompt or commit it.

Verify

Opening https://discount-approvals-dev.getfloo.app in a private window shows floo’s sign-in page. apps members lists each accepted invitee with their role. The curl returns the pending requests; without the header it returns 401. Every push to main deploys to dev, which has its own database. To publish to prod, run gh release create v1 --repo <owner>/<repo>. See Environments.

Next steps

App sign-in

Identity headers, sign-out, sign-in policy, and revoking a member.

App API keys

Consumers, scopes, rate limits, request history, and revocation.

Postgres

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

Preview environments

Review an agent’s change on an isolated copy before it reaches the team.