# ctx.userInteraction `UserInteractionService` — provided by `@deepseek-ai/dsh-user-interaction`. `ctx.userInteraction`: one active UI provider plus an `ask()` surface. [Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/ui/user-interaction/src/index.ts#L82) ### ctx.userInteraction.registerProvider(provider) ```ts website-api registerProvider(provider: UserInteractionProvider): () => void ``` Register the UI provider. Only one provider may be active in a context. - `provider` — UI-side implementation that collects answers. **Returns** Disposer that unregisters this provider. [Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/ui/user-interaction/src/index.ts#L95) ### ctx.userInteraction.ask(request) ```ts website-api async ask(request: AskUserQuestionRequest): Promise ``` Ask the active UI provider and wait for the user's answer. - `request` — Questions, owner agent, and abort signal. **Returns** The answer chosen or typed by the human. [Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/ui/user-interaction/src/index.ts#L114)