floop-client
floop-client is the CLI for project/version uploads and server comments.
floop-client is intentionally small. It helps agents and users choose the right local project/version, upload the right files to floop-server, read server comments, and resolve comments after a newer version addresses them.
It does not build artifacts, validate design tokens, generate UI, or decide which files belong to another tool. The tool or user that owns the files places them in a floop version directory; floop handles the upload and comment loop.
Core Flow
Create/select project -> Create/select version -> Add files -> Upload -> Read comments -> Resolve comments
Installation
pip install floop
Verify:
floop --version
Quick Start
# 1. Initialize workspace
cd your-project
floop init
# 2. Install the floop skill into your AI agent
floop enable copilot # or: cursor, claude, trae, qwen-code, opencode, openclaw
# 3. Create and select a local project
floop projects create my-review
floop projects use my-review
# 4. Create and select a version
floop versions create v1 --project my-review --artifact-type custom --entrypoint index.html
floop versions use v1 --project my-review
# 5. Put uploadable files in .floop/my-review/v1/
# 6. Configure server access and upload
floop review set --project my-review
floop review upload --project my-review --version v1 --json-output
# 7. Read server comments and cache them locally
floop comments --project my-review --version v1 --version-id <server-version-id> --json-output
# 8. Resolve addressed comments after a newer version has been uploaded
floop resolve <comment-id> --project my-review --version-id <server-version-id> --status resolved
Workspace
.floop/
├─ floop.env # Server URL + API key only
├─ projects.csv # Local projects, server bindings, selected project/version
└─ <projectid>/
└─ <version>/
├─ floop.version.json
├─ floop.upload.json
├─ floop.comments.json
└─ ...uploadable files...
.floop/floop.env contains secrets. floop-client warns through docs and command
copy, but it does not create or edit .floop/.gitignore; ignore policy belongs
to the host repository.
Legacy workspaces under .floop/projects/<project>/versions/<version>/ are
readable for compatibility. floop-client does not move or delete legacy files
automatically.
Commands
Workspace
floop init
floop preview
Projects
floop projects
floop projects create <project>
floop projects use <project>
Versions
floop versions --project <project>
floop versions create <version> --project <project> --artifact-type <type> --entrypoint index.html
floop versions use <version> --project <project>
When a project and version are selected, commands that support defaults can use the selected values.
Server
floop review set --project <project>
floop review upload --project <project> --version <version> --json-output
floop comments --project <project> --version <local-version> --version-id <server-version-id> --json-output
floop resolve <comment-id> --project <project> --version-id <server-version-id> --status resolved
Responsibility Boundary
| floop-client owns | Other tools or users own |
|---|---|
.floop/ workspace |
Source files |
projects.csv project/version selection |
File generation |
| Server project binding | File validation |
| Version upload | Build systems |
| Server comments cache | Artifact internals |
| Comment status updates | Content changes |
Supported Agents
| Agent | Command |
|---|---|
| GitHub Copilot | floop enable copilot |
| Cursor | floop enable cursor |
| Claude Code | floop enable claude |
| Trae IDE | floop enable trae |
| Qwen Code | floop enable qwen-code |
| OpenCode | floop enable opencode |
| OpenClaw | floop enable openclaw |
For Contributors
Run the full test gate:
PYTHONPATH=src python3 -m pytest --cov=floop --cov-report=term-missing --cov-fail-under=100
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file floop-2.0.1.tar.gz.
File metadata
- Download URL: floop-2.0.1.tar.gz
- Upload date:
- Size: 32.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fabb5f1115ea5296ee8da45edc5dcc8beaa8d151ff99068309e135226934bad
|
|
| MD5 |
b5876f4d8e1dedb9179da08ec0350783
|
|
| BLAKE2b-256 |
ac2a7aed9e188724a27e6415819c303a742535a674459a97debf20a09d119896
|
Provenance
The following attestation bundles were made for floop-2.0.1.tar.gz:
Publisher:
release.yml on lijma/floop-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
floop-2.0.1.tar.gz -
Subject digest:
9fabb5f1115ea5296ee8da45edc5dcc8beaa8d151ff99068309e135226934bad - Sigstore transparency entry: 2255229773
- Sigstore integration time:
-
Permalink:
lijma/floop-client@1e5d9e0012e923df3cbb76bbe5a69ef68e3f00db -
Branch / Tag:
refs/tags/v2.0.1 - Owner: https://github.com/lijma
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1e5d9e0012e923df3cbb76bbe5a69ef68e3f00db -
Trigger Event:
push
-
Statement type:
File details
Details for the file floop-2.0.1-py3-none-any.whl.
File metadata
- Download URL: floop-2.0.1-py3-none-any.whl
- Upload date:
- Size: 24.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
876fb4dffa8c3eed0d78234e3ae3323b287a657805c4043e71171fb510e9be65
|
|
| MD5 |
7f74f3fdefee9ab67d3cdea78b843099
|
|
| BLAKE2b-256 |
58381fc6b7c5a4b689cb5870ca5d5608ef3158c83e32ee697dd283ac2072b526
|
Provenance
The following attestation bundles were made for floop-2.0.1-py3-none-any.whl:
Publisher:
release.yml on lijma/floop-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
floop-2.0.1-py3-none-any.whl -
Subject digest:
876fb4dffa8c3eed0d78234e3ae3323b287a657805c4043e71171fb510e9be65 - Sigstore transparency entry: 2255229777
- Sigstore integration time:
-
Permalink:
lijma/floop-client@1e5d9e0012e923df3cbb76bbe5a69ef68e3f00db -
Branch / Tag:
refs/tags/v2.0.1 - Owner: https://github.com/lijma
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1e5d9e0012e923df3cbb76bbe5a69ef68e3f00db -
Trigger Event:
push
-
Statement type: