# TerminalInteractionOptions Properties

- Package: [Aspire.Hosting](/reference/api/csharp/aspire.hosting.md)
- Type: [TerminalInteractionOptions](/reference/api/csharp/aspire.hosting/terminalinteractionoptions.md)
- Kind: `Properties`
- Members: `2`

Options for displaying a caller-owned terminal in an interaction dialog.

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

## Title

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

Gets or sets the optional dialog title. No title is displayed by default.

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

<a id="work"></a>

## Work

- Name: `Work`
- Modifiers: `nullable` `get; set`
- Returns: `Func<TerminalContext, Task>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.Hosting/IInteractionService.cs)

Gets or sets optional asynchronous work to run while the terminal dialog is displayed.

```csharp
public Func<TerminalContext, Task>? Work { get; set; }
```

## Remarks

Successful completion closes the dialog. User or external cancellation signals [TerminalContext.CancellationToken](/reference/api/csharp/aspire.hosting/terminalcontext/properties.md#cancellationtoken) and the prompt waits for the callback to finish. Exceptions propagate from [IInteractionService.PromptTerminalAsync(string, AspireTerminal, TerminalInteractionOptions?, CancellationToken)](/reference/api/csharp/aspire.hosting/iinteractionservice/methods.md#promptterminalasync-string-aspireterminal-terminalinteractionoptions-cancellationtoken) after the dialog is removed. Without work, the dialog waits for explicit completion or cancellation, not for terminal process exit. Neither work completion nor cancellation disposes the caller-owned terminal.
