Interfaccia a Riga di Comando

FloopFloop CLI

Installa la CLI FloopFloop, autorizza un dispositivo e gestisci ogni progetto dal tuo terminale — `floop login`, `floop new`, `floop chat`, `floop refine` e altro.

Ultimo aggiornamento:

FloopFloop CLI

Il FloopFloop CLI (floop) è un client a riga di comando in un unico binario per la piattaforma FloopFloop. Fa tutto ciò che fa la console web — crea progetti da un prompt, monitora i deploy in tempo reale, affina i progetti in una REPL di chat — senza mai lasciare il terminale.

A differenza delle chiavi API (riservate al piano Business), i token di dispositivo CLI sono legati al tuo piano account normale, esattamente come accedere dal web. La CLI è per gli esseri umani; le chiavi API sono per gli script.

Installazione

Scegli il binario giusto per la tua macchina e inseriscilo nel tuo $PATH. La griglia completa di installazione (con pulsanti di copia) si trova su 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

Al primo avvio su macOS o Windows verrà avvisato che il binario non è ancora firmato. Su macOS, fai clic destro → Apri, oppure esegui xattr -d com.apple.quarantine /usr/local/bin/floop. Su Windows, clicca su "Ulteriori informazioni" → "Esegui comunque".

Accesso

Autorizza il dispositivo sul tuo account FloopFloop. La CLI apre il browser, tu clicchi su Approva e la CLI riceve un token di lunga durata associato a questa macchina.

floop login

Su una macchina headless (SSH, CI, Docker), usa il device flow al suo posto:

floop login --device

Riceverai un codice da incollare su floopfloop.com/device. Una volta approvato, la CLI riceve il token e lo salva in ~/.floop/config.json con permessi 0600.

Verifica la sessione attiva con floop whoami. Disconnettiti con floop logout. Gestisci tutti i dispositivi collegati da Account → Dispositivi.

Comandi

floop new <prompt>

Crea un nuovo progetto e (per impostazione predefinita) attende che vada in produzione.

floop new "a crypto RSI dashboard for BTC and ETH" --subdomain my-rsi
FlagDescrizione
--name <name>Nome del progetto (predefinito: le prime parole del prompt)
--subdomain <slug>Sottodominio (predefinito: uno slug del nome)
--bot-type <type>Uno tra site, app, bot, api, internal, game
--team <teamId>Crea sotto un workspace di team
--no-waitRitorna immediatamente dopo l'accodamento; non trasmette l'avanzamento
--jsonEmette JSON leggibile da macchina

floop list (alias ls)

Elenca i tuoi progetti in una tabella o come JSON.

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

floop status <project>

Mostra lo stato del build di un progetto. Accetta l'ID progetto oppure il sottodominio. Aggiungi --watchper trasmettere l'avanzamento in tempo reale fino a quando il build raggiunge uno stato terminale.

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

floop chat <project>

Apre una REPL interattiva associata a un progetto. Ogni riga digitata viene inviata come raffinamento, con l'avanzamento del build in tempo reale. Comandi slash:

  • /help — mostra tutti i comandi slash
  • /status — stato immediato
  • /open — apre l'URL live
  • /clear — pulisce lo schermo
  • /exit — esce dalla REPL (funziona anche Ctrl+D)

Durante un build, Ctrl+C interrompe il monitoraggio; il build continua lato server. Premi di nuovo Ctrl+C (o /exit) per uscire davvero dalla REPL.

floop refine <project> "<message>"

Raffinamento non interattivo — il gemello per script di floop chat. Invia un solo messaggio di raffinamento ed esce, senza entrare nella REPL. Utile per pipeline CI ("raffina la homepage quando questo branch viene unito") o modifiche una-tantum.

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
FlagDescrizione
--watchSegue il build risultante fino a uno stato terminale (live / failed / cancelled / archived). Senza questo flag, ritorna immediatamente dopo l'accodamento.
--code-onlyImposta codeEditOnly: true — salta la ripianificazione / riprogettazione e applica una patch in 3 passaggi invece della ricostruzione completa in 6 passaggi. Addebita circa metà credito di raffinamento. Ottimo per modifiche di testo, cambi colore, correzioni di refusi su un progetto già in produzione.
--jsonEmette JSON leggibile da macchina. Mostra tutte e tre le forme di risposta — processing (build avviato), queued (in coda dietro un build corrente), o queued: false (salvato come messaggio di chat, nessun build).

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

Annulla un build in esecuzione o riattiva un progetto precedentemente annullato. reactivate avvia un nuovo build con il prompt più recente del progetto; con --watch il comando segue il nuovo build fino a uno stato terminale (live / failed / cancelled / archived) invece di ritornare immediatamente. Stesso schema di polling con deduplicazione di floop status --watch e 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>

Apre l'URL live del progetto nel browser predefinito. Usa https://<subdomain>.floop.techcome fallback se l'API non ha ancora restituito un URL personalizzato.

floop upgrade

Sostituisce il binario floop con l'ultima GitHub Release. Verifica il SHA256 rispetto all'SHA256SUMS pubblicato prima di effettuare lo scambio. Aggiungi --check per controllare solo se è disponibile un aggiornamento senza installarlo.

floop upgrade
floop upgrade --check

Funziona solo per i binari compilati. Se hai installato tramite npm o stai eseguendo node dist/index.js da sorgente, il comando rifiuterà e indicherà lo strumento corretto.

floop docs · floop feedback

Scorciatoie rapide: floop docs apre questa pagina, floop feedback apre il modulo di supporto / segnalazione problemi su floopfloop.com.

floop completion <bash|zsh|fish|powershell>

Stampa uno script di completamento shell su stdout. Installazione 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)

Al momento il completamento è statico — conosce i nomi di comandi e sottocomandi, non i sottodomini dei tuoi progetti. Il completamento dinamico tramite una cache locale è nella roadmap.

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

Leggi o modifica le impostazioni locali della CLI. Chiavi configurabili: apiUrl(sovrascrive l'URL base dell'API — utile per staging o self-hosted) e telemetry (true/false).

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

La gestione dei token NON è configurabile tramite config set— questo percorso mantiene i token fuori dalla cronologia della shell. Usa floop login / floop logout per gestire la sessione attiva.

floop usage

Mostra il tuo piano, i crediti disponibili (questo mese + riportati + usati nel tempo) e l'utilizzo del periodo corrente (progetti creati, build, raffinamenti, storage, banda) rispetto ai limiti del piano.

floop usage
floop usage --json

floop conversations <project> (alias history)

Stampa la cronologia della chat del progetto — messaggi utente, risposte dell'assistente e marcatori di deployment (● Deployed v2) in ordine cronologico. Aggiungi --limit 10 per mostrare solo le ultime 10 voci.

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

floop keys <list|create|rm>

Gestisce le chiavi API programmatiche (flp_…) per l'uso in script CI/CD.Diverse dai token di dispositivo di floop login— quelli sono per gli esseri umani, legati al tuo piano normale; le chiavi API sono programmatiche, richiedono il piano Business, possono essere revocate singolarmente dalla dashboard o per nome/id con 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"

Il sottocomando rmsi rifiuta di revocare la chiave API con cui viene effettuata la chiamata — usa una chiave diversa (o revoca dalla dashboard) se vuoi davvero eliminarla.

floop library <list|clone>

Sfoglia i progetti pubblici della libreria e clonali nel tuo account.

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

Chat REPL: /attach <file> + selettore interattivo

All'interno di floop chat, allega un file al tuo prossimo messaggio di raffinamento:

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

La CLI carica tramite il flusso presigned-PUT esistente; i tipi consentiti sono png/jpg/gif/svg/webp/ico/pdf/txt/csv/doc/docx, massimo 5 MB. L'allegato viene consumato dal prossimo messaggio inviato — digitare altri comandi slash o premere invio su una riga vuota mantiene l'allegato in sospeso.

floop chat senza argomento progetto apre un selettore numerato tra i tuoi progetti. Con un solo progetto, lo seleziona direttamente.

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

Helper per script per floop new. check esce con 0 se lo slug è libero, 1 altrimenti. suggeststampa uno slug disponibile derivato da un prompt — reindirizza direttamente a --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>]

Gestisce le variabili d'ambiente in sola scrittura su un progetto. I valori non vengono mai restituiti dall'API — list mostra solo i metadati (chiave, ultimi 4 caratteri, timestamp). Il sottocomando set legge il valore da --value, --from-env, o stdin (in quest'ordine) — preferisci stdin o --from-env per i valori sensibili in modo che non finiscano nella cronologia della 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

Le chiavi devono essere in UPPER_SNAKE_CASE, iniziare con una lettera, massimo 64 caratteri (corrisponde al validatore dei segreti del progetto).

Scripting

Ogni comando supporta --json. Combinato con jq e la variabile d'ambiente FLOOP_TOKEN(che bypassa il login interattivo), la CLI è adatta per l'uso in 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

Variabili d'ambiente

VariabileScopo
FLOOP_API_URLSovrascrive l'URL base dell'API. Predefinito: https://www.floopfloop.com. Utile per staging.
FLOOP_TOKENToken Bearer da usare al posto di quello in ~/.floop/config.json. Utile per CI.

Codici di uscita

Codici di uscita documentati per lo scripting shell:

CodiceSignificato
0Successo
1Errore utente (flag errati, validazione, rifiuto upgrade in modalità sviluppo)
2Autenticazione (non connesso, token revocato, FORBIDDEN)
3Limite di frequenza raggiunto
4Errore server (5xx, errori di installazione/aggiornamento)
5Rete non raggiungibile

File di configurazione

La CLI archivia la sua sessione in ~/.floop/config.json con permessi 0600 (lettura/scrittura solo per il proprietario). Il file contiene:

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

Il supporto per il portachiavi del sistema operativo (macOS Keychain, Windows Credential Manager) è nella roadmap.

Privacy & telemetria

Al primo avvio interattivo, la CLI chiede se vuoi condividere dati di utilizzo anonimi. È opt-in — scegli n e non viene mai inviato niente. Scegli y e la CLI invia un POST a /api/cli/telemetry per ogni uscita di comando, contenente esattamente:

  • anonymousId — esadecimale casuale generato all'opt-in, mai associato al tuo account
  • command — nome del comando di primo livello (es. new, list)
  • exitCode
  • durationMs
  • version — versione della CLI
  • osdarwin / win32 / linux

Noninviamo: prompt, nomi di progetti, contenuto dei file, argomenti dei comandi, la tua email, il tuo indirizzo IP (il backend registra l'IP della richiesta per la limitazione della frequenza; non viene associato alle righe di telemetria). Il payload completo è costituito dai sei campi sopra.

La lista di esclusione — la telemetria non si attiva mai per floop config, floop completion, floop help, --help, o --version(questi sono circolari, spesso reindirizzati, o privi di contenuto). La telemetria ha un timeout rigido di 1 secondo e non ritarda mai l'uscita della CLI.

Disabilitala in qualsiasi momento: floop config set telemetry false. O modifica manualmente ~/.floop/config.json.

Sorgente & release

I binari precompilati per macOS, Windows e Linux vengono pubblicati su GitHub Releases ad ogni tag cli-v*. Le note di rilascio includono le istruzioni di installazione e i checksum SHA256.

Per l'elenco degli artefatti di rilascio, sfoglia le ultime release.