Build, deploy, and manage Server-Driven UI projects with the Stac CLI.
# Install Stac CLI
curl -fsSL https://raw.githubusercontent.com/StacDev/install/main/install.sh | bash
# Verify installation
stac --version
# Install Stac CLI
irm https://raw.githubusercontent.com/StacDev/install/main/install.ps1 | iex
# Verify installation
stac --version
Command | Description | Requires Auth |
---|---|---|
login |
Authenticate with Google OAuth | No |
logout |
Clear stored authentication tokens | No |
status |
Show authentication status | No |
init |
Initialize Stac in project | Yes |
build |
Convert Dart widgets to JSON | No |
deploy |
Build and deploy to Stac Cloud | Yes |
project list |
List all cloud projects | Yes |
project create |
Create new cloud project | Yes |
Before using most CLI commands, you'll need to authenticate with Stac Cloud.
# Authenticate with Google OAuth
stac login
# This opens your browser for OAuth authentication
# Your credentials are securely stored locally
# Check your authentication status
stac status
# Clear stored authentication tokens
stac logout
Use this to set up Stac in an existing Flutter/Dart project. It links your local app to a Stac Cloud project and scaffolds required files.
# Initialize Stac in the current project
stac init
- Creates
stac/
folder for Stac DSL widgets - Adds
lib/default_stac_options.dart
with yourStacOptions
(e.g.,projectId
) - Updates
pubspec.yaml
withstac
and related dependencies - Optionally links to an existing Stac Cloud project
your-flutter-project/
├── lib/
│ ├── default_stac_options.dart
│ └── main.dart
├── stac/
│ └── stac_widget.dart
└── pubspec.yaml
# Build all widgets in current project
stac build
# Build specific project directory
stac build --project /path/to/project
# Build with validation (enabled by default)
stac build --validate
# Build with verbose output
stac build --verbose
Option | Description | Default |
---|---|---|
-p, --project |
Project directory path | Current directory |
--validate |
Validate generated JSON | true |
-v, --verbose |
Show detailed build output | false |
The build command converts Stac widget definitions from the stac/
folder into JSON format in the build/
folder.
# Build and deploy to Stac Cloud
stac deploy
# Deploy specific project directory
stac deploy --project /path/to/project
# Skip build and deploy existing files
stac deploy --skip-build
# Deploy with verbose output
stac deploy --verbose
Option | Description | Default |
---|---|---|
-p, --project |
Project directory path | Current directory |
--skip-build |
Skip building before deployment | false |
-v, --verbose |
Show detailed deployment output | false |
Note: By default,
stac deploy
automatically runsstac build
before deploying. Use--skip-build
to deploy existing build files without rebuilding.
# List all your Stac Cloud projects
stac project list
# Output as JSON format
stac project list --json
The list command shows:
- Project name and ID
- Project description
- Created and updated timestamps
# Create a new project on Stac Cloud
stac project create --name "My App" --description "My SDUI app"
# Short form
stac project create -n "My App" -d "My SDUI app"
After creating a project, run stac init
to initialize it locally.
Here's a typical workflow to get started with Stac CLI:
# 1. Authenticate with Stac Cloud (one-time setup)
stac login
# 2. List available projects (optional)
stac project list
# 3. Navigate to your Flutter/Dart project
cd your-flutter-project
# 4. Initialize Stac in your project
stac init
# 5. Create your widget definitions in the stac/ folder
# Edit stac/your_screen.dart with your Stac widgets
# 6. Build and deploy to Stac Cloud
stac deploy
Once set up, your typical development cycle will be:
# Make changes to widgets in stac/ folder
# ...
# Build and deploy changes
stac deploy
# Or build locally first to test
stac build
stac deploy --skip-build
Option | Description |
---|---|
-v, --verbose |
Show additional command output |
--version |
Print tool version |
--help |
Print usage information |