> ## Documentation Index
> Fetch the complete documentation index at: https://docs.simular.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# App

> Represents an application that can be opened.

## Constructor

```typescript
App(): App
```

### Returns

`App`

## Properties

<ResponseField name={"canonicalName"} type={"null | string"} required>
  Returns the canonical app name used for fuzzy matching.
</ResponseField>

<ResponseField name={"launchTarget"} type={"null | string"} required>
  Returns the launch target used to open the app (name or path).
</ResponseField>

## Methods

### defaultBrowser()

```typescript
defaultBrowser(): App
```

Returns a handle to the system's default browser.

#### Returns

`App`

### exactName()

```typescript
exactName(name: string): App
```

Get the app by exact name. No fuzzy search is performed.

#### Parameters

<ResponseField name={"name"} type={"string"} required />

#### Returns

`App`

### exists()

```typescript
exists(app: string): boolean
```

Checks if the app exists.

#### Parameters

<ResponseField name={"app"} type={"string"} required />

#### Returns

`boolean`

### open()

```typescript
open(url: undefined | null | string, focusPolicy: FocusPolicy, visibility: Visibility, waitForLoadComplete: boolean): Instance
```

Opens or switches to an application. If a URL is provided, the URL is
opened with the specified app.

`focus_policy` controls whether the app is allowed to become
active/frontmost. Some applications (e.g. Chrome, Notes) ignore this
request and steal focus regardless.

`visibility` controls whether the app is launched hidden or shown.
Some applications (e.g. Chrome and other Chromium/Electron apps) ignore
the hidden flag and launch visibly, potentially stealing focus. In that
case the app is hidden explicitly after launch.

When `wait_for_load_complete` is true, this blocks for a short, fixed
delay to allow the app or URL to become responsive before returning.

#### Parameters

<ResponseField name={"url"} type={"undefined | null | string"} required />

<ResponseField name={"focusPolicy"} type={"FocusPolicy"} required />

<ResponseField name={"visibility"} type={"Visibility"} required />

<ResponseField name={"waitForLoadComplete"} type={"boolean"} required />

#### Returns

`Instance`
