Interfaz de Línea de Comandos
FloopFloop CLI
Instala la CLI de FloopFloop, autoriza un dispositivo y controla cada proyecto desde tu terminal — `floop login`, `floop new`, `floop chat`, `floop refine` y más.
Última actualización:
FloopFloop CLI
El FloopFloop CLI (floop) es un cliente de línea de comandos de binario único para la plataforma FloopFloop. Hace todo lo que hace la consola web — crear proyectos a partir de un prompt, ver despliegues en vivo, refinar proyectos en un chat REPL — sin salir de tu terminal.
A diferencia de las claves de API (que están restringidas al plan Business), los tokens de dispositivo del CLI están vinculados a tu plan de cuenta normal, exactamente igual que al iniciar sesión en la web. El CLI es para humanos; las claves de API son para scripts.
Instalación
Elige el binario correcto para tu máquina y colócalo en tu $PATH. La tabla de instalación completa (con botones de copia) está en 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.exeEl primer inicio en macOS o Windows advertirá que el binario no está firmado todavía. En macOS, haz clic derecho → Abrir, o ejecuta xattr -d com.apple.quarantine /usr/local/bin/floop. En Windows, haz clic en "Más información" → "Ejecutar de todas formas".
Iniciar sesión
Autoriza el dispositivo con tu cuenta de FloopFloop. El CLI abre tu navegador, haces clic en Aprobar y el CLI recibe un token de larga duración vinculado a este equipo.
floop loginEn una máquina sin interfaz gráfica (SSH, CI, Docker), usa el flujo de dispositivo en su lugar:
floop login --deviceObtendrás un código para pegar en floopfloop.com/device. Una vez aprobado, el CLI recibe el token y lo guarda en ~/.floop/config.json con permisos 0600.
Verifica la sesión activa con floop whoami. Cierra sesión con floop logout. Gestiona todos los dispositivos con sesión iniciada desde Cuenta → Dispositivos.
Comandos
floop new <prompt>
Crea un nuevo proyecto y (por defecto) espera a que esté en vivo.
floop new "a crypto RSI dashboard for BTC and ETH" --subdomain my-rsi| Flag | Descripción |
|---|---|
--name <name> | Nombre del proyecto (por defecto, las primeras palabras del prompt) |
--subdomain <slug> | Subdominio (por defecto, un slug del nombre) |
--bot-type <type> | Uno de site, app, bot, api, internal, game |
--team <teamId> | Crear en un espacio de trabajo de equipo |
--no-wait | Devuelve inmediatamente tras encolar; no muestra el progreso en tiempo real |
--json | Emite JSON legible por máquina |
floop list (alias ls)
Lista tus proyectos en una tabla o como JSON.
floop list
floop list --json
floop list --team team_abc123floop status <project>
Muestra el estado de compilación de un proyecto. Acepta tanto el ID del proyecto como el subdominio. Añade --watch para transmitir el progreso en tiempo real hasta que la compilación alcance un estado terminal.
floop status my-rsi
floop status my-rsi --watch
floop status my-rsi --jsonfloop chat <project>
Abre un REPL interactivo vinculado a un proyecto. Cada línea que escribes se envía como un refinamiento, con el progreso de la compilación en vivo. Comandos de barra:
/help— muestra todos los comandos de barra/status— estado en un solo paso/open— abre la URL en vivo/clear— limpia la pantalla/exit— sale del REPL (Ctrl+D también funciona)
Durante una compilación, Ctrl+C detiene la visualización; la compilación continúa ejecutándose en el servidor. Presiona Ctrl+C de nuevo (o /exit) para salir realmente del REPL.
floop refine <project> "<message>"
Refinamiento no interactivo — el gemelo para scripts de floop chat. Envía un mensaje de refinamiento y sale, sin entrar en el REPL. Útil para pipelines de CI ("refinar la página de inicio cuando se fusione esta rama") o ajustes puntuales.
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| Flag | Descripción |
|---|---|
--watch | Sigue la compilación resultante hasta un estado terminal (live / failed / cancelled / archived). Sin esta flag, devuelve inmediatamente tras encolar. |
--code-only | Establece codeEditOnly: true — omite el replanning / rediseño y ejecuta un parche en 3 pasos en lugar de la reconstrucción completa de 6 pasos. Consume aproximadamente la mitad de un crédito de refinamiento. Ideal para ediciones de texto, cambios de color y correcciones de erratas en un proyecto que ya está en vivo. |
--json | Emite JSON legible por máquina. Muestra las tres formas de respuesta — processing (compilación iniciada), queued (en cola detrás de una compilación actual), o queued: false (guardado como mensaje de chat, sin compilación). |
floop cancel <project> · floop reactivate <project> [--watch]
Cancela una compilación en curso o reactiva un proyecto previamente cancelado.reactivate inicia una nueva compilación con el prompt más reciente del proyecto; con --watch el comando sigue la nueva compilación hasta un estado terminal (live / failed / cancelled / archived) en lugar de volver inmediatamente. Mismo patrón de sondeo con deduplicación que floop status --watch y floop refine --watch.
floop cancel my-bot
floop reactivate my-bot
floop reactivate my-bot --watch
floop reactivate my-bot --watch --jsonfloop open <project>
Abre la URL en vivo del proyecto en tu navegador predeterminado. Usa como alternativa https://<subdomain>.floop.tech si la API aún no ha devuelto una URL personalizada.
floop upgrade
Reemplaza el binario floop con la última versión de GitHub Releases. Verifica el SHA256 contra el archivo SHA256SUMS publicado antes de reemplazarlo. Añade --check para solo comprobar si hay una actualización sin instalarla.
floop upgrade
floop upgrade --checkSolo funciona con binarios compilados. Si instalaste mediante npm o estás ejecutando node dist/index.js desde el código fuente, el comando lo rechazará y te indicará la herramienta correcta.
floop docs · floop feedback
Atajos rápidos: floop docs abre esta página, floop feedback abre el formulario de soporte / reporte de problemas en floopfloop.com.
floop completion <bash|zsh|fish|powershell>
Imprime un script de autocompletado de shell en la salida estándar. Instalación por 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)Por ahora el autocompletado es estático — conoce los nombres de comandos y subcomandos, pero no tus subdominios de proyectos. El autocompletado dinámico mediante una caché local está en el roadmap.
floop config get [key] · floop config set <key> <value>
Lee o cambia la configuración local del CLI. Claves configurables: apiUrl(sobreescribe la URL base de la API — útil para staging o instalaciones propias) y telemetry (true/false).
floop config get
floop config get telemetry
floop config set telemetry false
floop config set apiUrl https://staging.floopfloop.comEl almacenamiento de tokens no es configurable intencionalmente mediante config set— esa decisión mantiene los tokens fuera del historial del shell. Usa floop login / floop logout para gestionar la sesión activa.
floop usage
Muestra tu plan, créditos disponibles (este mes + acumulados + utilizados en total), y el uso del período actual (proyectos creados, compilaciones, refinamientos, almacenamiento, ancho de banda) frente a los límites de tu plan.
floop usage
floop usage --jsonfloop conversations <project> (alias history)
Imprime el historial de chat del proyecto — mensajes del usuario, respuestas del asistente y marcadores de despliegue (● Deployed v2) en orden cronológico. Añade --limit 10 para mostrar solo las últimas 10 entradas.
floop conversations my-bot
floop history my-bot --limit 5
floop conversations my-bot --jsonfloop keys <list|create|rm>
Gestiona claves de API programáticas (flp_…) para uso en scripts de CI/CD.Diferentes de los tokens de dispositivo de floop login — esos son para humanos, vinculados a tu plan normal; las claves de API son programáticas, requieren el plan Business, y se pueden revocar individualmente desde el panel de control o por nombre/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"El subcomando rmse niega a revocar la clave de API con la que se está realizando la llamada — usa una clave diferente (o revoca desde el panel de control) si realmente quieres eliminarla.
floop library <list|clone>
Explora proyectos de biblioteca públicos y clónalos en tu cuenta.
floop library list
floop library list --search "trading bot" --sort popular
floop library clone <projectId> --subdomain my-forkREPL de chat: /attach <file> + selector interactivo
Dentro de floop chat, adjunta un archivo a tu próximo mensaje de refinamiento:
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 thisEl CLI sube el archivo mediante el flujo de PUT prefirmado existente; los tipos permitidos son png/jpg/gif/svg/webp/ico/pdf/txt/csv/doc/docx, máx. 5 MB. El archivo adjunto se consume con el siguiente mensaje que envíes — escribir más comandos de barra o presionar enter en una línea en blanco lo mantiene pendiente.
floop chat sin argumento de proyecto muestra un selector numerado de tus proyectos. Con un solo proyecto, lo selecciona directamente.
floop subdomain check <slug> · floop subdomain suggest "<prompt>"
Herramientas de scripting para floop new. check devuelve 0 si el slug está disponible, 1 en caso contrario. suggestimprime un slug disponible derivado de un prompt — pásalo directamente 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>]
Gestiona variables de entorno de solo escritura en un proyecto. Los valores nunca son devueltos por la API — list solo muestra metadatos (clave, últimos 4 caracteres, marcas de tiempo). El subcomando set lee el valor de --value, --from-envo stdin (en ese orden) — prefiere stdin o --from-env para valores sensibles para que no acaben en el historial del 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_KEYLas claves deben estar en UPPER_SNAKE_CASE, empezar con una letra y tener máx. 64 caracteres (coincide con el validador de secretos del proyecto).
Scripting
Todos los comandos admiten --json. Combinado con jq y la variable de entorno FLOOP_TOKEN (que omite el inicio de sesión interactivo), el CLI es adecuado para uso 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 de entorno
| Variable | Propósito |
|---|---|
FLOOP_API_URL | Sobreescribe la URL base de la API. Por defecto: https://www.floopfloop.com. Útil para staging. |
FLOOP_TOKEN | Token Bearer a usar en lugar del que está en ~/.floop/config.json. Útil para CI. |
Códigos de salida
Códigos de salida documentados para scripting en shell:
| Código | Significado |
|---|---|
0 | Éxito |
1 | Error del usuario (flags incorrectas, validación, rechazo de actualización en modo dev) |
2 | Autenticación (no has iniciado sesión, token revocado, FORBIDDEN) |
3 | Límite de tasa superado |
4 | Error del servidor (5xx, fallos de instalación/actualización) |
5 | Red no disponible |
Archivo de configuración
El CLI almacena su sesión en ~/.floop/config.json con permisos 0600 (solo lectura/escritura del propietario). El archivo contiene:
{
"apiUrl": "https://www.floopfloop.com",
"token": "flp_cli_…",
"tokenPrefix": "flp_cli_a1b2…",
"user": { "id": "...", "email": "you@example.com", "name": "..." }
}El soporte para llaveros del sistema operativo (macOS Keychain, Windows Credential Manager) está en el roadmap.
Privacidad & telemetría
En su primer uso interactivo, el CLI pregunta si quieres compartir datos de uso anónimos. Es opt-in — elige n y nunca se envía nada. Elige y y el CLI emite un POST a /api/cli/telemetry por cada salida de comando, que contiene exactamente:
anonymousId— hex aleatorio generado al hacer opt-in, nunca vinculado a tu cuentacommand— nombre del comando de nivel superior (p. ej.new,list)exitCodedurationMsversion— versión del CLIos—darwin/win32/linux
No enviamos: prompts, nombres de proyectos, contenido de archivos, argumentos de comandos, tu correo electrónico ni tu dirección IP (el backend registra la IP de la solicitud para la limitación de tasa; no se une a las filas de telemetría). El payload completo son los seis campos anteriores.
La lista de exclusión — la telemetría nunca se activa para floop config, floop completion, floop help, --help, ni --version (son circulares, a menudo se redirigen por pipe, o no tienen contenido informativo). La telemetría tiene un tiempo de espera máximo de 1 segundo y nunca retrasa la salida del CLI.
Desactívala en cualquier momento: floop config set telemetry false. O edita manualmente ~/.floop/config.json.
Código fuente & versiones
Los binarios precompilados para macOS, Windows y Linux se publican en GitHub Releases en cada etiqueta cli-v*. Las notas de versión incluyen instrucciones de instalación y sumas de verificación SHA256.
Para ver la lista de artefactos de versión, consulta las últimas versiones.