명령줄 인터페이스

FloopFloop CLI

FloopFloop CLI를 설치하고 디바이스를 인증하여 터미널에서 모든 프로젝트를 제어합니다 — `floop login`, `floop new`, `floop chat`, `floop refine` 등.

마지막 업데이트:

FloopFloop CLI

FloopFloop CLI(floop)는 FloopFloop 플랫폼용 단일 바이너리 커맨드라인 클라이언트입니다. 웹 콘솔에서 할 수 있는 모든 작업 — 프롬프트로 프로젝트 생성, 배포 실시간 모니터링, 채팅 REPL에서 프로젝트 개선 — 을 터미널을 벗어나지 않고 수행할 수 있습니다.

API 키(Business 플랜에서만 사용 가능)와 달리, CLI 디바이스 토큰은 웹에서 로그인하는 것과 동일하게 일반 계정 플랜으로 범위가 제한됩니다. CLI는 사람이 사용하는 도구이며, API 키는 스크립트용입니다.

설치

사용 중인 머신에 맞는 바이너리를 선택하여 $PATH에 추가하십시오. 전체 설치 표(복사 버튼 포함)는 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

macOS 또는 Windows에서 처음 실행 시 바이너리가 서명되지 않았다는 경고가 표시될 수 있습니다. macOS에서는 우클릭 → 열기를 선택하거나, xattr -d com.apple.quarantine /usr/local/bin/floop을 실행하십시오. Windows에서는 "추가 정보" → "실행"을 클릭하십시오.

로그인

FloopFloop 계정에 디바이스를 인증합니다. CLI가 브라우저를 열면 승인을 클릭하면, CLI가 이 머신에 바인딩된 장기 토큰을 수신합니다.

floop login

헤드리스 머신(SSH, CI, Docker)에서는 디바이스 플로우 사용하십시오:

floop login --device

floopfloop.com/device에 붙여넣을 코드가 제공됩니다. 승인되면 CLI가 토큰을 수신하여 ~/.floop/config.json0600 권한으로 저장합니다.

현재 세션은 floop whoami로 확인하십시오. 로그아웃은 floop logout으로 하십시오. 로그인된 모든 디바이스는 계정 → 디바이스에서 관리할 수 있습니다.

명령어

floop new <prompt>

새 프로젝트를 생성하고 (기본값으로) 프로젝트가 라이브 상태가 될 때까지 대기합니다.

floop new "a crypto RSI dashboard for BTC and ETH" --subdomain my-rsi
플래그설명
--name <name>프로젝트 이름 (기본값: 프롬프트의 첫 단어들)
--subdomain <slug>서브도메인 (기본값: 이름의 슬러그)
--bot-type <type>site, app, bot, api, internal, game 중 하나
--team <teamId>팀 워크스페이스 하위에 생성
--no-wait큐에 추가한 후 즉시 반환하며 진행 상황을 스트리밍하지 않습니다
--json기계 가독 JSON 출력

floop list (별칭 ls)

프로젝트를 표 형식 또는 JSON으로 나열합니다.

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

floop status <project>

프로젝트의 빌드 상태를 표시합니다. 프로젝트 ID 또는 서브도메인을 모두 허용합니다. 빌드가 터미널 상태에 도달할 때까지 진행 상황을 실시간으로 스트리밍하려면 --watch를 추가하십시오.

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

floop chat <project>

프로젝트에 바인딩된 대화형 REPL을 엽니다. 입력하는 각 줄이 개선 요청으로 전송되며, 실시간 빌드 진행 상황이 표시됩니다. 슬래시 명령어:

  • /help — 모든 슬래시 명령어 표시
  • /status — 단발성 상태 확인
  • /open — 라이브 URL 열기
  • /clear — 화면 지우기
  • /exit — REPL 종료 (Ctrl+D도 동작)

빌드 중 Ctrl+C를 누르면 모니터링이 중지되지만, 빌드는 서버 측에서 계속 실행됩니다. Ctrl+C를 다시 누르거나 /exit를 입력하면 REPL이 완전히 종료됩니다.

floop refine <project> "<message>"

비대화형 개선 — floop chat의 스크립팅 버전입니다. 하나의 개선 메시지를 전송하고 REPL에 진입하지 않고 종료합니다. CI 파이프라인("이 브랜치가 병합될 때 홈페이지를 개선")이나 일회성 수정에 유용합니다.

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
플래그설명
--watch결과 빌드가 터미널 상태(live / failed / cancelled / archived)에 도달할 때까지 실시간으로 모니터링합니다. 이 옵션 없이는 큐에 추가한 후 즉시 반환됩니다.
--code-onlycodeEditOnly: true로 설정 — 재계획/재설계를 건너뛰고 전체 6단계 재빌드 대신 3단계 인플레이스 패치를 실행합니다. 개선 크레딧의 약 절반을 소비합니다. 이미 라이브 상태인 프로젝트의 텍스트 수정, 색상 변경, 오타 수정에 최적입니다.
--json기계 가독 JSON 출력. 세 가지 응답 형태 — processing(빌드 시작됨), queued(현재 빌드 뒤에 대기 중), 또는 queued: false(채팅 메시지로 저장됨, 빌드 없음) — 를 모두 표시합니다.

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

실행 중인 빌드를 취소하거나 이전에 취소된 프로젝트를 재활성화합니다.reactivate는 프로젝트의 최근 프롬프트로 새 빌드를 시작하며,--watch를 사용하면 즉시 반환하지 않고 새 빌드가 터미널 상태(live / failed / cancelled / archived)에 도달할 때까지 실시간으로 모니터링합니다. floop status --watch 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>

기본 브라우저에서 프로젝트의 라이브 URL을 엽니다. API가 아직 커스텀 URL을 반환하지 않은 경우 https://<subdomain>.floop.tech로 대체합니다.

floop upgrade

floop 바이너리를 최신 GitHub 릴리스로 교체합니다. 교체 전에 공개된 SHA256SUMS와 SHA256을 검증합니다. 설치 없이 업데이트 여부만 확인하려면 --check를 추가하십시오.

floop upgrade
floop upgrade --check

컴파일된 바이너리에서만 작동합니다. npm을 통해 설치했거나 소스에서 node dist/index.js를 실행하는 경우, 명령어가 거부되고 적합한 도구를 안내합니다.

floop docs · floop feedback

빠른 바로가기: floop docs는 이 페이지를 열고, floop feedback은 floopfloop.com의 지원/버그 신고 양식을 엽니다.

floop completion <bash|zsh|fish|powershell>

쉘 자동완성 스크립트를 표준 출력으로 출력합니다. 각 쉘별 설치 방법:

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

현재 자동완성은 정적 방식 — 명령어와 하위 명령어 이름만 알고, 프로젝트 서브도메인은 포함되지 않습니다. 로컬 캐시를 통한 동적 자동완성은 로드맵에 있습니다.

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

로컬 CLI 설정을 읽거나 변경합니다. 설정 가능한 키: apiUrl(API 기본 URL 재정의 — 스테이징 또는 자체 호스팅에 유용) 및 telemetry (true/false).

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

토큰 저장은 의도적으로 config set으로 설정할 수 없습니다 — 이 방식은 토큰이 쉘 히스토리에 남지 않도록 합니다. 활성 세션 관리는 floop login / floop logout을 사용하십시오.

floop usage

플랜, 사용 가능한 크레딧(이번 달 + 이월분 + 평생 사용량), 플랜 한도 대비 현재 기간 사용량(생성된 프로젝트, 빌드, 개선, 스토리지, 대역폭)을 표시합니다.

floop usage
floop usage --json

floop conversations <project> (별칭 history)

프로젝트의 채팅 기록 — 사용자 메시지, 어시스턴트 응답, 배포 마커(● Deployed v2)를 시간순으로 출력합니다. 마지막 10개 항목만 표시하려면 --limit 10을 추가하십시오.

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

floop keys <list|create|rm>

CI/CD 스크립트에서 사용하는 프로그래매틱 API 키(flp_…)를 관리합니다.floop login의 디바이스 토큰과는 다릅니다— 디바이스 토큰은 사람용으로 일반 플랜에 범위가 제한되며, API 키는 프로그래매틱 방식으로 Business 플랜이 필요하고, 대시보드 또는 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"

rm하위 명령어는 현재 호출에 사용 중인 API 키를 취소하기를 거부합니다 — 정말 삭제하고 싶다면 다른 키를 사용하거나 대시보드에서 취소하십시오.

floop library <list|clone>

공개 라이브러리 프로젝트를 탐색하고 계정으로 클론합니다.

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

채팅 REPL: /attach <file> + 대화형 선택기

floop chat 내에서 다음 개선 메시지에 파일을 첨부합니다:

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는 기존 presigned-PUT 방식으로 업로드하며, 허용되는 파일 형식은 png/jpg/gif/svg/webp/ico/pdf/txt/csv/doc/docx이고 최대 5 MB입니다. 첨부 파일은 다음에 전송하는 메시지에서 소비됩니다 — 슬래시 명령어를 더 입력하거나 빈 줄에서 엔터를 눌러도 대기 상태가 유지됩니다.

프로젝트 인수 없이 floop chat을 실행하면 프로젝트 번호 선택기가 나타납니다. 프로젝트가 하나인 경우 자동으로 선택됩니다.

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

floop new를 위한 스크립팅 헬퍼입니다. check 슬러그가 사용 가능하면 0을, 그렇지 않으면 1을 반환합니다. suggest는 프롬프트에서 파생된 사용 가능한 슬러그를 출력합니다 — --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>]

프로젝트의 쓰기 전용 환경 변수를 관리합니다. 값은 API에서 절대 반환되지 않으며 — list는 메타데이터(키, 마지막 4자리, 타임스탬프)만 표시합니다.set 하위 명령어는 --value, --from-env, 또는 stdin(이 순서로) 중 하나에서 값을 읽습니다 — 민감한 값의 경우 쉘 히스토리에 남지 않도록 stdin 또는 --from-env를 권장합니다.

# 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

키는 UPPER_SNAKE_CASE여야 하며, 문자로 시작하고, 최대 64자여야 합니다 (프로젝트 시크릿 유효성 검사기와 동일).

스크립팅

모든 명령어가 --json을 지원합니다. jq FLOOP_TOKEN 환경 변수(대화형 로그인을 우회)를 결합하면 CLI를 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

환경 변수

변수용도
FLOOP_API_URLAPI 기본 URL 재정의. 기본값: https://www.floopfloop.com. 스테이징에 유용합니다.
FLOOP_TOKEN~/.floop/config.json에 있는 토큰 대신 사용할 Bearer 토큰. CI에 유용합니다.

종료 코드

쉘 스크립팅을 위한 문서화된 종료 코드:

코드의미
0성공
1사용자 오류 (잘못된 플래그, 유효성 검사 실패, 개발 모드 업그레이드 거부)
2인증 오류 (로그인 안 됨, 토큰 취소됨, FORBIDDEN)
3요청 한도 초과
4서버 오류 (5xx, 설치/업그레이드 실패)
5네트워크 연결 불가

설정 파일

CLI는 세션을 ~/.floop/config.json 0600 권한(소유자 읽기/쓰기 전용)으로 저장합니다. 파일 내용:

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

OS 키체인 지원(macOS Keychain, Windows Credential Manager)은 로드맵에 있습니다.

개인정보 & 텔레메트리

CLI는 첫 번째 대화형 실행 시 익명 사용 데이터 공유 여부를 묻습니다.옵트인 방식n을 선택하면 아무것도 전송되지 않습니다. y를 선택하면 CLI가 각 명령어 종료 시/api/cli/telemetry에 POST를 하나 보내며, 정확히 다음 내용만 포함됩니다:

  • anonymousId — 옵트인 시 생성된 랜덤 16진수, 계정과 연결되지 않음
  • command — 최상위 명령어 이름 (예: new, list)
  • exitCode
  • durationMs
  • version — CLI 버전
  • osdarwin / win32 / linux

다음 정보는 전송하지 않습니다: 프롬프트, 프로젝트 이름, 파일 내용, 명령어 인수, 이메일, IP 주소(백엔드는 요청 IP를 속도 제한용으로 로깅하며, 텔레메트리 행과 연결되지 않습니다). 전체 페이로드는 위의 여섯 개 필드뿐입니다.

제외 목록 — floop config, floop completion, floop help, --help, --version에 대해서는 텔레메트리가 전송되지 않습니다 (이 명령어들은 순환적이거나, 자주 파이프로 사용되거나, 내용이 없습니다). 텔레메트리는 1초의 하드 타임아웃이 있으며 CLI 종료를 지연시키지 않습니다.

언제든지 비활성화: floop config set telemetry false. 또는 ~/.floop/config.json을 직접 편집하십시오.

소스 & 릴리스

macOS, Windows, Linux용 사전 빌드 바이너리는 모든 cli-v* 태그에서 GitHub Releases에 게시됩니다. 릴리스 노트에는 설치 안내와 SHA256 체크섬이 포함됩니다.

릴리스 아티팩트 목록은 최신 릴리스를 참조하십시오.