A scratchpad of flo.yml snippets that solve real problems. For the underlying schema, see Configuration.
A single recipe that chains multiple commands
Section titled âA single recipe that chains multiple commandsâcommands: ship: description: Lint, test, push command: pnpm lint && pnpm --filter flo test && flo submitAnything $SHELL -c can run, a command: field can run â &&, pipes, env vars, redirection.
An interactive release / setup script
Section titled âAn interactive release / setup scriptâcommands: release-flo: description: Bump version, commit, push to main command: sh scripts/release.sh aliases: [fr] interactive: trueWithout interactive: true, flo run would capture the scriptâs output in a boxed panel and silently drop any prompts. With it on, the child sees your TTY directly. Reach for this for gh auth login, REPLs, anything that expects a TTY.
Per-workspace tests in a monorepo
Section titled âPer-workspace tests in a monorepoâcommands: test-flo: command: pnpm --filter flo test aliases: [tf] test-all: command: pnpm -r test aliases: [ta]Bootstrap that sets up local tooling
Section titled âBootstrap that sets up local toolingâinit: - deps: name: Install dependencies run: pnpm install - hooks: name: Install git hooks run: pnpm --filter flo exec install-hooks - env-file: name: Create .env from template run: "[ -f .env ] || cp .env.example .env"The [ -f .env ] || ⌠guard makes the step idempotent â re-running flo init wonât clobber an existing .env.
Pass-through args with --
Section titled âPass-through args with --âcommands: test: command: pnpm --filter flo test aliases: [t]flo t -- --watch # appends "--watch" to the resolved commandflo t -- --grep "sync" # quoted properly through the shellUse -- whenever your extra args start with a flag flo might otherwise try to parse.
A âdoctorâ recipe
Section titled âA âdoctorâ recipeâcommands: doctor: description: Check the dev environment is sane command: | node --version pnpm --version gh --version git --versionMulti-line command: strings work â YAMLâs | block scalar preserves newlines, and the shell runs them as a script.