Managing Resources
This section covers CLI commands for managing your deployed chutes, images, API keys, and secrets.
Chute Management
List all your deployed chutes.
chutes chutes list [OPTIONS]Options:
- : Filter by name
- : Number of items per page (default: 25)
- : Page number (default: 0)
- : Include public chutes in results
Examples:
# List all your chutes
chutes chutes list
# Filter by name
chutes chutes list --name sentiment
# Include public chutes
chutes chutes list --include-public --limit 50Output:
┌─────────────────┬─────────────────────┬────────┬───────────────────────────────┐
│ ID │ Name │ Status │ Cords │
├─────────────────┼─────────────────────┼────────┼───────────────────────────────┤
│ chute_abc123 │ sentiment-api │ hot │ analyze │
│ │ │ │ stream=False │
│ │ │ │ POST /analyze │
├─────────────────┼─────────────────────┼────────┼───────────────────────────────┤
│ chute_def456 │ image-gen │ cold │ generate │
│ │ │ │ stream=True │
│ │ │ │ POST /generate │
└─────────────────┴─────────────────────┴────────┴───────────────────────────────┘Get detailed information about a specific chute.
chutes chutes get <name_or_id>Arguments:
- : Name or UUID of the chute
Example:
chutes chutes get my-chuteOutput:
{
"chute_id": "abc123-def456-...",
"name": "my-chute",
"tagline": "My awesome AI chute",
"slug": "myuser/my-chute",
"hot": true,
"created_at": "2024-01-15T10:30:00Z",
"node_selector": {
"gpu_count": 1,
"min_vram_gb_per_gpu": 24
},
...
}Delete a chute and all its resources.
chutes chutes delete <name_or_id>Arguments:
- : Name or UUID of the chute to delete
Example:
chutes chutes delete old-chuteConfirmation:
Are you sure you want to delete chutes/old-chute? This action is irreversible. (y/n): y
Successfully deleted chute chute_abc123⚠️ Warning: Deletion is permanent and cannot be undone!
Image Management
List all your Docker images.
chutes images list [OPTIONS]Options:
- : Filter by name
- : Number of items per page (default: 25)
- : Page number (default: 0)
- : Include public images in results
Examples:
# List all your images
chutes images list
# Filter by name
chutes images list --name my-app
# Include public images
chutes images list --include-publicOutput:
┌─────────────────┬─────────────────┬─────────┬──────────────────┬─────────────────────┐
│ ID │ Name │ Tag │ Status │ Created │
├─────────────────┼─────────────────┼─────────┼──────────────────┼─────────────────────┤
│ img_abc123 │ sentiment-api │ 1.0 │ built and pushed │ 2024-01-15 10:30:00 │
│ img_def456 │ image-gen │ 2.1 │ built and pushed │ 2024-01-20 14:45:00 │
│ img_ghi789 │ test-app │ dev │ building │ 2024-01-25 09:15:00 │
└─────────────────┴─────────────────┴─────────┴──────────────────┴─────────────────────┘Get detailed information about a specific image.
chutes images get <name_or_id>Arguments:
- : Name or UUID of the image
Example:
chutes images get my-appDelete an image.
chutes images delete <name_or_id>Arguments:
- : Name or UUID of the image to delete
Example:
chutes images delete old-image:1.0Note: You cannot delete images that are currently in use by deployed chutes.
Sharing Chutes
Share a chute with another user or remove sharing.
chutes share [OPTIONS]Options:
- : The chute UUID or name to share (required)
- : The user UUID or username to share with (required)
- : Custom config path
- : Remove sharing instead of adding
Examples:
# Share a chute with another user
chutes share --chute-id my-chute --user-id colleague
# Share by UUIDs
chutes share --chute-id abc123-def456 --user-id user789-xyz
# Remove sharing
chutes share --chute-id my-chute --user-id colleague --removeSharing and Billing
When you share a chute:
- Chute Owner: Pays the hourly compute rate while instances are running
- Shared User: Pays the standard invocation rate (per token, per step, etc.)
This allows you to provide access to your deployed models while sharing the costs appropriately.
Warming Up Chutes
Warm up a chute to ensure an instance is ready to handle requests.
chutes warmup <chute_id_or_ref> [OPTIONS]Arguments:
- : The chute UUID, name, or file reference ()
Options:
- : Custom config path
- : Enable debug logging
Examples:
# Warm up by name
chutes warmup my-chute
# Warm up by UUID
chutes warmup abc123-def456
# Warm up from file reference
chutes warmup my_chute:chuteOutput:
Status: cold -- Starting instance...
Status: warming -- Loading model...
Status: hot -- Instance is ready!Use warmup to reduce latency for the first request to a cold chute.
Common Workflows
Deploying Updates
# 1. Build new image
chutes build my_chute:chute --wait
# 2. Delete old chute (if needed)
chutes chutes delete my-chute
# 3. Deploy new version
chutes deploy my_chute:chute --accept-fee
# 4. Warm up
chutes warmup my-chuteCleaning Up Resources
Important: You must delete chutes before deleting the images they use. Images tied to existing chutes (even if not currently running) cannot be deleted.
# List all chutes
chutes chutes list
# Delete unused chutes first
chutes chutes delete old-chute-1
chutes chutes delete old-chute-2
# List all images
chutes images list
# Delete unused images (after their chutes are removed)
chutes images delete old-image:1.0
chutes images delete test-image:devSharing with Team Members
# Share with multiple users
chutes share --chute-id my-model --user-id alice
chutes share --chute-id my-model --user-id bob
chutes share --chute-id my-model --user-id charlie
# Later, remove access
chutes share --chute-id my-model --user-id bob --removeAutomation and Scripting
Bash Scripting
#!/bin/bash
# Deploy and warm up script
set -e
CHUTE_REF="my_chute:chute"
CHUTE_NAME="my-chute"
echo "Building image..."
chutes build $CHUTE_REF --wait
echo "Deploying chute..."
chutes deploy $CHUTE_REF --accept-fee
echo "Warming up..."
chutes warmup $CHUTE_NAME
echo "Deployment complete!"Python Scripting
#!/usr/bin/env python3
import subprocess
import sys
def run_command(command):
"""Run a chutes CLI command."""
result = subprocess.run(
f"chutes {command}".split(),
capture_output=True,
text=True
)
if result.returncode != 0:
print(f"Error: {result.stderr}")
sys.exit(1)
return result.stdout
def main():
# List all chutes
print("Your chutes:")
output = run_command("chutes list")
print(output)
# Check specific chute
print("\nChute details:")
output = run_command("chutes get my-chute")
print(output)
if __name__ == "__main__":
main()Troubleshooting
Common Issues
Chute not found?
# Check exact name/ID
chutes chutes list
# Use the exact name or UUID from the list
chutes chutes get exact-chute-nameCannot delete chute?
The deletion requires confirmation. Type when prompted:
chutes chutes delete my-chute
# Are you sure you want to delete chutes/my-chute? This action is irreversible. (y/n): yImage status not "built and pushed"?
# Check image status
chutes images get my-image
# If status is "building", wait for build to complete
# If status shows an error, rebuild the image
chutes build my_chute:chute --waitWarmup fails?
# Enable debug logging
chutes warmup my-chute --debug
# Check chute exists
chutes chutes get my-chuteBest Practices
1. Regular Cleanup
Periodically review and delete unused resources:
# Review chutes
chutes chutes list
# Review images
chutes images list
# Delete what you no longer need
chutes chutes delete unused-chute
chutes images delete old-image:tag2. Use Descriptive Names
Name your chutes and images clearly:
# Good
sentiment-analyzer-bert-v2
image-gen-sdxl-1.0
llm-llama3-8b-instruct
# Not as good
test1
my-app
chute3. Warm Up Before Critical Usage
If you need low latency, warm up your chute before sending requests:
chutes warmup my-chute
# Wait for "hot" status
# Then send your requests4. Share Instead of Making Public
For most use cases, sharing with specific users is better than making chutes public:
# Better: Share with specific users
chutes share --chute-id my-chute --user-id trusted-user
# Only if needed: Deploy as public (requires permissions)
chutes deploy my_chute:chute --public --accept-feeNext Steps
- Building Images - Optimize your images
- Deploying Chutes - Advanced deployment strategies
- Account Management - API keys and billing
- CLI Overview - Return to command overview