@tanstack/ai-event-client has 442,070 recorded weekly downloads on npm, an increase of 30.9% over the past 30 days, ranking #266 of 2,256 tracked listings.
About @tanstack/ai-event-client
@tanstack/ai-event-client
Typed event client for TanStack AI devtools, observability, and streamed runtime events.
Every TanStack AI activity, middleware, and client emits its lifecycle on one shared event bus, aiEventClient. The devtools panel reads it, and so can you: subscribe to see runs start and finish, tools get called, or memory get recalled, without touching the code that produces them. The bus is a single instance per runtime (stored on globalThis), so the core, the client packages, and your own code all see the same events.
This package is a dependency of @tanstack/ai, @tanstack/ai-client, @tanstack/ai-devtools, and @tanstack/ai-memory; you usually get it transitively.
Installation
Usage
aiEventClient.on(eventName, handler) returns an unsubscribe function. Event names and payloads are typed through AIDevtoolsEventMap, so the handler's event.payload is narrowed to the event you subscribed to.
For example, memoryMiddleware emits memory:retrieve:started / memory:retrieve:completed around every recall and memory:persist:started / memory:persist:completed around every save, with memory:error when an adapter throws; see Operating memory.
Event groups
Names are group:subject or group:subject:phase. The groups on AIDevtoolsEventMap:
| Group | Events |
| run:* | created, started, updated, completed, errored, cancelled | | text:* | request:started / request:completed, message:created / message:user, chunk:* (content, tool-call, tool-result, thinking, done, error), iteration:started / iteration:completed, usage | | tools:* | registered, input:available, call:updated, call:completed, result:added, approval:requested / approval:responded | | structured-output:* | started, updated, completed, errored | | image:, video:, summarize:, rerank:, evaluate:* | request:started, request:completed, usage | | speech:, audio:, transcription:, voice:, world:, liveVideo:, embedding:* | request:started, request:completed, request:error, usage | | middleware:* | hook:executed, config:transformed, chunk:transformed | | memory:* | retrieve:started / retrieve:completed, persist:started / persist:completed, error, snapshot | | compaction:, skills: | compaction:started / state / ended / applied; skills:snapshot | | hook:, client: | hook:registered / updated / unregistered / state-snapshot; client:created / loading:changed / error:changed / messages:cleared / reloaded / stopped | | devtools:* | opened, closed, request-state, tool-fixture:apply / tool-fixture:applied |
Envelope helpers
Events carry a common envelope — eventId, eventType, timestamp, source (client | server | devtools), visibility, and optional correlation ids such as runId, threadId, messageId, toolCallId. The package exports the helpers the emitters use to build and dedupe it:
• createAIDevtoolsEventEnvelope(input) — fills in eventId and runtimeId when absent • getAIDevtoolsDedupeKey(event) — stable key for an event: its eventId when present. Without one it falls back to source, eventType, visibility, the correlation ids, and the timestamp bucketed to one second — so two otherwise identical events in the same second share a key. Supply an eventId when distinct events must stay distinct. • getAIDevtoolsRuntimeId() — the id of the current runtime instance
License
MIT
Description from the npm listing.
- ai
- ai-sdk
- typescript
- tanstack
- events
- devtools
- observability
- streaming
- chat
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (121)Similar npm AI SDKs plugins
All 20 @tanstack/ai-event-client alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/@tanstack/ai-event-client. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.