# TerminalLaunchOptions Properties

- Package: [Aspire.Hosting](/reference/api/csharp/aspire.hosting.md)
- Type: [TerminalLaunchOptions](/reference/api/csharp/aspire.hosting/terminallaunchoptions.md)
- Kind: `Properties`
- Members: `8`

Describes the process, initial grid, and placement of a terminal created by [TerminalService](/reference/api/csharp/aspire.hosting/terminalservice.md).

<a id="arguments"></a>

## Arguments

- Name: `Arguments`
- Modifiers: `get; set`
- Returns: `IList<string>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/ApplicationModel/TerminalLaunchOptions.cs)

Gets or sets the arguments passed to [TerminalLaunchOptions.Executable](/reference/api/csharp/aspire.hosting/terminallaunchoptions/properties.md#executable).

```csharp
public IList<string> Arguments { get; set; }
```

## Exceptions

- `ArgumentNullException` -- `value` is `null`.

<a id="columns"></a>

## Columns

- Name: `Columns`
- Modifiers: `get; set`
- Returns: `int`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/ApplicationModel/TerminalLaunchOptions.cs)

Gets or sets the initial number of columns. Defaults to 80.

```csharp
public int Columns { get; set; }
```

## Exceptions

- `ArgumentOutOfRangeException` -- `value` is less than one.

## Remarks

The process starts with this grid and retains it while no viewer requests a resize. Dock and interaction dialog viewers resize the grid to fit their available space when shown.

<a id="environmentvariables"></a>

## EnvironmentVariables

- Name: `EnvironmentVariables`
- Modifiers: `get`
- Returns: `IDictionary<string, string>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/ApplicationModel/TerminalLaunchOptions.cs#L79)

Gets environment variables applied to the process on top of the AppHost's own environment.

```csharp
public IDictionary<string, string> EnvironmentVariables { get; }
```

## Remarks

The process inherits the AppHost's environment. Entries add or override variables without replacing the rest of that environment, so interactive workloads retain inherited `PATH`, `HOME`, and `TERM` values unless explicitly overridden.

<a id="executable"></a>

## Executable

- Name: `Executable`
- Modifiers: `get; set`
- Returns: `string`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/ApplicationModel/TerminalLaunchOptions.cs)

Gets or sets the executable to run. Resolved against `PATH` when not fully qualified.

```csharp
public string Executable { get; set; }
```

## Exceptions

- `ArgumentNullException` -- `value` is `null`.
- `ArgumentException` -- `value` is empty.

<a id="placement"></a>

## Placement

- Name: `Placement`
- Modifiers: `get; set`
- Returns: [TerminalPlacement](/reference/api/csharp/aspire.hosting/terminalplacement.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/ApplicationModel/TerminalLaunchOptions.cs)

Gets or sets where the terminal is displayed. Defaults to [TerminalPlacement.Dock](/reference/api/csharp/aspire.hosting/terminalplacement/fields.md).

```csharp
public TerminalPlacement Placement { get; set; }
```

## Remarks

AppHost-owned terminals support [TerminalPlacement.Dock](/reference/api/csharp/aspire.hosting/terminalplacement/fields.md), [TerminalPlacement.Dialog](/reference/api/csharp/aspire.hosting/terminalplacement/fields.md), and [TerminalPlacement.None](/reference/api/csharp/aspire.hosting/terminalplacement/fields.md). [TerminalPlacement.ResourceView](/reference/api/csharp/aspire.hosting/terminalplacement/fields.md) is reserved for terminals owned by resources and cannot be used when creating an AppHost-owned terminal.

<a id="rows"></a>

## Rows

- Name: `Rows`
- Modifiers: `get; set`
- Returns: `int`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/ApplicationModel/TerminalLaunchOptions.cs)

Gets or sets the initial number of rows. Defaults to 24.

```csharp
public int Rows { get; set; }
```

## Exceptions

- `ArgumentOutOfRangeException` -- `value` is less than one.

## Remarks

The process starts with this grid and retains it while no viewer requests a resize. Dock and interaction dialog viewers resize the grid to fit their available space when shown.

<a id="title"></a>

## Title

- Name: `Title`
- Modifiers: `get; set`
- Returns: `string`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/ApplicationModel/TerminalLaunchOptions.cs)

Gets or sets the title shown on the terminal's dock tab, and in the title bar when the terminal is detached into its own window.

```csharp
public string Title { get; set; }
```

## Remarks

The title must not be empty or consist only of white-space characters.

<a id="workingdirectory"></a>

## WorkingDirectory

- Name: `WorkingDirectory`
- Modifiers: `nullable` `get; set`
- Returns: `string?`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/ApplicationModel/TerminalLaunchOptions.cs)

Gets or sets the working directory the process starts in. Defaults to the AppHost's working directory.

```csharp
public string? WorkingDirectory { get; set; }
```
