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.| Account type | Max requests per 24 hours |
|---|---|
| Free tier | 5 |
| Enterprise tier | Coming soon |
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.