Interface en Ligne de Commande

FloopFloop CLI

Installez la CLI FloopFloop, autorisez un appareil et pilotez chaque projet depuis votre terminal — `floop login`, `floop new`, `floop chat`, `floop refine` et plus.

Dernière mise à jour :

FloopFloop CLI

Le CLI FloopFloop (floop) est un client en ligne de commande distribué sous forme de binaire unique pour la plateforme FloopFloop. Il offre toutes les fonctionnalités de la console web — créer des projets à partir d'une invite, suivre les déploiements en direct, affiner des projets dans un REPL de discussion — sans quitter votre terminal.

Contrairement aux clés API (réservées au plan Business), les jetons d'appareil CLI sont limités à votre plan de compte habituel, exactement comme une connexion sur le web. Le CLI est destiné aux humains ; les clés API sont destinées aux scripts.

Installation

Choisissez le bon binaire pour votre machine et placez-le dans votre $PATH. La grille d'installation complète (avec boutons de copie) se trouve sur 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

Au premier lancement sur macOS ou Windows, un avertissement indiquera que le binaire n'est pas encore signé. Sur macOS, faites un clic droit → Ouvrir, ou exécutez xattr -d com.apple.quarantine /usr/local/bin/floop. Sur Windows, cliquez sur "Plus d'informations" → "Exécuter quand même".

Connexion

Autorisez l'appareil auprès de votre compte FloopFloop. Le CLI ouvre votre navigateur, vous cliquez sur Approuver, le CLI reçoit un jeton de longue durée lié à cette machine.

floop login

Sur une machine sans interface graphique (SSH, CI, Docker), utilisez le flux d'appareil à la place :

floop login --device

Vous obtiendrez un code à coller sur floopfloop.com/device. Une fois approuvé, le CLI reçoit le jeton et le sauvegarde dans ~/.floop/config.json avec les permissions 0600.

Vérifiez la session active avec floop whoami. Déconnectez-vous avec floop logout. Gérez tous les appareils connectés depuis Compte → Appareils.

Commandes

floop new <prompt>

Crée un nouveau projet et (par défaut) attend qu'il soit mis en ligne.

floop new "a crypto RSI dashboard for BTC and ETH" --subdomain my-rsi
OptionDescription
--name <name>Nom du projet (par défaut : premiers mots de l'invite)
--subdomain <slug>Sous-domaine (par défaut : un slug dérivé du nom)
--bot-type <type>L'un des types : site, app, bot, api, internal, game
--team <teamId>Créer dans un espace de travail d'équipe
--no-waitRetourner immédiatement après la mise en file d'attente ; ne pas diffuser la progression
--jsonÉmettre du JSON lisible par machine

floop list (alias ls)

Liste vos projets dans un tableau ou au format JSON.

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

floop status <project>

Affiche l'état de construction d'un projet. Accepte l'identifiant du projet ou le sous-domaine. Ajoutez --watchpour suivre la progression en temps réel jusqu'à ce que la construction atteigne un état terminal.

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

floop chat <project>

Ouvre un REPL interactif lié à un projet. Chaque ligne que vous saisissez est envoyée comme un affinement, avec la progression de la construction en direct. Commandes slash :

  • /help — afficher toutes les commandes slash
  • /status — état ponctuel
  • /open — ouvrir l'URL en direct
  • /clear — effacer l'écran
  • /exit — quitter le REPL (Ctrl+D fonctionne aussi)

Pendant une construction, Ctrl+C arrête la surveillance ; la construction continue côté serveur. Appuyez à nouveau sur Ctrl+C (ou /exit) pour quitter réellement le REPL.

floop refine <project> "<message>"

Affinement non interactif — le pendant scripté de floop chat. Envoie un message d'affinement et se termine, sans entrer dans le REPL. Utile pour les pipelines CI ("affiner la page d'accueil lors de la fusion de cette branche") ou les ajustements ponctuels.

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
OptionDescription
--watchSuivre la construction résultante jusqu'à un état terminal (live / failed / cancelled / archived). Sans cette option, retourne immédiatement après la mise en file d'attente.
--code-onlyDéfinit codeEditOnly: true — ignore la replanification / la refonte et exécute un correctif en place en 3 étapes au lieu de la reconstruction complète en 6 étapes. Coûte environ la moitié d'un crédit d'affinement. Idéal pour les corrections de texte, les changements de couleur, les corrections de fautes de frappe sur un projet déjà en ligne.
--jsonÉmettre du JSON lisible par machine. Expose les trois formes de réponse — processing (construction démarrée), queued (en file d'attente derrière une construction en cours), ou queued: false (sauvegardé comme message de discussion, pas de construction).

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

Annule une construction en cours ou réactive un projet précédemment annulé. reactivate lance une nouvelle construction à partir de la dernière invite du projet ; avec --watch, la commande suit la nouvelle construction jusqu'à un état terminal (live / failed / cancelled / archived) au lieu de retourner immédiatement. Même schéma d'interrogation avec déduplication que floop status --watch et 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>

Ouvre l'URL en direct du projet dans votre navigateur par défaut. Utilise https://<subdomain>.floop.techsi l'API n'a pas encore fourni d'URL personnalisée.

floop upgrade

Remplace le binaire floop par la dernière version GitHub. Vérifie le SHA256 par rapport au fichier SHA256SUMSpublié avant de procéder à l'échange. Ajoutez --checkpour vérifier uniquement si une mise à jour est disponible sans l'installer.

floop upgrade
floop upgrade --check

Fonctionne uniquement pour les binaires compilés. Si vous avez installé via npm ou exécutez node dist/index.js depuis les sources, la commande refusera et vous indiquera le bon outil à utiliser.

floop docs · floop feedback

Raccourcis rapides : floop docs ouvre cette page, floop feedback ouvre le formulaire de support / signalement de problèmes sur floopfloop.com.

floop completion <bash|zsh|fish|powershell>

Affiche un script de complétion shell sur la sortie standard. Installation par 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)

Actuellement, la complétion est statique — elle connaît les noms de commandes et de sous-commandes, mais pas vos sous-domaines de projet. La complétion dynamique via un cache local est prévu dans la feuille de route.

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

Lire ou modifier les paramètres locaux du CLI. Clés configurables : apiUrl(remplacer l'URL de base de l'API — utile pour la mise en scène ou l'auto-hébergement) et telemetry (true/false).

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

Le stockage des jetons n'est intentionnellement PAS configurable via config set— cette contrainte évite que les jetons apparaissent dans l'historique du shell. Utilisez floop login / floop logout pour gérer la session active.

floop usage

Affiche votre plan, les crédits disponibles (ce mois + reportés + utilisés à vie), et l'utilisation de la période en cours (projets créés, constructions, affinements, stockage, bande passante) par rapport aux limites de votre plan.

floop usage
floop usage --json

floop conversations <project> (alias history)

Affiche l'historique de discussion du projet — messages utilisateur, réponses de l'assistant et marqueurs de déploiement (● Deployed v2) dans l'ordre chronologique. Ajoutez --limit 10 pour afficher uniquement les 10 dernières entrées.

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

floop keys <list|create|rm>

Gère les clés API programmatiques (flp_…) pour une utilisation dans les scripts CI/CD. Différent des jetons d'appareil de floop login— ceux-ci sont destinés aux humains, limités à votre plan normal ; les clés API sont programmatiques, nécessitent le plan Business, peuvent être révoquées individuellement depuis le tableau de bord ou par nom/id avec 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"

La sous-commande rmrefuse de révoquer la clé API avec laquelle l'appel est effectué — utilisez une autre clé (ou révoquez depuis le tableau de bord) si vous souhaitez vraiment la supprimer.

floop library <list|clone>

Parcourez les projets de la bibliothèque publique et clonez-les dans votre compte.

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

REPL de discussion : /attach <file> + sélecteur interactif

Dans floop chat, joignez un fichier à votre prochain message d'affinement :

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

Le CLI effectue l'envoi via le flux de PUT présigné existant ; les types autorisés sont png/jpg/gif/svg/webp/ico/pdf/txt/csv/doc/docx, 5 Mo maximum. La pièce jointe est consommée par le prochain message que vous envoyez — saisir d'autres commandes slash ou appuyer sur Entrée sur une ligne vide la laisse en attente.

floop chat sans argument de projet affiche un sélecteur numéroté parmi vos projets. Avec un seul projet, il le sélectionne directement.

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

Outils d'aide à la création de scripts pour floop new. check retourne 0 si le slug est disponible, 1 sinon. suggestaffiche un slug disponible dérivé d'une invite — redirigez directement vers --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>]

Gère les variables d'environnement en écriture seule sur un projet. Les valeurs ne sont jamais renvoyées par l'API — listn'expose que les métadonnées (clé, 4 derniers caractères, horodatages). La sous-commande set lit la valeur depuis --value, --from-env ou stdin (dans cet ordre) — préférez stdin ou --from-envpour les valeurs sensibles afin qu'elles ne se retrouvent pas dans l'historique du shell.

# 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

Les clés doivent être en UPPER_SNAKE_CASE, commencer par une lettre, maximum 64 caractères (correspond au validateur de secrets de projet).

Scripting

Chaque commande prend en charge --json. Combiné avec jq et la variable d'environnement FLOOP_TOKEN (qui contourne la connexion interactive), le CLI convient aux utilisations en CI/CD.

# 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

Variables d'environnement

VariableUtilité
FLOOP_API_URLRemplacer l'URL de base de l'API. Par défaut : https://www.floopfloop.com. Utile pour la mise en scène.
FLOOP_TOKENJeton Bearer à utiliser à la place de celui dans ~/.floop/config.json. Utile pour la CI.

Codes de sortie

Codes de sortie documentés pour les scripts shell :

CodeSignification
0Succès
1Erreur utilisateur (options incorrectes, validation, refus de mise à jour en mode développement)
2Authentification (non connecté, jeton révoqué, INTERDIT)
3Limite de débit atteinte
4Erreur serveur (5xx, échecs d'installation/mise à jour)
5Réseau inaccessible

Fichier de configuration

Le CLI stocke sa session dans ~/.floop/config.json avec les permissions 0600 (lecture/écriture propriétaire uniquement). Le fichier contient :

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

La prise en charge du trousseau de clés du système d'exploitation (Keychain macOS, Gestionnaire d'informations d'identification Windows) est prévue dans la feuille de route.

Confidentialité & télémétrie

Lors de sa première exécution interactive, le CLI vous demande si vous souhaitez partager des données d'utilisation anonymes. C'est une option à activer — choisissez n et rien ne sera jamais envoyé. Choisissez y et le CLI émet un POST vers /api/cli/telemetry à chaque sortie de commande, contenant exactement :

  • anonymousId — hexadécimal aléatoire généré lors de l'activation, jamais associé à votre compte
  • command — nom de la commande de niveau supérieur (p. ex. new, list)
  • exitCode
  • durationMs
  • version — version du CLI
  • osdarwin / win32 / linux

Nous n'envoyons pas: les invites, les noms de projets, le contenu des fichiers, les arguments des commandes, votre adresse e-mail, votre adresse IP (le backend enregistre l'IP de la requête pour la limitation de débit ; elle n'est pas associée aux lignes de télémétrie). La charge utile complète correspond aux six champs ci-dessus.

La liste d'exclusion — la télémétrie ne se déclenche jamais pour floop config, floop completion, floop help, --help ou --version(ces commandes sont soit circulaires, souvent redirigées, ou sans contenu pertinent). La télémétrie a un délai d'expiration strict d'une seconde et ne retarde jamais la sortie du CLI.

Désactivez à tout moment : floop config set telemetry false. Ou modifiez manuellement ~/.floop/config.json.

Sources & versions

Les binaires précompilés pour macOS, Windows et Linux sont publiés dans GitHub Releases à chaque tag cli-v*. Les notes de version incluent les instructions d'installation et les sommes de contrôle SHA256.

Pour la liste des artefacts de version, consultez les dernières versions.