tool-calls messages that your frontend can handle.
+model.tools array and subscribe to clientMessages: ['tool-calls'].
+3. Listen for message.type === 'tool-calls' and perform the desired UI update. No response is sent back to the model.
+4. (Optional) Inject context mid-call using vapi.addMessage(...).
+
+## Complete example (React + Web SDK)
+
+```tsx
+import Vapi from '@vapi-ai/web';
+import { useCallback, useState } from 'react';
+
+const vapi = new Vapi('+ Start a call and ask the assistant to trigger UI updates +
+ +addMessage to provide extra context mid-call. This does not return results for a tool; it adds messages the model can see.
+
+```ts
+// Inject system-level context
+vapi.addMessage({
+ role: 'system',
+ content: 'Context: userId=123, plan=premium, theme=dark',
+});
+
+// Inject a user message
+vapi.addMessage({
+ role: 'user',
+ content: 'FYI: I switched to the settings tab.',
+});
+```
+
+clientMessages: ['tool-calls'] and handle message.type === 'tool-calls'.
+- **Add context**: Use vapi.addMessage to inject data mid-call.
+
+## Next steps
+
+- **Server-based tools**: Learn how to return results back to the model with Custom Tools.
+- **API reference**: See Tools API for full configuration options.