mcpField
P
package-script-writer

package-script-writer

github.com/umbracoDevelopment27383 installsUpdated 6w ago
Repository

About package-script-writer

Package Script Writer is a CLI-focused skill for generating and running Umbraco CMS installation scripts. It guides unattended setup, optional package selection, and rerunning script history.

Key features

  1. 01Generate Umbraco installation scripts
  2. 02Run unattended installations
  3. 03Add packages and versions
  4. 04List and rerun script history

Use cases

  1. 01Set up an Umbraco project with SQLite
  2. 02Install Umbraco with selected packages
  3. 03Rerun a previously generated script

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/umbraco/umbraco-cms-backoffice-skills --skill package-script-writer

After installing, type/package-script-writerin Claude Code to confirm it loaded.

Details

From the project README

Package Script Writer (psw)

Generate and run Umbraco CMS installation scripts using the psw CLI tool.

Workflow

  1. Check if PSW CLI is installed:

    psw --version
    

    If command not found, the .NET tools path may not be in PATH. Try:

    • Linux/Mac: export PATH="$PATH:$HOME/.dotnet/tools" && psw --version
    • Windows: %USERPROFILE%\.dotnet\tools\psw --version
  2. If not installed, install it:

    dotnet tool install --global PackageScriptWriter.Cli
    
  3. Then run the psw command (see below)

Non-Interactive Usage (Claude Code)

This is the command to use:

export PATH="$PATH:$HOME/.dotnet/tools"
psw -d -n ProjectName -s ProjectName -u --database-type SQLite --admin-email [email protected] --admin-password SecurePass1234 --auto-run

Run this with run_in_background: true since Umbraco is a long-running web server.

Critical flags:

  • -d - REQUIRED - generates the full installation script (without this, only dotnet run is generated which fails)
  • -u - use unattended install defaults
  • --auto-run - execute the script immediately
  • Never combine -o with --auto-run (truncates the script)

Default credentials: [email protected] / SecurePass1234

With Packages

psw -d -n ProjectName -s ProjectName -u --database-type SQLite --admin-email [email protected] --admin-password "SecurePass1234" -p "uSync,Umbraco.Forms" --auto-run

With specific versions:

psw -d -n ProjectName -s ProjectName -u --database-type SQLite --admin-email [email protected] --admin-password "SecurePass1234" -p "uSync|18.0.0,Umbraco.Forms|18.0.0" --auto-run

IMPORTANT

Do not use characters that are escapable in passwords or usernames

Key Options

FlagDescription
-d, --defaultREQUIRED - generates full installation script
-n, --project-nameProject name
-s, --solutionSolution name
-u, --unattended-defaultsUse unattended install defaults
--database-typeSQLite, LocalDb, SQLServer, SQLAzure, SQLCE
--admin-emailAdmin email for unattended install
--admin-passwordAdmin password for unattended install
--auto-runExecute the generated script
-p, --packagesComma-separated packages (e.g., "uSync,Umbraco.Forms")
-t, --template-packageUmbraco template with optional version
-da, --delivery-apiEnable Content Delivery API

Waiting for Umbraco to Start

After running the command in background, poll for readiness:

# Check the output for the port number (e.g., "Now listening on: https://localhost:44356")
# Then poll until ready:
for i in {1..30}; do
  if nc -z localhost 44356 2>/dev/null; then
    echo "Umbraco is ready!"
    break
  fi
  sleep 2
done

Other Commands

psw versions              # Show Umbraco versions with support status
psw history list          # Show recent scripts
psw history rerun 1       # Re-run script #1
psw --clear-cache         # Clear cached API responses

Comments

Markdown supported