# Get Started

## Install PowerShell Universal

You'll need to install the PowerShell Universal server. [There are a lot of ways to do so,](https://docs.powershelluniversal.com/getting-started) but you can use the command line below to get started quickly:

{% tabs %}
{% tab title="Windows" %}
You can install PowerShell Universal as a service. Ensure that PowerShell is running as administrator, or the service won't install correctly.

```powershell
Install-Module Devolutions.PowerShellUniversal
Install-PSUServer
```

{% endtab %}

{% tab title="Linux" %}
You can install PowerShell Universal using the following shell script:

```powershell
Install-Module Devolutions.PowerShellUniversal
Install-PSUServer
```

{% endtab %}

{% tab title="Mac OS X" %}
You can install PowerShell Universal using the Universal PowerShell module:

```powershell
Install-Module Devolutions.PowerShellUniversal
Install-PSUServer -AddToPath
Start-PSUServer -Port 5000
```

{% endtab %}

{% tab title="Raspberry PI OS" %}

```
wget https://imsreleases.blob.core.windows.net/universal/production/2.4.0/Universal.linux-arm.2.4.0.zip
unzip Universal.linux-arm.2.3.2.zip -d ./PSU
chmod +x ./PSU/Universal.Server
./PSU/Universal.Server

```

{% endtab %}
{% endtabs %}

## Open PowerShell Universal

By default, PowerShell Universal runs on port 5000 of localhost. Open a web browser and navigate to `http://localhost:5000`.

### Login with a Devolutions Account

The first time you navigate to PowerShell Universal, you can login with a [Devolutions account](https://docs.devolutions.net/portal/profile/create-devolutions-account/) in order to receive a free developer license. This license will enable all features and is intended for non-production workflows.

### First Run Wizard

Optionally, you can select to run the First Run wizard setup instead of logging in with a Devolutions account and provide a license key.

## Create an API

APIs allow you to call PowerShell scripts over HTTP. To create an API, click API \ Endpoints and click Create New Endpoint. Specify a URL. Disable authentication for this endpoint.

Next, click details on your new API and enter the following command into the editor:

```powershell
Get-ComputerInfo
```

Save the script and then click the Execute button to test it out.

You can also execute the API via `Invoke-RestMethod`.

```powershell
PS C:\Users\adamr> Invoke-RestMethod http://localhost:5000/hello-world

WindowsBuildLabEx                                       : 22000.1.amd64fre.co_release.210604-1628
WindowsCurrentVersion                                   : 6.3
WindowsEditionId                                        : Professional
WindowsInstallationType                                 : Client
WindowsInstallDateFromRegistry                          : 8/6/2021 4:05:12 PM
WindowsProductId                                        : 00330-52452-93139-AAOEM
WindowsProductName                                      : Windows 10 Pro
WindowsRegisteredOrganization                           :
```

## Create a Script

To create a script, click Automation \ Scripts and then click Create New Script.

Enter the following script into the editor and save:

```powershell
Read-Host "What should I say?"

1..100 | ForEach-Object {
    Write-Progress -PercentComplete $_ -Activity "Processing..."
}

Get-Service
```

Once the script is saved, click Run.

## Create an App

To create a new PowerShell-based user interface (app), you can click User Interfaces \ Apps and then Create New App.

After clicking Ok, click the Details button to edit the PowerShell script. Add the following script to the editor:

```powershell
New-UDApp -Title "Hello, World!" -Content {
    New-UDButton -Text "Click Me" -OnClick {
        Show-UDToast -Message 'Success!!'
    }
}
```

Save the app, click the Restart button and then click the View button. Click the Click Me button.

Learn more about the various features of PowerShell Universal:

* [APIs](https://docs.powershelluniversal.com/api/about)
* [Automation](https://docs.powershelluniversal.com/automation/about)
* [Apps](https://docs.powershelluniversal.com/apps/building-dashboards)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.powershelluniversal.com/get-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
