简体中文 | English
BizyAir CLI is an open-source command-line tool. Download the latest release from GitHub.
BizyAir CLI manages model files on BizyAir. It provides both an interactive terminal interface (TUI) and regular command-line commands (CLI), making it suitable for guided use, scripts, and automation.
- Interactive TUI with a guided upload workflow and file picker
- Resumable uploads using local checkpoints
- Up to three concurrent uploads
- Automatic multipart upload for files larger than 100 MB
- Image and video cover support with automatic WebP conversion
- Direct or
.txt/.mdmodel introductions - YAML batch uploads for multiple models and versions
- Live progress, transfer rate, and per-version status
- Built-in update checks, installation, and safe rollback
- Standard English and Simplified Chinese interfaces
See all published versions on the GitHub Releases page.
BizyAir CLI supports Linux, macOS, and Windows. Prebuilt binaries for each platform are available on the GitHub Releases page.
-
Download the latest release:
# Replace this with the latest version VERSION=0.2.1 # Linux amd64 wget https://github.com/siliconflow/bizyair-cli/releases/download/v${VERSION}/bizyair-v${VERSION}-linux-amd64.tar.gz # Linux arm64 # wget https://github.com/siliconflow/bizyair-cli/releases/download/v${VERSION}/bizyair-v${VERSION}-linux-arm64.tar.gz
-
Extract and install:
tar -xzvf bizyair-v${VERSION}-linux-amd64.tar.gz sudo install bizyair /usr/local/bin/bizyair # User-only installation without sudo: # mkdir -p ~/.local/bin # install bizyair ~/.local/bin/bizyair # Ensure ~/.local/bin is on PATH.
-
Verify the installation:
bizyair --version
-
Download the latest release:
VERSION=0.2.1 # Apple Silicon (M1/M2/M3 and newer) curl -LO https://github.com/siliconflow/bizyair-cli/releases/download/v${VERSION}/bizyair-v${VERSION}-macos-arm64.tar.gz # Intel macOS # curl -LO https://github.com/siliconflow/bizyair-cli/releases/download/v${VERSION}/bizyair-v${VERSION}-macos-amd64.tar.gz
-
Extract and install:
tar -xzvf bizyair-v${VERSION}-macos-arm64.tar.gz chmod +x bizyair sudo install bizyair /usr/local/bin/bizyair # User-only installation without sudo: # mkdir -p ~/.local/bin # install bizyair ~/.local/bin/bizyair
-
If macOS displays a security warning on first launch, remove the quarantine attribute:
sudo xattr -d com.apple.quarantine /usr/local/bin/bizyair
Alternatively, open System Settings → Privacy & Security, find the blocked
bizyairexecutable, and choose Open Anyway. -
Verify the installation:
bizyair --version
-
Download
bizyair-v{VERSION}-windows-amd64.zipfrom the Releases page. -
Extract
bizyair.exeto a directory such asC:\Program Files\BizyAir\. -
Add that directory to the system
Pathenvironment variable:- Open This PC → Properties → Advanced system settings.
- Select Environment Variables.
- Edit the system
Path, add the BizyAir directory, and save.
-
Open Command Prompt or PowerShell and verify the installation:
bizyair --versionWithout a
Pathentry, use the full executable path:C:\Program Files\BizyAir\bizyair.exe --version
BizyAir CLI requires Go 1.24 or newer.
-
Clone this repository.
-
Build and run the executable:
make build && ./execs/bizyair
Platform targets:
- Windows:
make build_windows - macOS:
make build_mac - Linux amd64:
make build_linux - Linux arm64:
make build_linux_arm64
BizyAir CLI supports English (en) and Simplified Chinese (zh-CN). It resolves the language once at startup; it does not persist a preference and does not switch languages inside the TUI.
The precedence is:
--lang > system language > en
Without --lang, Simplified and Traditional Chinese system locales both use the Simplified Chinese interface. All other, empty, or unrecognized system languages use English.
bizyair --lang en upload --help
bizyair upgrade --lang zh-CN --check--lang may appear before or after the subcommand and accepts only en and zh-CN. System locales such as zh-CN, zh-Hans, zh-TW, and zh-Hant are detected automatically and all select the Simplified Chinese interface. An unsupported explicit value returns an error listing the supported values.
Run BizyAir without a subcommand:
bizyairThe TUI provides guided input, immediate validation, file selection, multi-version uploads, and live progress. It is the recommended starting point for new users.
Pass a subcommand and options for scripting or automation:
bizyair upload -n mymodel -t LoRA -p /path/to/model.safetensors \
-b "FLUX.1 D" --cover /path/to/cover.jpg --intro "Model introduction"CLI mode supports YAML batches, environment variables, and CI/CD integration.
# Check without installing
bizyair upgrade --check
# Install the latest release
sudo bizyair upgrade- Run
bizyair. - On first use, enter an API key obtained from BizyAir and press Enter.
- Choose an action:
- Upload model
- My models
- Log out
- Exit
- Follow the upload steps. You can select files or type paths, add multiple versions, and monitor progress and transfer speed.
BizyAir CLI authenticates with an API key:
# Uses SF_API_KEY when it is set
bizyair login
# Or provide a key explicitly
bizyair login -k "$SF_API_KEY"Single version:
bizyair upload -n mymodel -t LoRA \
-p /local/path/model.safetensors \
-b "FLUX.1 D" \
--cover "/path/to/cover.jpg" \
--intro "An anime-style LoRA model"Multiple versions:
bizyair upload -n mymodel -t Checkpoint \
-v "v1.0" -p /path/file1.safetensors -b SDXL --intro "First release" --cover "/path/cover1.jpg" \
-v "v2.0" -p /path/file2.safetensors -b "SD 1.5" --intro "Second release" --cover "/path/cover2.jpg"Core options:
-n, --name: model name (required)-t, --type: model type, such asLoRA,Checkpoint, orControlnet(required)-p, --path: model file; repeat for multiple versions (required)-b, --base: Base Model, such asFLUX.1 D,SDXL, orSD 1.5(required)--cover: local cover file or URL (required)-i, --intro: introduction text (required unless--intro-pathis used)--intro-path:.txtor.mdintroduction file-v, --version: version name (optional; defaults tov1.0)--public: whether the corresponding version is public (standard boolean syntax such astrue/falseor1/0; defaults tofalse). Invalid values fail before upload.
Covers are required and may be local files or URLs. Images are converted to WebP before upload when possible.
# Local cover
bizyair upload -n mymodel -t LoRA -p model.safetensors -b "FLUX.1 D" \
--cover "/path/to/cover.jpg" --intro "Introduction"
# Remote cover
bizyair upload -n mymodel -t LoRA -p model.safetensors -b "FLUX.1 D" \
--cover "https://example.com/cover.jpg" --intro "Introduction"Supported formats:
- Images:
.jpg,.jpeg,.png,.gif,.webp - Videos:
.mp4,.webm,.mov(up to 100 MB)
If WebP conversion fails, the original cover format is used automatically.
Introductions may contain up to 5,000 characters:
# Direct text
bizyair upload -n mymodel -t LoRA -p model.safetensors -b "FLUX.1 D" \
--cover cover.jpg --intro "A detailed model introduction..."
# Import from .txt or .md
bizyair upload -n mymodel -t LoRA -p model.safetensors -b "FLUX.1 D" \
--cover cover.jpg --intro-path intro.mdUpload multiple models from one configuration file:
bizyair upload -f config.yamlmodels:
- name: "anime_style_lora"
type: "LoRA"
versions:
- name: "v1.0"
base_model: "FLUX.1 D"
model_path: "models/anime_v1.safetensors"
cover_path: "covers/anime_v1.jpg"
intro: "First anime-style model release"
public: true
- name: "v2.0"
base_model: "FLUX.1 D"
model_path: "models/anime_v2.safetensors"
cover_url: "https://example.com/cover.jpg"
intro_path: "descriptions/v2_intro.txt"
public: false
- name: "realistic_checkpoint"
type: "Checkpoint"
versions:
- base_model: "SD 1.5"
model_path: "checkpoints/realistic.ckpt"
cover_path: "covers/realistic.webp"
intro_path: "descriptions/realistic.md"Configuration fields:
model_path: model file path, resolved relative to the YAML filecover_path/cover_url: choose one local cover or remote coverintro/intro_path: choose direct text or an introduction filename: optional version name; generated automatically when omittedpublic: optional visibility; defaults tofalse
See example.en.yaml for a complete English-commented example. The equivalent Chinese-commented example is example.yaml.
After an interrupted upload, rerun the same command to resume:
bizyair upload -n mymodel -t Checkpoint -p large-model.safetensors -b SDXL \
--cover cover.jpg --intro "Introduction"
# Press Ctrl+C
# Run the same command again; uploaded parts are reused.
bizyair upload -n mymodel -t Checkpoint -p large-model.safetensors -b SDXL \
--cover cover.jpg --intro "Introduction"Checkpoint files are stored under ~/.bizyair/uploads/.
# Open My Models in a browser
bizyair model ls
# Delete a model
bizyair model rm -n mymodel -t Checkpointbizyair logoutCheckpoint— complete model checkpointLoRA— low-rank adaptation modelControlnet— control networkVAE— variational autoencoderUNet— U-Net modelCLIP— CLIP modelUpscaler— super-resolution modelDetection— object detection modelOther— another model type
FLUX.1 DFLUX.1 KontextFLUX.2 DFLUX.2 KleinSDXLSD 1.5SD 3.5PonyKolorsHunyuan VideoWan VideoQwen-ImageSeedreamOther
The CLI retrieves the authoritative Base Model list from the API and uses its built-in list only as a fallback.
- example.en.yaml — English-commented YAML example
- example.yaml — Chinese-commented YAML example
- docs/i18n.md — translation maintenance rules
Create an account at BizyAir and obtain a key from your account settings.
- Check the network connection.
- Confirm the API key is valid.
- Rerun the same command; interrupted file uploads can resume.
Checkpoint files are stored in ~/.bizyair/uploads/ and may be deleted manually when no interrupted uploads need to resume.
The uploader automatically falls back to the original file format, so the upload can continue.
Issues and pull requests are welcome. When adding user-facing text, update both embedded catalogs and follow the i18n maintenance guide.