Opdrachtregelinterface

FloopFloop CLI

Installeer de FloopFloop CLI, autoriseer een apparaat en stuur elk project aan vanuit je terminal — `floop login`, `floop new`, `floop chat`, `floop refine` en meer.

Laatst bijgewerkt:

FloopFloop CLI

De FloopFloop CLI (floop) is een single-binary command-line client voor het FloopFloop-platform. Je kunt er alles mee doen wat de webconsole doet — projecten aanmaken vanuit een prompt, deploys live volgen, projecten verfijnen in een chat-REPL — zonder je terminal te verlaten.

In tegenstelling tot API-sleutels (die zijn beperkt tot het Business-plan) zijn CLI-apparaattokens gekoppeld aan je normale accountplan, net als inloggen via het web. De CLI is voor mensen; API-sleutels zijn voor scripts.

Installeren

Kies het juiste binary voor jouw machine en zet het op je $PATH. Het volledige installatie-overzicht (met kopieerknopjes) vind je op floopfloop.com/cli.

macOS (Apple Silicon)

curl -L https://github.com/FloopFloopAI/floop-cli/releases/latest/download/floop-darwin-arm64 -o /usr/local/bin/floop
chmod +x /usr/local/bin/floop

macOS (Intel)

curl -L https://github.com/FloopFloopAI/floop-cli/releases/latest/download/floop-darwin-x64 -o /usr/local/bin/floop
chmod +x /usr/local/bin/floop

Linux x64

curl -L https://github.com/FloopFloopAI/floop-cli/releases/latest/download/floop-linux-x64 -o /usr/local/bin/floop
chmod +x /usr/local/bin/floop

Windows x64

# In PowerShell:
Invoke-WebRequest https://github.com/FloopFloopAI/floop-cli/releases/latest/download/floop-windows-x64.exe -OutFile $env:USERPROFILE\floop.exe

Bij de eerste start op macOS of Windows krijg je een waarschuwing dat het binary nog niet gesigneerd is. Op macOS: rechtsklikken → Openen, of voer xattr -d com.apple.quarantine /usr/local/bin/floopuit. Op Windows: klik op "Meer info" → "Toch uitvoeren".

Inloggen

Autoriseer het apparaat bij je FloopFloop-account. De CLI opent je browser, je klikt op Goedkeuren en de CLI ontvangt een langlevend token dat gekoppeld is aan dit apparaat.

floop login

Op een headless machine (SSH, CI, Docker) gebruik je in plaats daarvan de apparaatflow:

floop login --device

Je krijgt een code die je invult op floopfloop.com/device. Na goedkeuring ontvangt de CLI het token en slaat het op in ~/.floop/config.json met 0600-rechten.

Controleer de actieve sessie met floop whoami. Log uit met floop logout. Beheer alle ingelogde apparaten via Account → Apparaten.

Commando's

floop new <prompt>

Maak een nieuw project aan en wacht (standaard) totdat het live gaat.

floop new "a crypto RSI dashboard for BTC and ETH" --subdomain my-rsi
VlagBeschrijving
--name <name>Projectnaam (standaard de eerste woorden van de prompt)
--subdomain <slug>Subdomein (standaard een slug van de naam)
--bot-type <type>Een van site, app, bot, api, internal, game
--team <teamId>Aanmaken binnen een teamwerkruimte
--no-waitKeer direct terug na het in de wachtrij plaatsen; geen voortgangsstream
--jsonGeef machine-leesbare JSON terug

floop list (alias ls)

Toon je projecten in een tabel of als JSON.

floop list
floop list --json
floop list --team team_abc123

floop status <project>

Toon de buildstatus van een project. Accepteert het project-ID of het subdomein. Voeg --watch toe om de voortgang live te volgen totdat de build een eindstatus bereikt.

floop status my-rsi
floop status my-rsi --watch
floop status my-rsi --json

floop chat <project>

Open een interactieve REPL gekoppeld aan een project. Elke regel die je typt wordt als verfijning verstuurd, met live buildvoortgang. Slash-commando's:

  • /help — toon alle slash-commando's
  • /status — eenmalige statuscheck
  • /open — open de live URL
  • /clear — scherm wissen
  • /exit — verlaat de REPL (Ctrl+D werkt ook)

Tijdens een build stopt Ctrl+C het volgen; de build blijft server-side doorlopen. Druk nogmaals op Ctrl+C (of gebruik /exit) om de REPL daadwerkelijk af te sluiten.

floop refine <project> "<message>"

Niet-interactieve verfijning — de scripttegenhanger van floop chat. Stuurt één verfijningsbericht en sluit af, zonder je in de REPL te plaatsen. Handig voor CI-pipelines ("verfijn de homepage wanneer deze branch wordt samengevoegd") of eenmalige aanpassingen.

floop refine my-bot "tighten the dashboard table padding"
floop refine my-bot "fix the typo in the hero" --code-only --watch
floop refine my-bot "swap the brand colour to teal" --json
VlagBeschrijving
--watchVolg de resulterende build tot een eindstatus (live / failed / cancelled / archived). Zonder deze vlag wordt direct teruggekeerd na het in de wachtrij plaatsen.
--code-onlyStelt codeEditOnly: true in — slaat herplanning / herontwerp over en voert een 3-staps patch in-place uit in plaats van de volledige 6-staps rebuild. Kost ongeveer de helft van een verfijningskrediet. Ideaal voor tekstwijzigingen, kleurwisselingen en typografieverbeteringen in een project dat al live is.
--jsonGeef machine-leesbare JSON terug. Toont alle drie responsvormen — processing (build gestart), queued (in de wachtrij achter een huidige build), of queued: false (opgeslagen als chatbericht, geen build).

floop cancel <project> · floop reactivate <project> [--watch]

Annuleer een lopende build of reactiveer een eerder geannuleerd project. reactivate start een nieuwe build op basis van de meest recente prompt van het project; met --watch volgt het commando de nieuwe build tot een eindstatus (live / failed / cancelled / archived) in plaats van direct terug te keren. Hetzelfde poll-with-dedup-patroon als floop status --watch en floop refine --watch.

floop cancel my-bot
floop reactivate my-bot
floop reactivate my-bot --watch
floop reactivate my-bot --watch --json

floop open <project>

Open de live URL van het project in je standaardbrowser. Valt terug op https://<subdomain>.floop.tech als de API nog geen aangepaste URL heeft teruggegeven.

floop upgrade

Vervang het floop-binary door de nieuwste GitHub Release. Verifieert de SHA256 met het gepubliceerde SHA256SUMS-bestand voor het wisselen. Voeg --check toe om alleen te controleren op een update zonder te installeren.

floop upgrade
floop upgrade --check

Werkt alleen voor gecompileerde binaries. Als je via npm hebt geïnstalleerd ofnode dist/index.js vanuit de broncode uitvoert, weigert het commando en verwijst het je naar het juiste hulpmiddel.

floop docs · floop feedback

Snelle snelkoppelingen: floop docs opent deze pagina, floop feedback opent het ondersteunings- en probleemrapportformulier op floopfloop.com.

floop completion <bash|zsh|fish|powershell>

Geef een shell-aanvulscript naar stdout. Installeren per shell:

# bash
echo 'source <(floop completion bash)' >> ~/.bashrc

# zsh — save to a directory on $fpath
floop completion zsh > "${fpath[1]}/_floop"

# fish
floop completion fish > ~/.config/fish/completions/floop.fish

# PowerShell
floop completion powershell | Out-String | Invoke-Expression
# (or append to your $PROFILE to persist)

Momenteel is de aanvulling statisch — hij kent commando- en subcommandonamen, maar niet je projectsubdomeinen. Dynamische aanvulling via een lokale cache staat op de roadmap.

floop config get [key] · floop config set <key> <value>

Lees of wijzig lokale CLI-instellingen. Instelbare sleutels: apiUrl(overschrijf de API-basis-URL — handig voor staging of self-hosted) en telemetry (true/false).

floop config get
floop config get telemetry
floop config set telemetry false
floop config set apiUrl https://staging.floopfloop.com

Tokenopslag is bewust NIET instelbaar via config set— zo blijven tokens buiten de shellgeschiedenis. Gebruik floop login / floop logout om de actieve sessie te beheren.

floop usage

Toon je plan, beschikbare credits (deze maand + overgedragen + levenslang gebruikt) en gebruik in de huidige periode (aangemaakte projecten, builds, verfijningen, opslag, bandbreedte) ten opzichte van je planbeperkingen.

floop usage
floop usage --json

floop conversations <project> (alias history)

Geef de chatgeschiedenis van het project weer — gebruikersberichten, assistentreacties en implementatiemarkeringen (● Deployed v2) in chronologische volgorde. Voeg --limit 10 toe om alleen de laatste 10 items te tonen.

floop conversations my-bot
floop history my-bot --limit 5
floop conversations my-bot --json

floop keys <list|create|rm>

Beheert programmatische API-sleutels (flp_…) voor gebruik in CI/CD-scripts. Anders dan de apparaattokens van floop login— die zijn voor mensen en gekoppeld aan je normale plan; API-sleutels zijn programmatisch, vereisen het Business-plan en kunnen individueel worden ingetrokken via het dashboard of op naam/id met floop keys rm.

floop keys list
floop keys create "github-actions"     # raw key shown ONCE — copy it
# In CI:
export FLOOP_TOKEN=flp_…
floop list --json | jq …
# Later:
floop keys rm "github-actions"

Het subcommando rmweigert de API-sleutel in te trekken waarmee de aanroep wordt gedaan — gebruik een andere sleutel (of trek in via het dashboard) als je hem echt wilt verwijderen.

floop library <list|clone>

Blader door publieke bibliotheekprojecten en kloon ze naar je account.

floop library list
floop library list --search "trading bot" --sort popular
floop library clone <projectId> --subdomain my-fork

Chat-REPL: /attach <file> + interactieve kiezer

Voeg binnen floop chat een bestand toe aan je volgende verfijningsbericht:

floop chat my-bot
you ▸ /attach ./mockup.png
✓ Attached mockup.png (320 KB, image/png)
  Attached to your NEXT message. 1 file(s) pending.
you ▸ make the dashboard look like this

De CLI uploadt via de bestaande presigned-PUT-flow; toegestane typen zijn png/jpg/gif/svg/webp/ico/pdf/txt/csv/doc/docx, max 5 MB. De bijlage wordt gebruikt door het volgende bericht dat je stuurt — meer slash-commando's typen of enter drukken op een lege regel laat hem in de wacht staan.

floop chat zonder projectargument toont een genummerde kiezer over je projecten. Met één project wordt dat direct geselecteerd.

floop subdomain check <slug> · floop subdomain suggest "<prompt>"

Scripthulpmiddelen voor floop new. check geeft 0 terug als de slug vrij is, anders 1. suggestgeeft een beschikbare slug op basis van een prompt — stuur hem rechtstreeks door naar --subdomain:

# Pre-flight check
floop subdomain check my-bot && echo "available"

# Auto-pick a slug from the prompt
SLUG=$(floop subdomain suggest "a crypto rsi dashboard for btc")
floop new "a crypto rsi dashboard for btc" --subdomain "$SLUG"

floop secrets <list|set|rm> <project> [<key>]

Beheer schrijf-alleen omgevingsvariabelen op een project. Waarden worden nooit teruggegeven door de API — list toont alleen metadata (sleutel, laatste 4 tekens, tijdstempels). Het subcommando set leest de waarde uit --value, --from-envof stdin (in die volgorde) — geef de voorkeur aan stdin of --from-env voor gevoelige waarden zodat ze niet in de shellgeschiedenis belanden.

# List
floop secrets list my-bot

# Set (most secure: from a local env var)
export STRIPE_KEY="sk_live_..."
floop secrets set my-bot STRIPE_KEY --from-env STRIPE_KEY

# Set (reads from stdin)
floop secrets set my-bot STRIPE_KEY < ./stripe.key

# Remove
floop secrets rm my-bot STRIPE_KEY

Sleutels moeten UPPER_SNAKE_CASE zijn, beginnen met een letter en maximaal 64 tekens bevatten (overeenkomend met de projectgeheimvalidator).

Scripting

Elk commando ondersteunt --json. Gecombineerd met jq en de FLOOP_TOKEN-omgevingsvariabele (die de interactieve login omzeilt) is de CLI geschikt voor CI/CD-gebruik.

# Create a project, capture its ID, poll for live URL
PROJECT=$(floop new "test page" --no-wait --json | jq -r '.project.id')

# Wait until live (or terminal failure)
while true; do
  STATUS=$(floop status "$PROJECT" --json | jq -r '.status.status')
  case "$STATUS" in
    live)      echo "shipped"; break ;;
    failed)    echo "build failed"; exit 1 ;;
    cancelled) echo "cancelled"; exit 1 ;;
  esac
  sleep 5
done

Omgevingsvariabelen

VariabeleDoel
FLOOP_API_URLOverschrijf de API-basis-URL. Standaard: https://www.floopfloop.com. Handig voor staging.
FLOOP_TOKENBearer-token om te gebruiken in plaats van het token in ~/.floop/config.json. Handig voor CI.

Exitcodes

Gedocumenteerde exitcodes voor shellscripting:

CodeBetekenis
0Geslaagd
1Gebruikersfout (ongeldige vlaggen, validatie, weigering upgrade in dev-modus)
2Authenticatie (niet ingelogd, token ingetrokken, FORBIDDEN)
3Snelheidslimiet bereikt
4Serverfout (5xx, installatie-/upgradefouten)
5Netwerk niet bereikbaar

Configuratiebestand

De CLI slaat de sessie op in ~/.floop/config.json met rechten 0600 (alleen lezen/schrijven door eigenaar). Het bestand bevat:

{
  "apiUrl": "https://www.floopfloop.com",
  "token": "flp_cli_…",
  "tokenPrefix": "flp_cli_a1b2…",
  "user": { "id": "...", "email": "you@example.com", "name": "..." }
}

Ondersteuning voor OS-sleutelhanger (macOS Keychain, Windows Credential Manager) staat op de roadmap.

Privacy & telemetrie

Bij de eerste interactieve run vraagt de CLI of je anonieme gebruiksgegevens wilt delen. Het is opt-in — kies n en er wordt nooit iets verstuurd. Kies y en de CLI verstuurt één POST naar /api/cli/telemetry bij elke commandobeëindiging, met precies het volgende:

  • anonymousId — willekeurige hex gegenereerd bij opt-in, nooit gekoppeld aan je account
  • command — naam van het top-level commando (bijv. new, list)
  • exitCode
  • durationMs
  • version — CLI-versie
  • osdarwin / win32 / linux

We sturen geen: prompts, projectnamen, bestandsinhoud, commandoargumenten, je e-mailadres of je IP-adres (de backend logt het verzoek-IP voor snelheidsbeperking; dit wordt niet gekoppeld aan telemetrierijen). De volledige payload bestaat uit de zes velden hierboven.

De uitsluitlijst — telemetrie wordt nooit verstuurd voor floop config, floop completion, floop help, --help of --version (deze zijn ofwel circulair, vaak ge-piped, of bevatten geen nuttige informatie). Telemetrie heeft een vaste time-out van 1 seconde en vertraagt de CLI-afsluiting nooit.

Uitschakelen op elk moment: floop config set telemetry false. Of bewerk ~/.floop/config.json handmatig.

Broncode & releases

Kant-en-klare binaries voor macOS, Windows en Linux worden gepubliceerd naar GitHub Releases bij elke cli-v*-tag. De release-opmerkingen bevatten installatie-instructies en SHA256-controlesommen.

Blader voor een overzicht van release-artefacten naar de nieuwste releases.