# Quickstart
URL: /docs/runtimes/ag-ui/quickstart
Minimal HttpAgent + useAgUiRuntime setup against an AG-UI server.
Three steps to a working chat against an AG-UI agent. Assumes you have already installed the package and have an AG-UI server reachable; if not, start at [overview](/docs/runtimes/ag-ui).
### Wire up the runtime provider \[#wire-up-the-runtime-provider]
Create an `HttpAgent` pointing at your AG-UI endpoint and pass it to `useAgUiRuntime`:
```tsx title="app/MyRuntimeProvider.tsx"
"use client";
import { useMemo } from "react";
import { AssistantRuntimeProvider } from "@assistant-ui/react";
import { useAgUiRuntime } from "@assistant-ui/react-ag-ui";
import { HttpAgent } from "@ag-ui/client";
export function MyRuntimeProvider({
children,
}: {
children: React.ReactNode;
}) {
const agent = useMemo(
() =>
new HttpAgent({
url: "http://localhost:8000/agent",
}),
[],
);
const runtime = useAgUiRuntime({ agent });
return (
{children}
);
}
```
### Render the Thread \[#render-the-thread]
```tsx title="app/page.tsx"
import { Thread } from "@assistant-ui/react";
import { MyRuntimeProvider } from "./MyRuntimeProvider";
export default function Page() {
return (
);
}
```
### Set up UI components \[#set-up-ui-components]
Follow the [UI Components guide](/docs/ui/thread) to wire up the Thread, composer, and supporting primitives.
Once your AG-UI server is reachable, the runtime parses incoming events (`TEXT_MESSAGE_*`, `TOOL_CALL_*`, `STATE_SNAPSHOT`, etc.) into assistant-ui messages.
## Showing thinking and reasoning \[#showing-thinking-and-reasoning]
`showThinking` (default `true`) controls whether `THINKING_*` and `REASONING_*` events render as visible reasoning in the UI:
```tsx
const runtime = useAgUiRuntime({
agent,
showThinking: false, // hide thinking blocks
});
```
## Adding adapters \[#adding-adapters]
Attachments, speech, dictation, feedback, history, and a custom thread list are supported via the standard adapter slots. See [adapters](/docs/runtimes/concepts/adapters):
```tsx
const runtime = useAgUiRuntime({
agent,
adapters: { attachments, history, speech, feedback },
});
```
For multi-thread, pass `adapters.threadList` (experimental); see [runtime options](/docs/runtimes/ag-ui/runtime-options#thread-list-experimental).
## Next \[#next]