Interfejs Wiersza Poleceń

FloopFloop CLI

Zainstaluj CLI FloopFloop, autoryzuj urządzenie i zarządzaj każdym projektem z terminala — `floop login`, `floop new`, `floop chat`, `floop refine` i więcej.

Ostatnia aktualizacja:

FloopFloop CLI

FloopFloop CLI (floop) to jednoarchitekturowy klient wiersza poleceń dla platformy FloopFloop. Robi wszystko to, co konsola webowa — tworzy projekty na podstawie podpowiedzi, monitoruje wdrożenia na żywo, ulepsza projekty w trybie czatu REPL — bez opuszczania terminalu.

W odróżnieniu od kluczy API (które są dostępne tylko w planie Business), tokeny urządzeń CLI są powiązane z Twoim standardowym planem konta, dokładnie tak jak logowanie przez przeglądarkę. CLI jest dla ludzi; klucze API są dla skryptów.

Instalacja

Wybierz odpowiedni plik binarny dla swojego systemu i umieść go w $PATH. Pełna siatka instalacji (z przyciskami kopiowania) znajduje się na 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

Pierwsze uruchomienie w systemie macOS lub Windows spowoduje ostrzeżenie, że plik binarny nie jest jeszcze podpisany. W systemie macOS kliknij prawym przyciskiem myszy → Otwórz lub uruchom xattr -d com.apple.quarantine /usr/local/bin/floop. W systemie Windows kliknij "Więcej informacji" → "Uruchom mimo to".

Logowanie

Autoryzuj urządzenie na swoim koncie FloopFloop. CLI otwiera przeglądarkę, klikasz Zatwierdź, a CLI otrzymuje długotrwały token powiązany z tym urządzeniem.

floop login

Na urządzeniu bez interfejsu graficznego (SSH, CI, Docker) użyj zamiast tego przepływu urządzenia:

floop login --device

Otrzymasz kod do wklejenia na stronie floopfloop.com/device. Po zatwierdzeniu CLI otrzymuje token i zapisuje go w ~/.floop/config.json z uprawnieniami 0600.

Sprawdź aktywną sesję poleceniem floop whoami. Wyloguj się poleceniem floop logout. Zarządzaj wszystkimi zalogowanymi urządzeniami w Konto → Urządzenia.

Polecenia

floop new <prompt>

Utwórz nowy projekt i (domyślnie) poczekaj, aż będzie dostępny.

floop new "a crypto RSI dashboard for BTC and ETH" --subdomain my-rsi
FlagaOpis
--name <name>Nazwa projektu (domyślnie: pierwsze słowa podpowiedzi)
--subdomain <slug>Subdomena (domyślnie: slug nazwy)
--bot-type <type>Jedna z wartości: site, app, bot, api, internal, game
--team <teamId>Utwórz w przestrzeni roboczej zespołu
--no-waitWróć natychmiast po dodaniu do kolejki; nie strumieniuj postępu
--jsonZwróć dane w formacie JSON czytelnym dla maszyn

floop list (alias ls)

Wyświetl swoje projekty w tabeli lub jako JSON.

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

floop status <project>

Pokaż stan kompilacji projektu. Akceptuje identyfikator projektu lub subdomenę. Dodaj --watch, aby strumieniować postęp w miejscu, dopóki kompilacja nie osiągnie stanu końcowego.

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

floop chat <project>

Otwórz interaktywny REPL powiązany z projektem. Każda wpisana linia jest wysyłana jako udoskonalenie z podglądem postępu kompilacji na żywo. Polecenia ukośnikowe:

  • /help — pokaż wszystkie polecenia ukośnikowe
  • /status — jednorazowy status
  • /open — otwórz aktywny URL
  • /clear — wyczyść ekran
  • /exit — wyjdź z REPL (działa też Ctrl+D)

Podczas kompilacji Ctrl+C zatrzymuje obserwację; kompilacja jest kontynuowana po stronie serwera. Naciśnij ponownie Ctrl+C (lub /exit), aby rzeczywiście zamknąć REPL.

floop refine <project> "<message>"

Nieinteraktywne udoskonalanie — odpowiednik skryptowy floop chat. Wysyła jedną wiadomość udoskonalającą i kończy działanie, bez przechodzenia do REPL. Przydatne w potokach CI ("udoskonal stronę główną, gdy ta gałąź zostanie scalona") lub do jednorazowych poprawek.

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
FlagaOpis
--watchŚledź wynikającą kompilację do stanu końcowego (live / failed / cancelled / archived). Bez tej flagi wraca natychmiast po dodaniu do kolejki.
--code-onlyUstawia codeEditOnly: true — pomija ponowne planowanie/przeprojektowanie i uruchamia 3-etapową poprawkę w miejscu zamiast pełnej 6-etapowej przebudowy. Kosztuje około połowy kredytu za udoskonalenie. Najlepsze do edycji tekstu, zmiany kolorów, poprawek literówek w już działającym projekcie.
--jsonZwróć dane w formacie JSON czytelnym dla maszyn. Ujawnia wszystkie trzy kształty odpowiedzi — processing (kompilacja rozpoczęta), queued (w kolejce za bieżącą kompilacją) lub queued: false (zapisane jako wiadomość czatu, brak kompilacji).

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

Anuluj uruchomioną kompilację lub reaktywuj wcześniej anulowany projekt. Polecenie reactivate uruchamia nową kompilację z najnowszym promptem projektu; z flagą --watch polecenie śledzi nową kompilację do stanu końcowego (live / failed / cancelled / archived) zamiast wracać natychmiast. Ten sam wzorzec odpytywania z deduplikacją co floop status --watch i 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>

Otwórz aktywny URL projektu w domyślnej przeglądarce. Powraca do https://<subdomain>.floop.tech, jeśli API nie udostępniło jeszcze niestandardowego URL.

floop upgrade

Zastąp plik binarny floop najnowszą wersją z GitHub Releases. Weryfikuje SHA256 względem opublikowanego pliku SHA256SUMS przed zamianą. Dodaj --check, aby tylko sprawdzić dostępność aktualizacji bez instalowania.

floop upgrade
floop upgrade --check

Działa tylko dla skompilowanych plików binarnych. Jeśli zainstalowałeś przez npm lub uruchamiasz node dist/index.js ze źródeł, polecenie odmówi i wskaże właściwe narzędzie.

floop docs · floop feedback

Szybkie skróty: floop docs otwiera tę stronę, floop feedback otwiera formularz wsparcia/zgłaszania problemów na floopfloop.com.

floop completion <bash|zsh|fish|powershell>

Wydrukuj skrypt uzupełniania powłoki na standardowe wyjście. Instalacja według powłoki:

# 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)

Obecnie uzupełnianie jest statyczne — zna nazwy poleceń i podpoleceń, ale nie subdomeny Twoich projektów. Dynamiczne uzupełnianie z lokalną pamięcią podręczną jest w planach.

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

Odczytaj lub zmień lokalne ustawienia CLI. Klucze do ustawienia: apiUrl(nadpisuje bazowy URL API — przydatne dla środowisk staging lub self-hosted) oraz telemetry (true/false).

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

Przechowywanie tokenów celowo NIE jest konfigurowalne przez config set— ta zasada zapobiega pojawianiu się tokenów w historii powłoki. Używaj floop login / floop logout do zarządzania aktywną sesją.

floop usage

Pokaż swój plan, dostępne kredyty (w tym miesiącu + przeniesione + użyte łącznie) oraz zużycie w bieżącym okresie (utworzone projekty, kompilacje, udoskonalenia, przestrzeń dyskowa, przepustowość) względem limitów planu.

floop usage
floop usage --json

floop conversations <project> (alias history)

Wydrukuj historię czatu projektu — wiadomości użytkownika, odpowiedzi asystenta i znaczniki wdrożeń (● Deployed v2) w porządku chronologicznym. Dodaj --limit 10, aby pokazać tylko ostatnie 10 wpisów.

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

floop keys <list|create|rm>

Zarządza programowymi kluczami API (flp_…) do użycia w skryptach CI/CD. Różnią się od tokenów urządzeń z floop login— te są dla ludzi, powiązane ze standardowym planem; klucze API są programowe, wymagają planu Business i mogą być odwoływane indywidualnie z panelu lub po nazwie/id poleceniem 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"

Podpolecenie rmodmawia odwołania klucza API, którym wykonywane jest wywołanie — użyj innego klucza (lub odwołaj z panelu), jeśli naprawdę chcesz go usunąć.

floop library <list|clone>

Przeglądaj publiczne projekty biblioteki i klonuj je do swojego konta.

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

REPL czatu: /attach <file> + interaktywny selektor

Wewnątrz floop chat dołącz plik do następnej wiadomości udoskonalającej:

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

CLI przesyła plik przez istniejący mechanizm presigned-PUT; dozwolone typy to png/jpg/gif/svg/webp/ico/pdf/txt/csv/doc/docx, maksymalnie 5 MB. Załącznik jest zużywany przez następną wiadomość — wpisanie kolejnych poleceń ukośnikowych lub naciśnięcie Enter na pustej linii zachowuje go jako oczekujący.

floop chat bez argumentu projektu wyświetla numerowany selektor Twoich projektów. Jeśli projekt jest jeden, wybiera go bezpośrednio.

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

Pomocniki skryptowe dla floop new. Polecenie check kończy się kodem 0, jeśli slug jest wolny, w przeciwnym razie kodem 1. Polecenie suggest wypisuje dostępny slug wywnioskowany z podpowiedzi — przekaż go bezpośrednio do --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>]

Zarządzaj zmiennymi środowiskowymi tylko do zapisu w projekcie. Wartości nigdy nie są zwracane przez API — polecenie list pokazuje tylko metadane (klucz, ostatnie 4 znaki, znaczniki czasu). Podpolecenie set odczytuje wartość z --value, --from-envlub stdin (w tej kolejności) — preferuj stdin lub --from-env dla wrażliwych wartości, aby nie trafiły do historii powłoki.

# 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

Klucze muszą mieć format UPPER_SNAKE_CASE, zaczynać się od litery i mieć maksymalnie 64 znaki (zgodne z walidatorem sekretów projektu).

Skryptowanie

Każde polecenie obsługuje flagę --json. W połączeniu z jq i zmienną środowiskową FLOOP_TOKEN (która pomija interaktywne logowanie), CLI nadaje się do użytku w 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

Zmienne środowiskowe

ZmiennaPrzeznaczenie
FLOOP_API_URLNadpisuje bazowy URL API. Domyślnie: https://www.floopfloop.com. Przydatne dla środowisk staging.
FLOOP_TOKENToken Bearer używany zamiast tego z pliku ~/.floop/config.json. Przydatne w CI.

Kody wyjścia

Udokumentowane kody wyjścia do skryptowania powłoki:

KodZnaczenie
0Sukces
1Błąd użytkownika (nieprawidłowe flagi, walidacja, odmowa aktualizacji w trybie deweloperskim)
2Uwierzytelnianie (niezalogowany, token odwołany, ZABRONIONY)
3Przekroczono limit żądań
4Błąd serwera (5xx, błędy instalacji/aktualizacji)
5Sieć niedostępna

Plik konfiguracyjny

CLI przechowuje swoją sesję w pliku ~/.floop/config.json z uprawnieniami 0600 (tylko właściciel może czytać i pisać). Plik zawiera:

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

Obsługa systemowego pęku kluczy (macOS Keychain, Windows Credential Manager) jest w planach.

Prywatność & telemetria

Przy pierwszym interaktywnym uruchomieniu CLI pyta, czy chcesz udostępniać anonimowe dane użytkowania. Jest to opt-in — wybierz n i nic nigdy nie zostanie wysłane. Wybierz y, a CLI wyśle jedno żądanie POST do /api/cli/telemetry przy każdym zakończeniu polecenia, zawierające dokładnie:

  • anonymousId — losowy hex generowany przy opt-in, nigdy niepowiązany z Twoim kontem
  • command — nazwa polecenia najwyższego poziomu (np. new, list)
  • exitCode
  • durationMs
  • version — wersja CLI
  • osdarwin / win32 / linux

Nie wysyłamy: podpowiedzi, nazw projektów, zawartości plików, argumentów poleceń, adresu e-mail, adresu IP (backend rejestruje IP żądania na potrzeby ograniczania szybkości; nie jest łączony z wierszami telemetrii). Pełny ładunek to sześć powyższych pól.

Lista wykluczeń — telemetria nigdy nie jest uruchamiana dla floop config, floop completion, floop help, --help ani --version (są one albo cykliczne, często przekazywane potokiem lub pozbawione treści). Telemetria ma stały limit czasu wynoszący 1 sekundę i nigdy nie opóźnia zakończenia CLI.

Wyłącz w dowolnym momencie: floop config set telemetry false. Lub ręcznie edytuj ~/.floop/config.json.

Źródła & wydania

Gotowe pliki binarne dla systemów macOS, Windows i Linux są publikowane w GitHub Releases przy każdym tagu cli-v*. Informacje o wydaniu zawierają instrukcje instalacji i sumy kontrolne SHA256.

Aby zobaczyć listę artefaktów wydania, odwiedź najnowsze wydania.