CLI Command Reference#
Complete reference for GAT v1.0 command-line interface.
Command Structure#
gat
├── project # Project management
│ ├── init # Initialize new project
│ ├── add # Add existing project
│ ├── list # List all projects
│ ├── show # Show project details
│ ├── remove # Remove project reference
│ ├── set-default # Set default project
│ ├── scenario # Scenario management
│ │ ├── add # Add scenario
│ │ ├── remove # Remove scenario
│ │ ├── list # List scenarios
│ │ └── show # Show scenario details
│ └── palette # Palette management
│ ├── add # Generate palette
│ ├── remove # Remove palette
│ ├── list # List palettes
│ └── show # Show palette details
├── projects # Data source project discovery (v2.0)
│ ├── list # List discovered projects
│ ├── refresh # Refresh project cache
│ └── show # Show project details
├── sources # Data source management (v2.0)
│ ├── add # Add data source
│ │ ├── sienna # Add Sienna source
│ │ ├── reeds # Add ReEDS source
│ │ └── plexos # Add Plexos source
│ ├── list # List sources
│ ├── show # Show source details
│ ├── remove # Remove source
│ └── types # List available source types
├── config # Configuration management
├── init # Initialize configurations
│ └── report # Initialize report config
└── run # Run reports
└── report # Run report from config
Project Management Commands#
gat project init#
Initialize a new GAT project with standard directory structure.
Syntax:
gat project init [PATH] [OPTIONS]
Arguments:
PATH- Directory path for project (default: current directory)
Options:
--name TEXT- Project name (defaults to directory name)--description TEXT- Project description--gat-version TEXT- Required GAT version (default: 1.0.0)--no-palettes- Don’t copy user palettes into project--no-add- Don’t add project to user metadata--set-default- Set as default project
Examples:
# Initialize in current directory
gat project init .
# Initialize in new directory
gat project init ./my-analysis --name "My Analysis"
# Initialize and set as default
gat project init ./my-analysis --set-default
gat project add#
Add an existing project to user metadata.
Syntax:
gat project add PATH [OPTIONS]
Arguments:
PATH- Path to existing project directory
Options:
--id TEXT- Custom project ID (defaults to directory name)--set-default- Set as default project
Examples:
# Add local project
gat project add ./my-project
# Add with custom ID and set as default
gat project add ./my-project --id analysis --set-default
gat project list#
List all projects in user metadata.
Syntax:
gat project list [OPTIONS]
Options:
--verbose, -v- Show detailed information
Examples:
# Compact listing
gat project list
# Detailed listing
gat project list --verbose
Output:
my-analysis My Analysis Project ✓ /home/user/projects/my-analysis
planning Planning Study ✓ /home/user/projects/planning
old-project Old Project ✗ (path not found)
gat project show#
Show detailed information about a project.
Syntax:
gat project show PROJECT_ID [SCENARIO_ID] [OPTIONS]
Arguments:
PROJECT_ID- Project identifierSCENARIO_ID- (Optional) Show specific scenario
Options:
--verbose, -v- Show detailed scenario information
Examples:
# Show project overview
gat project show my-analysis
# Show project with verbose scenario details
gat project show my-analysis --verbose
# Show specific scenario
gat project show my-analysis base_2035
gat project remove#
Remove project from user metadata (does not delete project directory).
Syntax:
gat project remove PROJECT_ID [OPTIONS]
Arguments:
PROJECT_ID- Project identifier
Options:
--yes, -y- Skip confirmation prompt
Examples:
# Remove with confirmation
gat project remove old-project
# Remove without confirmation
gat project remove old-project --yes
gat project set-default#
Set a project as the default.
Syntax:
gat project set-default PROJECT_ID
Arguments:
PROJECT_ID- Project identifier
Example:
gat project set-default my-analysis
Scenario Management Commands#
gat project scenario add#
Add a scenario to a project.
Syntax:
gat project scenario add TYPE SCENARIO_ID [OPTIONS]
Arguments:
TYPE- Scenario type:sienna,reeds, orplexosSCENARIO_ID- Unique identifier for scenario
Common Options:
--name TEXT- Scenario name (defaults to ID)--description TEXT- Scenario description--project TEXT- Project ID (uses default if not specified)
Sienna Options:
--system TEXT- Path to system JSON file (required)--simulation TEXT- Path to simulation HDF5 (required, repeatable)--metadata TEXT- Path to GAT metadata JSON
ReEDS Options:
--path TEXT- Path to ReEDS output directory (required)--solve-year INTEGER- Solve year to analyze
Plexos Options:
--solution TEXT- Path to Plexos solution file (required)
Examples:
# Add Sienna scenario
gat project scenario add sienna base_2035 \
--system ./data/system.json \
--simulation ./data/results.h5
# Add with multiple simulation files
gat project scenario add sienna multi_week \
--system ./system.json \
--simulation ./week1.h5 \
--simulation ./week2.h5 \
--simulation ./week3.h5
# Add with description
gat project scenario add sienna high_load \
--name "High Load Scenario" \
--description "Sensitivity with 10% load increase" \
--system ./system.json \
--simulation ./results.h5
# Add ReEDS scenario
gat project scenario add reeds reeds_2035 \
--path ./reeds_output \
--solve-year 2035
# Add Plexos scenario
gat project scenario add plexos summer_peak \
--solution ./solution.xml
# Add to specific project
gat project scenario add sienna test \
--project my-other-project \
--system ./system.json \
--simulation ./results.h5
Note: All paths are automatically resolved to absolute paths.
gat project scenario list#
List scenarios across all projects or in a specific project.
Syntax:
gat project scenario list [PROJECT_ID]
Arguments:
PROJECT_ID- (Optional) Project identifier. If omitted, lists scenarios from all projects.
Examples:
# List scenarios across all projects
gat project scenario list
# List scenarios in specific project
gat project scenario list my-analysis
Output (all projects):
My Analysis (my-analysis):
base_2035 [sienna] Base 2035 Scenario
high_renewable [sienna] High Renewable Scenario
Planning Study (planning):
reeds_2050 [reeds] ReEDS 2050 Scenario
plexos_base [plexos] Plexos Base Case
Total scenarios: 4
Output (specific project):
Scenarios in 'My Analysis': (2)
base_2035 [sienna] Base 2035 Scenario
high_renewable [sienna] High Renewable Scenario
gat project scenario show#
Show detailed information about a scenario.
Syntax:
gat project scenario show SCENARIO_ID [OPTIONS]
Arguments:
SCENARIO_ID- Scenario identifier
Options:
--project TEXT- Project ID (uses default if not specified)
Examples:
# Show scenario in default project
gat project scenario show base_2035
# Show scenario in specific project
gat project scenario show base_2035 --project my-analysis
Output:
Scenario: base_2035
Name: Base 2035 Scenario
Type: sienna
Description: Baseline scenario for 2035 analysis
Created: 2024-01-15 10:30
Updated: 2024-01-20 14:45
Paths:
System: ✓ /data/shared/systems/base_2035.json
Simulations: (2 file(s))
- ✓ /data/shared/results/week1.h5
- ✓ /data/shared/results/week2.h5
✓ All paths validated
gat project scenario remove#
Remove a scenario from a project.
Syntax:
gat project scenario remove SCENARIO_ID [OPTIONS]
Arguments:
SCENARIO_ID- Scenario identifier
Options:
--project TEXT- Project ID (uses default if not specified)--yes, -y- Skip confirmation prompt
Examples:
# Remove with confirmation
gat project scenario remove old_scenario
# Remove without confirmation
gat project scenario remove old_scenario --yes
# Remove from specific project
gat project scenario remove old_scenario --project my-analysis
Palette Management Commands#
gat project palette add#
Generate a palette from a scenario’s system file.
Syntax:
gat project palette add PALETTE_NAME SCENARIO_ID [OPTIONS]
Arguments:
PALETTE_NAME- Name for the paletteSCENARIO_ID- Scenario to generate palette from
Options:
--project TEXT- Project ID (uses default if not specified)--description TEXT- Palette description--print-summary- Print detailed summary after generation
Examples:
# Generate palette
gat project palette add my_palette base_2035
# With description
gat project palette add renewable_focus base_2035 \
--description "Focus on renewable energy sources"
# Show detailed summary
gat project palette add my_palette base_2035 --print-summary
# For specific project
gat project palette add my_palette base_2035 --project my-analysis
gat project palette list#
List all palettes in a project.
Syntax:
gat project palette list [OPTIONS]
Options:
--project TEXT- Project ID (uses default if not specified)
Examples:
# List palettes in default project
gat project palette list
# List palettes in specific project
gat project palette list --project my-analysis
Output:
Palettes in 'My Analysis': (2)
default
renewable_focus
gat project palette show#
Show detailed information about a palette.
Syntax:
gat project palette show PALETTE_NAME [OPTIONS]
Arguments:
PALETTE_NAME- Palette name
Options:
--project TEXT- Project ID (uses default if not specified)
Examples:
# Show palette in default project
gat project palette show my_palette
# Show palette in specific project
gat project palette show my_palette --project my-analysis
Output:
Palette: my_palette
Description: Custom palette for analysis
Simulation Type: sienna
Version: 1.0.0
Display Categories (7):
------------------------------------------------------------
Solar #FFD700 (2 sim categories)
Wind #87CEEB (1 sim categories)
Natural Gas #FF6B6B (2 sim categories)
Coal #2F4F4F (1 sim categories)
Hydro #4682B4 (1 sim categories)
Battery Storage #9932CC (1 sim categories)
VRE Technologies (2):
- Solar_PV
- Wind_Onshore
Stack Order (bottom to top):
1. Coal
2. Hydro
3. Natural Gas
4. Wind
5. Solar
6. Battery Storage
✓ Palette validated
gat project palette remove#
Remove a palette from a project.
Syntax:
gat project palette remove PALETTE_NAME [OPTIONS]
Arguments:
PALETTE_NAME- Palette name
Options:
--project TEXT- Project ID (uses default if not specified)--yes, -y- Skip confirmation prompt
Examples:
# Remove with confirmation
gat project palette remove my_palette
# Remove without confirmation
gat project palette remove my_palette --yes
# Remove from specific project
gat project palette remove my_palette --project my-analysis
Data Source Management (v2.0)#
gat sources add sienna#
Add a Sienna simulation source.
Syntax:
gat sources add sienna NAME [OPTIONS]
Arguments:
NAME- Source name
Options:
--system-path PATH- Path to system JSON file (required)--simulation-path PATH- Path to simulation HDF5 (required, repeatable)--description TEXT- Source description
Examples:
# Single simulation file
gat sources add sienna "NTP Base" \
--system-path ./system.json \
--simulation-path ./results.h5
# Multiple simulation files
gat sources add sienna "Multi-file" \
--system-path ./system.json \
--simulation-path ./week1.h5 \
--simulation-path ./week2.h5
gat sources add reeds#
Add a ReEDS simulation source.
Syntax:
gat sources add reeds NAME [OPTIONS]
Arguments:
NAME- Source name
Options:
--path PATH- Path to ReEDS output directory (required)--solve-year INTEGER- Solve year to filter results--description TEXT- Source description
Example:
gat sources add reeds "ReEDS 2035" \
--path ./reeds_outputs \
--solve-year 2035
gat sources add plexos#
Add a Plexos simulation source.
Syntax:
gat sources add plexos NAME [OPTIONS]
Arguments:
NAME- Source name
Options:
--solution-path PATH- Path to Plexos solution file (required)--description TEXT- Source description
Example:
gat sources add plexos "Summer Peak" \
--solution-path ./Model.xml
gat sources list#
List configured data sources.
Syntax:
gat sources list
Output:
Configured data sources:
NTP Base [sienna]
System: /data/systems/base.json
Simulation: /data/results/base.h5
ReEDS 2035 [reeds]
Path: /data/reeds/outputs
Solve Year: 2035
gat sources show#
Show details for a specific source with path validation.
Syntax:
gat sources show NAME
Arguments:
NAME- Source name
Example:
gat sources show "NTP Base"
Output:
NTP Base
Type: sienna
System Path: /data/systems/base.json
Simulation Paths (2):
- /data/results/week1.h5
- /data/results/week2.h5
Path Validation:
✓ /data/systems/base.json
✓ /data/results/week1.h5
✗ /data/results/week2.h5
gat sources remove#
Remove a data source.
Syntax:
gat sources remove NAME [OPTIONS]
Arguments:
NAME- Source name
Options:
--yes, -y- Skip confirmation prompt
Examples:
# Remove with confirmation
gat sources remove "Old Source"
# Remove without confirmation
gat sources remove "Old Source" --yes
gat sources types#
List available source types and their required arguments.
Syntax:
gat sources types
Output:
Available source types:
sienna
Production Cost Model simulation results from Sienna
Required: system_path, simulation_path
Optional: metadata_path, description
reeds
Capacity Expansion Model results from ReEDS
Required: path
Optional: solve_year, description
plexos
Production Cost Model results from Plexos
Required: solution_path
Optional: description
Project Discovery (v2.0)#
gat projects list#
List projects discovered from data sources.
Syntax:
gat projects list [OPTIONS]
Options:
--refresh- Refresh project cache before listing
Example:
# List cached projects
gat projects list
# Refresh and list
gat projects list --refresh
Output:
NTP Base
----------
ntp-base-2035 [sienna] NTP Base 2035 (2 scenarios)
ntp-high-load [sienna] NTP High Load (1 scenarios)
ReEDS Study
----------
reeds-2035 [reeds] ReEDS 2035 (1 scenarios)
gat projects refresh#
Refresh the project cache by scanning all sources.
Syntax:
gat projects refresh
gat projects show#
Show details for a discovered project.
Syntax:
gat projects show PROJECT_ID
Arguments:
PROJECT_ID- Project identifier
Example:
gat projects show ntp-base-2035
Output:
NTP Base 2035
ID: ntp-base-2035
Type: sienna
Source: NTP Base
Path: /data/projects/ntp-base-2035
Scenarios (2):
- week1
- week2
Configuration Commands#
gat config#
View or edit GAT configuration.
Syntax:
gat config [OPTIONS]
Options:
--show- Display configuration--path- Show config file path--edit- Open config file in editor
Examples:
# Show configuration
gat config --show
# Show config file location
gat config --path
# Edit config file
gat config --edit
Report Commands#
gat init report#
Initialize a report configuration.
Syntax:
gat init report [OPTIONS]
Options:
--type TEXT- Type of report to initialize
Example:
gat init report --type scenario_single
gat run report#
Run a report from a configuration file.
Syntax:
gat run report CONFIG_PATH [OPTIONS]
Arguments:
CONFIG_PATH- Path to report configuration file
Options:
--output, -o PATH- Output directory
Example:
gat run report ./report_config.yaml --output ./outputs
Global Options#
All commands support:
--help- Show help message--version- Show GAT version
Examples:
# Show general help
gat --help
# Show version
gat --version
# Show command-specific help
gat project scenario add --help
File Locations#
User Configuration#
~/.config/gat/
├── config.yaml # User settings and data sources
├── projects/ # Project references (v1.0)
│ └── *.yaml
└── palettes/ # User palettes
└── *.yaml
Project Structure (v1.0)#
my-project/
├── gat-project.yaml # Project config
├── scenarios/ # Scenario configs
│ └── *.yaml
├── palettes/ # Project palettes
│ └── *.yaml
├── pipelines/ # Pipeline configs
├── notebooks/ # Jupyter notebooks
├── outputs/ # Generated plots
└── .gat-cache/ # Cached data
Path Handling#
Important: All scenario paths are stored as absolute filesystem paths.
When adding scenarios, paths are automatically resolved:
Relative paths (e.g.,
./data/file.json) → Resolved from current working directoryAbsolute paths (e.g.,
/full/path/file.json) → Stored as-is
Example:
cd /home/user/data
gat project scenario add sienna test \
--system ./system.json \
--simulation ./results.h5
# Stored as:
# /home/user/data/system.json
# /home/user/data/results.h5
This ensures clarity about which files are being used, regardless of where commands are run from.
See Also#
CLI Quick Reference - Common commands and workflows
Project Management Guide - Comprehensive project management documentation
Palette Generation - Palette management and customization