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/floopmacOS (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/floopLinux 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/floopWindows x64
# In PowerShell:
Invoke-WebRequest https://github.com/FloopFloopAI/floop-cli/releases/latest/download/floop-windows-x64.exe -OutFile $env:USERPROFILE\floop.exeAu 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 loginSur une machine sans interface graphique (SSH, CI, Docker), utilisez le flux d'appareil à la place :
floop login --deviceVous 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| Option | Description |
|---|---|
--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-wait | Retourner 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_abc123floop 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 --jsonfloop 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| Option | Description |
|---|---|
--watch | Suivre 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-only | Dé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 --jsonfloop 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 --checkFonctionne 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.comLe 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 --jsonfloop 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 --jsonfloop 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-forkREPL 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 thisLe 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_KEYLes 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
doneVariables d'environnement
| Variable | Utilité |
|---|---|
FLOOP_API_URL | Remplacer l'URL de base de l'API. Par défaut : https://www.floopfloop.com. Utile pour la mise en scène. |
FLOOP_TOKEN | Jeton 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 :
| Code | Signification |
|---|---|
0 | Succès |
1 | Erreur utilisateur (options incorrectes, validation, refus de mise à jour en mode développement) |
2 | Authentification (non connecté, jeton révoqué, INTERDIT) |
3 | Limite de débit atteinte |
4 | Erreur serveur (5xx, échecs d'installation/mise à jour) |
5 | Ré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 comptecommand— nom de la commande de niveau supérieur (p. ex.new,list)exitCodedurationMsversion— version du CLIos—darwin/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.