# Persistence Adapters
URL: /docs/api-reference/adapters/persistence

Persist message history and thread lists.

assistant-ui has two persistence layers:

* `ThreadHistoryAdapter` persists messages for a single runtime thread.
* `RemoteThreadListAdapter` manages a backend-backed list of threads, including creating, loading, archiving, deleting, and title generation.

## Thread History \[#thread-history]

```tsx
const runtime = useLocalRuntime(chatModelAdapter, {
  adapters: {
    history: myHistoryAdapter,
  },
});
```

Use a history adapter when the app has one active thread or when thread list management lives somewhere else.

## Remote Thread Lists \[#remote-thread-lists]

```tsx
const runtime = useRemoteThreadListRuntime({
  adapter: myRemoteThreadListAdapter,
  runtimeHook: () => useLocalRuntime(chatModelAdapter),
});
```

Use a remote thread list adapter when your backend owns conversation metadata and users can switch between many threads.

Assistant Cloud provides managed persistence through `AssistantCloud` and cloud runtime helpers. See [Threads](/docs/runtimes/concepts/threads) for the full threading model.
