Skip to content

StacDev/cli-installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

Stac CLI Installer

Build, deploy, and manage Server-Driven UI projects with the Stac CLI.

Installation

macOS / Linux

# Install Stac CLI
curl -fsSL https://raw.githubusercontent.com/StacDev/install/main/install.sh | bash

# Verify installation
stac --version

Windows

# Install Stac CLI
irm https://raw.githubusercontent.com/StacDev/install/main/install.ps1 | iex

# 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

your-flutter-project/
├── lib/
│   ├── default_stac_options.dart
│   └── main.dart
├── stac/
│   └── stac_widget.dart
└── pubspec.yaml

Building Widgets

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

Note: 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

Quick Start

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

Development Cycle

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

Command Reference

Global Options

Option Description
-v, --verbose Show additional command output
--version Print tool version
--help Print usage information