Skip to main content
Initialize a new floo project by creating a floo.app.toml config file with your service declared inline.

Arguments

Flags

Behavior

In interactive mode (default), floo init prompts for app name, service name, port, and type. It auto-detects your runtime (Node.js, Python, Go, static) and suggests defaults. In non-interactive mode (--json), NAME is required. Detection runs automatically and defaults are applied without prompts. Creates:
  • floo.app.toml — app-level configuration with your services declared inline (name, port, type, build settings). The file leads with a header comment that points to the git push deploy contract and shows where access_mode lives, so you don’t have to leave the file to find either.
  • Dockerfile — when one isn’t already present and the detected runtime has a template
  • AGENTS.md — operating notes for AI coding assistants working in this repo (only when no AGENTS.md already exists)

What happens next

floo init doesn’t deploy. After the file is written:
  1. Connect your GitHub repo: floo apps github connect <owner/repo>. This installs the webhook that auto-deploys on push.
  2. git push to your default branch — that’s the deploy. Every subsequent push deploys to dev automatically.
  3. Cut a GitHub release when you’re ready to promote a build to production.
You don’t need to run floo deploy in the regular flow. It exists for ad-hoc rebuilds (floo redeploy --rebuild) and edge cases.

Examples

Runtime auto-detection

JSON output

Errors