# ThreadRuntime
URL: /docs/api-reference/runtimes/thread-runtime
Runtime for thread state, messages, and viewport management.
`useAui` (Thread Actions) \[#useaui-thread-actions]
Access thread actions via `useAui`:
```tsx
import { useAui } from "@assistant-ui/react";
const aui = useAui();
aui.thread().cancelRun();
aui.thread().append({ role: "user", content: [{ type: "text", text: "Hello" }] });
```
`useAuiState` (Thread State) \[#useauistate-thread-state]
Access the thread state reactively:
```tsx
import { useAuiState } from "@assistant-ui/react";
const isRunning = useAuiState((s) => s.thread.isRunning);
const isLoading = useAuiState((s) => s.thread.isLoading);
const messages = useAuiState((s) => s.thread.messages);
```
`useThreadViewport` \[#usethreadviewport]
Manage thread viewport state (e.g., scrolling):
```tsx
import { useThreadViewport } from "@assistant-ui/react";
const threadViewport = useThreadViewport();
const isAtBottom = useThreadViewport((m) => m.isAtBottom);
```