# @assistant-ui/store

> Tap-based state management for @assistant-ui

Latest version **0.3.18** (published 2026-10-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install @assistant-ui/store
pnpm add @assistant-ui/store
yarn add @assistant-ui/store
bun add @assistant-ui/store
```

## Health

**Score 60/100 (C)** — status: active.

Positive: no vulnerabilities; recently updated; high maintenance score; popular repo.

Warnings: low downloads; no types; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.3.18 |
| Published | 2026-10-09 |
| First published | 2025-11-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 12415 |
| Author | AgentbaseAI Inc. |
| Maintainers | yonom, okisdev, agentbase-bot |
| Keywords | state-management, store, tap, assistant-ui, react |

## Links

- npm: https://www.npmjs.com/package/@assistant-ui/store
- Repository: https://github.com/assistant-ui/assistant-ui
- Homepage: https://www.assistant-ui.com/
- Issues: https://github.com/assistant-ui/assistant-ui/issues
- npm.io page: https://npm.io/package/@assistant-ui/store

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 0.3.18 (latest) — 2026-10-09
- 0.3.17 — 2026-10-06
- 0.3.16 — 2026-10-02
- 0.3.15 — 2026-09-24
- 0.3.14 — 2026-09-18
- 0.3.13 — 2026-09-11
- 0.3.12 — 2026-09-03
- 0.3.11 — 2026-08-27
- 0.3.10 — 2026-08-18
- 0.3.9 — 2026-08-12
- 0.3.8 — 2026-08-08
- 0.3.7 — 2026-08-08
- 0.3.5 — 2026-08-06
- 0.3.6 — 2026-08-06
- 0.3.4 — 2026-08-06
- … 38 more at https://npm.io/package/@assistant-ui/store/versions

## README

# `@assistant-ui/store`

[![npm version](https://img.shields.io/npm/v/@assistant-ui/store)](https://www.npmjs.com/package/@assistant-ui/store)
[![GitHub stars](https://img.shields.io/github/stars/assistant-ui/assistant-ui)](https://github.com/assistant-ui/assistant-ui)

Tap-based state container with React Context integration. Bridges `@assistant-ui/tap` resources into React via `useAui`, `useAuiState`, `AuiConfig`, and `<AuiProvider>`.

`store` powers the runtime layer of assistant-ui. Most users do not install it directly; reach for `@assistant-ui/react` instead.

## Framework-neutral entry

`@assistant-ui/store/client` exposes `createAssistantClient`, which builds the same client inside a standalone tap root with no React renderer. Non-React bindings consume the store through this entry; react-less consumers additionally alias `react` to `@assistant-ui/tap/standalone-shim` in their bundler. The `react` peer dependency is optional for exactly this configuration.

## Installation

```bash
npm install @assistant-ui/store @assistant-ui/tap
```

## Usage

```typescript
import { resource } from "@assistant-ui/tap";
import { useState } from "react";
import {
  useAui,
  useAuiState,
  AuiProvider,
  AuiConfig,
  type ClientOutput,
} from "@assistant-ui/store";

declare module "@assistant-ui/store" {
  interface ScopeRegistry {
    counter: {
      methods: {
        getState: () => { count: number };
        increment: () => void;
      };
    };
  }
}

const useCounterClient = (): ClientOutput<"counter"> => {
  const [state, setState] = useState({ count: 0 });
  return {
    getState: () => state,
    increment: () => setState({ count: state.count + 1 }),
  };
};

const CounterClient = resource(useCounterClient);

function App() {
  const config = AuiConfig({ counter: CounterClient() });
  return (
    <AuiProvider config={config}>
      <Counter />
    </AuiProvider>
  );
}

function Counter() {
  const count = useAuiState((s) => s.counter.count);
  const aui = useAui();
  return <button onClick={() => aui.counter().increment()}>{count}</button>;
}
```

Full API reference (clients, derived clients, events, `useClientLookup`, `useClientList`) at [assistant-ui.com/docs/store/api-reference](https://www.assistant-ui.com/docs/store/api-reference).

---
_Source: https://npm.io/package/@assistant-ui/store · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
