# 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); ```