create
Create a new bundle request by uploading a model directory.
input-path(required): Path to the directory to upload and bundle
--dry-run: Validate the input directory without actually creating a request or uploading files.--json: Output result in JSON format for programmatic parsing.--parallel: Upload files in parallel with multipart support. This is the default behavior if neither--parallelnor--sequentialis specified.--sequential: Upload files sequentially. This is the fallback option if parallel upload fails.- If neither
--parallelnor--sequentialis specified, the CLI will attempt parallel upload first, and fall back to sequential if it fails. - If both
--paralleland--sequentialare specified,--paralleltakes precedence.
- If neither
--executorch(deprecated): Use ExecuTorch bundling instead of GGUF. By default, the CLI uses GGUF bundling. This option may be removed in a future version.--quantization <type>: Specify the quantization type for the model bundle. Options includeQ4_K_M(default),Q8_0,F16, and other llama.cpp quantization types.--mmproj-quantization <type>: (GGUF only) Specify the mmproj quantization type for vision-language or audio models. Valid options:q4,q8(default),f16.
- Calculates a hash of the directory contents
- Creates a bundle request on the LEAP platform
- Uploads the directory contents to cloud storage
- Updates the request status throughout the process
- If a request with the same hash already exists, shows a warning instead of creating a duplicate
Legacy: ExecuTorch Bundling
Legacy: ExecuTorch Bundling
ExecuTorch bundling is deprecated and may be removed in a future version. Use GGUF bundling (the default) for new projects.ExecuTorch quantization options: ExecuTorch bundling produces
8da4w_output_8da8w (default), 8da8w_output_8da8wExamples:.bundle files instead of .gguf files.- Hidden files and subdirectories (starting with
.) are ignored - The directory must have a valid
config.jsonfile - The directory must have one or more safe tensor files with the
.safetensorsextension - Individual files must not exceed 10GB
- The total size of the directory must not exceed 10GB
- This limit will be increased in the future as the bundle service supports more models
- Directory doesn’t exist: Shows file not found error
- Path is not a directory: Shows invalid path error
- Not authenticated: Prompts to login first
- Upload failure: Shows upload error and updates request status to failed
- Upload will timeout in 10 minutes if not completed. We are working on optimizing upload performance.
- For transient issues, try resuming the upload:
leap-bundle resume <request-id> - For persistent issues, cancel the request and create a new one
- Network issues: Shows connection error
- Validates input directory exists
- Calculates directory hash for deduplication
- Creates bundle request via API
- Uploads directory contents to S3 using signed URLs
- Updates request status to track progress
If the upload fails due to transient issue (e.g. network instability), you can use the
resume
command to continue from where it left off.
Processing Time
If the request is not rate limited, it will usually be completed within 20 minutes for small model checkpoints.
resume
Resume uploading for a failed or interrupted bundle request.
request-id(optional): ID of the bundle request to resume. If not provided, resumes the latest request.
--json: Output result in JSON format for programmatic parsing--sequential: Upload files sequentially (fallback option if parallel upload fails)--parallel: Upload files in parallel with multipart support (default behavior if neither option is specified)
- Retrieves the specified bundle request (or latest request if no ID provided)
- Validates that the request is in a resumable status (“Uploading” or “Uploading Failed”)
- Checks that the original input directory still exists
- Resumes the upload process from where it left off
- Updates the request status throughout the process
- Supports both parallel and sequential upload mechanisms
Uploading: Upload was interrupted before the status was updatedUploading Failed: Upload encountered an error
- Parallel (default): Uses multipart upload with better performance for large files
- Sequential: Uploads files one by one, used as fallback if parallel upload fails
- If parallel upload fails, the command automatically falls back to sequential upload
- You can force sequential upload using the
--sequentialflag
- Not authenticated: Prompts to login first
- Request not found: Shows request not found error
- Request not resumable: Shows status error (only “Uploading” and “Uploading Failed” requests can be resumed)
- Original directory missing: Shows directory not found error
- Upload failure: Shows upload error and updates request status
- Network issues: Shows connection error
Use
resume to continue interrupted uploads without losing progress. The command will pick up
where the upload left off, saving time on large model directories.validate
Validate a directory for bundle creation without uploading or creating a request. This command is equivalent to the create command with --dry-run option, but does not require authentication.
input-path(required): Path to the directory to validate
- Performs the same validation checks as the
createcommand - Does not require authentication
- Does not upload files or create bundle requests
- Useful for checking if a directory is ready for bundling before actually creating a request
create command:
- Hidden files and subdirectories (starting with
.) are ignored - The directory must have a valid
config.jsonfile - The directory must have one or more safe tensor files with the
.safetensorsextension - Individual files must not exceed 10GB
- The total size of the directory must not exceed 10GB
- Directory doesn’t exist: Shows file not found error
- Path is not a directory: Shows invalid path error
- Validation failure: Shows specific validation error message
Use
validate to check your directory before running create to catch validation issues early
without using your bundle request quota.