Skip to main content
Version: 1.3.0

thresh blueprints

List all available environment blueprints (built-in and custom).

Synopsis

thresh blueprints [options]

Description

The blueprints command displays all available blueprints that can be used with thresh up. It shows:

  • Built-in blueprints (shipped with thresh)
  • Custom blueprints (from ~/.thresh/blueprints/)
  • Blueprint metadata (name, base distribution, packages)

Blueprints are JSON files that define:

  • Base Linux distribution
  • Packages to install
  • Configuration files
  • Post-installation scripts

Options

OptionDescription
--jsonOutput in JSON format for scripting
--verbose, -vShow detailed blueprint information
--help, -hShow help information

Examples

List All Blueprints

# Show all available blueprints
thresh blueprints

Output:

Available Blueprints:

Built-in:
alpine-minimal - Minimal Alpine Linux (3.19)
alpine-python - Alpine with Python 3.11
python-dev - Python development (Alpine + pip, venv)
node-dev - Node.js 20 development environment
ubuntu-dev - Ubuntu 22.04 with dev tools
debian-stable - Debian 12 (Bookworm)

Custom:
my-stack - Custom full-stack environment
data-science - Python with NumPy, Pandas, Jupyter

Use 'thresh up <blueprint-name>' to provision

JSON Output

# Get blueprints in JSON format
thresh blueprints --json

Output:

{
"built_in": [
{
"name": "alpine-minimal",
"distribution": "alpine",
"version": "3.19",
"description": "Minimal Alpine Linux",
"packages": ["bash", "curl"]
},
{
"name": "python-dev",
"distribution": "alpine",
"version": "3.19",
"description": "Python development environment",
"packages": ["python3", "py3-pip", "python3-dev"]
}
],
"custom": [
{
"name": "my-stack",
"distribution": "ubuntu",
"version": "22.04",
"description": "Custom full-stack environment",
"packages": ["nodejs", "postgresql", "redis"]
}
]
}

Verbose Output

# Show detailed blueprint information
thresh blueprints --verbose

Output:

alpine-minimal
Base: Alpine Linux 3.19
Size: ~15 MB
Packages: bash, curl, git
Description: Minimal development environment
File: C:\Users\user\.thresh\blueprints\alpine-minimal.json

python-dev
Base: Alpine Linux 3.19
Size: ~120 MB
Packages: python3, py3-pip, python3-dev, gcc, musl-dev
Description: Python development with virtual environments
File: C:\Users\user\.thresh\blueprints\python-dev.json

Blueprint Locations

Blueprints are searched in this order:

  1. Built-in: Embedded in thresh binary
  2. User directory: ~/.thresh/blueprints/
  3. Project directory: ./.thresh/blueprints/

Custom blueprints override built-in ones with the same name.

Blueprint Structure

Example custom-stack.json:

{
"name": "custom-stack",
"distribution": {
"name": "ubuntu",
"version": "22.04",
"source": "https://cloud-images.ubuntu.com/...",
"checksum": "sha256:..."
},
"packages": [
"build-essential",
"git",
"nodejs",
"npm"
],
"postInstall": [
"npm install -g yarn",
"git config --global core.autocrlf input"
],
"environment": {
"NODE_ENV": "development",
"PATH": "/usr/local/bin:$PATH"
}
}

Creating Custom Blueprints

# Generate a new blueprint with AI
thresh generate "Node.js with PostgreSQL"

# Manually create in user directory
notepad ~/.thresh/blueprints/my-blueprint.json

Using Blueprints

# Use built-in blueprint
thresh up python-dev

# Use custom blueprint
thresh up my-stack

# Force re-provision with blueprint
thresh up node-dev --force

Exit Codes

CodeMeaning
0Success
1General error
2Invalid blueprint format

See Also