Installation
# Install Stac CLI
curl -fsSL https://raw.githubusercontent.com/StacDev/install/main/install.sh | bash
# Verify installation
stac --version
Available Commands
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 |
Authentication
Before using most CLI commands, you’ll need to authenticate with Stac Cloud.
Login
# Authenticate with Google OAuth
stac login
# This opens your browser for OAuth authentication
# Your credentials are securely stored locally
Check Status
# Check your authentication status
stac status
Logout
# Clear stored authentication tokens
stac logout
Initialize Stac
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
What it does
- Creates
stac/
folder for Stac DSL widgets
- Adds
lib/default_stac_options.dart
with your StacOptions
(e.g., projectId
)
- Updates
pubspec.yaml
with stac
and related dependencies
- Optionally links to an existing Stac Cloud project
Generated files
|- Flutter project
├── lib/
│ ├── default_stac_options.dart
│ └── main.dart
├── stac/
│ └── stac_widget.dart
└── pubspec.yaml
Convert Dart to JSON
# 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
Build Options
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.
Deployment
Deploy to Stac Cloud
# 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
Deployment Options
Option | Description | Default |
---|
-p, --project | Project directory path | Current directory |
--skip-build | Skip building before deployment | false |
-v, --verbose | Show detailed deployment output | false |
By default, stac deploy
automatically runs stac build
before deploying. Use --skip-build
to deploy existing build files without rebuilding.
Cloud Project Management
List Projects
# 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 New Project
# 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.
Development Workflow
Typical Workflow
# 1. Authenticate with Stac Cloud (one-time)
stac login
# 2. List available projects
stac project list
# 3. Initialize a project in your Flutter/Dart app
cd your-flutter-project
stac init
# 4. Create your widget definitions in stac/ folder
# Edit stac/your_screen.dart
# 6. Deploy to Stac Cloud
stac deploy
Command Reference
Global Options
Option | Description |
---|
-v, --verbose | Show additional command output |
--version | Print tool version |
--help | Print usage information |