Feature matrix
September 10, 2026 · View on GitHub
What ships out of the box for each entry point. The core (@useago/sdk)
APIs are usable from any framework; the framework columns mark where a more
idiomatic binding (hook / composable / service / component) is also provided.
| Feature | Core (vanilla) | React | Vue | Angular |
|---|---|---|---|---|
| Create client | new AgoClient() | useAgo / <AgoProvider> | AgoPlugin / useAgo | provideAgo / AgoService |
| Zero-config auto-detect | ✅ createAgo() | ✅ | ✅ | ✅ |
| Send message (streaming) | ✅ | ✅ useChat/useMessages | ✅ useChat/useMessages | ✅ AgoService.sendMessage |
| Stop generation | ✅ client.stop() | ✅ stop from useChat/useMessages | ✅ stop from useChat/useMessages | ✅ AgoService.stop |
| File attachments | ✅ | ✅ | ✅ | ✅ |
| Audio transcription | ✅ transcribeAudio | ➖ core API | ➖ core API | ✅ AgoService.transcribeAudio |
| Dictation UI with live waveform | ✅ widget speechToText: true | ✅ ChatWidget, ChatInput, SpeechToTextButton | ➖ vanilla widget | ➖ vanilla widget |
| List / load conversations | ✅ | ✅ useConversation | ✅ useConversation | ✅ AgoService |
| All-in-one chat state | — | ✅ useChat | ✅ useChat | ➖ compose manually |
Pre-built <ChatWidget> UI | — | ✅ | ➖ see example | — |
Markdown / <Message> / <ChatInput> | — | ✅ | — | — |
| Client-side functions | ✅ registerFunction | ✅ useAgoFunction | ✅ useAgoFunction | ✅ AgoService |
defineFunction / withHandler | ✅ | ✅ | ✅ | ✅ |
Pre-built helpers (showToast, …) | ✅ | ✅ helpers prop | ✅ | ✅ |
| Navigation function | ✅ registerNavigationFunction | ✅ useAgoNavigation | ✅ useAgoNavigation | ✅ AgoService |
| Page state function | ✅ registerPageStateFunction | ✅ useAgoPageState | ✅ useAgoPageState | ✅ AgoService |
| Auto-continue after navigation | ✅ attachAutoContinueAfterNavigation | ✅ useAgoAutoContinueAfterNavigation | ➖ core API | ✅ enableAutoContinueAfterNavigation |
| Client context | ✅ setContext / addDynamicContext | ✅ useAgoContext | ✅ core API | ✅ core API |
| Auto page context | ✅ enableAutoPageContext() | ✅ pageContext="auto" | ✅ core API | ✅ core API |
| JS errors as context | ✅ errorWatcher: true / reportError | ✅ errorWatcher prop | ✅ plugin option | ✅ provideAgo option |
Events (on/off/once/waitFor) | ✅ | ✅ (via client) | ✅ useAgoEvents | ✅ messages$ Observables |
| Streaming helpers / async generator | ✅ | ✅ | ✅ | ✅ |
| Tool calls (form/confirm/reject) | ✅ | ✅ | ✅ | ✅ AgoService |
| Message feedback (thumbs + reasons + comment) | ✅ submitFeedback | ✅ useFeedback / <MessageFeedback> | ✅ useFeedback | ✅ AgoService |
| Conversation feedback | ✅ submitConversationFeedback | ✅ useFeedback | ✅ useFeedback | ✅ AgoService |
| Feedback UI in the chat | ✅ feedback: true (widget) | ✅ <ChatWidget feedback /> | ➖ core API | ➖ core API |
| Observable store | ✅ createStore | ✅ useAgoStore | ✅ useAgoStore | ➖ core API |
| Dev panel / devtools | ✅ initDevPanel (/devtools) | ✅ | ✅ | ✅ |
| Testing mock client | ✅ createMockClient | ✅ | ✅ | ✅ |
Legend: ✅ first-class binding · ➖ supported via the core API, no dedicated sugar · — not applicable.
Guides per stack
| Stack | Guide |
|---|---|
| Plain JavaScript / TypeScript | Core |
| React | React |
| Vue 3 | Vue |
| Angular | Angular |
Embeddable widget (<script>) | Widget |