Skip to main content
Initialize a new floo project by creating floo.app.toml and floo.service.toml config files.
floo init [NAME]

Arguments

ArgumentDescription
NAMEApp name. Prompted interactively if omitted. Required in --json mode.

Flags

FlagDescriptionDefault
--path PATHProject directory. (current directory)

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 two files:
  • floo.app.toml — app-level configuration (name, services)
  • floo.service.toml — service-level configuration (port, type, build settings)

Examples

# Interactive — prompts for name, port, type
floo init

# Non-interactive with explicit name
floo init my-app --json

# Initialize in a specific directory
floo init my-app --path ./my-project

# Agent workflow: init and extract detected runtime
floo init my-app --json 2>/dev/null | jq -r '.data.detection.runtime'

Runtime auto-detection

FileRuntimeFramework
package.json + nextNode.jsNext.js
package.json + viteNode.jsVite
package.json + expressNode.jsExpress
requirements.txt / pyproject.tomlPythonFastAPI, Flask, Django
go.modGo
index.html (no backend)Static

JSON output

{
  "success": true,
  "data": {
    "app_name": "my-app",
    "files_written": ["floo.app.toml", "floo.service.toml"],
    "detection": {
      "runtime": "nodejs",
      "framework": "Next.js",
      "confidence": "high"
    },
    "service": {
      "name": "web",
      "type": "web",
      "port": 3000
    }
  }
}

Errors

CodeMeaning
INVALID_PATHPath is not a valid directory
CONFIG_EXISTSfloo.app.toml already exists in the target directory
MISSING_APP_NAMENAME argument is required in --json mode