Skip to content

StacDev/cli-installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

Stac CLI Installer

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

Installation

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/StacDev/cli-installer/main/install.sh | bash

Windows

irm https://raw.githubusercontent.com/StacDev/cli-installer/main/install.ps1 | iex

Verify Installation

After installation, verify that Stac CLI is working:

stac --version

The CLI will be installed to ~/.stac/bin/ and automatically added to your PATH.

Available Commands

Command Description Requires Auth
login Authenticate with Google OAuth
logout Clear stored authentication tokens
status Show authentication status
init Initialize Stac in project
build Convert Dart widgets to JSON
deploy Build and deploy to Stac Cloud
project list List all cloud projects
project create Create new cloud project

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.

⚠️ Note: You must be authenticated (stac login) before running stac init.

# 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