React Hooks
The @tambo-ai/react
npm package provides hooks that expose state values and functions to make building AI apps with Tambo simple.
Here you'll find a description of each state value and function, organized by hook.
useTamboRegistry
This hook provides helpers for component and tool registration.
registerComponent
const { registerComponent } = useTamboRegistry()
This function is used to register components with Tambo, allowing them to be potentially used in Tambo's responses.
registerTool
const { registerTool } = useTamboRegistry()
This function is used to register tools with Tambo.
registerTools
const { registerTools } = useTamboRegistry()
This function allows registering multiple tools at once.
addToolAssociation
const { addToolAssociation } = useTamboRegistry()
This function creates an association between components and tools.
componentList
const { componentList } = useTamboRegistry()
This value provides access to the list of registered components.
toolRegistry
const { toolRegistry } = useTamboRegistry()
This value provides access to the registry of all registered tools.
componentToolAssociations
const { componentToolAssociations } = useTamboRegistry()
This value provides access to the associations between components and tools.
useTamboThread
This hook provides access to the current thread and functions for managing thread interactions.
thread
const { thread } = useTamboThread()
The current thread object containing messages and metadata. Messages can be accessed via thread.messages
. This value is kept up-to-date automatically by Tambo when messages are sent or received.
sendThreadMessage
const { sendThreadMessage } = useTamboThread()
Function to send a user message to Tambo and receive a response. A call to this function will update the provided thread
state value.
To have the response streamed, use sendThreadMessage(message, {streamResponse: true})
.
generationStage
const { generationStage } = useTamboThread()
Current stage of message generation. Possible values are:
IDLE
: The thread is not currently generating any response (Initial stage)CHOOSING_COMPONENT
: Tambo is determining which component to use for the responseFETCHING_CONTEXT
: Gathering necessary context for the response by calling a registered toolHYDRATING_COMPONENT
: Generating the props for a chosen componentSTREAMING_RESPONSE
: Actively streaming the responseCOMPLETE
: Generation process has finished successfullyERROR
: An error occurred during the generation process
inputValue
const { inputValue } = useTamboThread()
Current value of the thread input field.
generationStatusMessage
const { generationStatusMessage } = useTamboThread()
Status message describing the current generation state, as generated by Tambo.
isIdle
const { isIdle } = useTamboThread()
Boolean indicating whether the thread is in an idle state (generationStage
is IDLE
, COMPLETE
, or ERROR
).
switchCurrentThread
const { switchCurrentThread } = useTamboThread()
Function to change the active thread by id. This will update the thread
state value to the fetched thread.
addThreadMessage
const { addThreadMessage } = useTamboThread()
Function to append a new message to the thread.
updateThreadMessage
const { updateThreadMessage } = useTamboThread()
Function to modify an existing thread message.
setLastThreadStatus
const { setLastThreadStatus } = useTamboThread()
Function to update the status of the most recent thread message.
setInputValue
const { setInputValue } = useTamboThread()
Function to update the input field value.
useTamboThreads
This hook provides access to the list of all threads for a project and their loading states.
data
const { data } = useTamboThreads()
Array of threads or null if not yet loaded.
isPending
const { isPending } = useTamboThreads()
Boolean indicating if threads are currently being fetched.
isSuccess
const { isSuccess } = useTamboThreads()
Boolean indicating if threads were successfully fetched.
isError
const { isError } = useTamboThreads()
Boolean indicating if an error occurred while fetching threads.
error
const { error } = useTamboThreads()
Error object containing details if the fetch failed.
useTamboThreadInput
This hook provides utilities for building an input interface that sends messages to Tambo.
value
const { value } = useTamboThreadInput()
Current value of the input field.
setValue
const { setValue } = useTamboThreadInput()
Function to update the input field value.
submit
const { submit } = useTamboThreadInput()
Function to submit the current input value, with optional context and streaming configuration.
isPending
const { isPending } = useTamboThreadInput()
Boolean indicating if a submission is in progress.
isSuccess
const { isSuccess } = useTamboThreadInput()
Boolean indicating if the last submission was successful.
isError
const { isError } = useTamboThreadInput()
Boolean indicating if the last submission failed.
error
const { error } = useTamboThreadInput()
Error object containing details if the submission failed.
useTamboSuggestions
This hook provides utilities for managing AI-generated message suggestions.
suggestions
const { suggestions } = useTamboSuggestions()
List of available AI-generated suggestions for the next message.
selectedSuggestionId
const { selectedSuggestionId } = useTamboSuggestions()
ID of the currently selected suggestion.
accept
const { accept } = useTamboSuggestions()
Function to accept and apply a suggestion, with an option for automatic submission.
acceptResult
const { acceptResult } = useTamboSuggestions()
Detailed mutation result for accepting a suggestion.
generateResult
const { generateResult } = useTamboSuggestions()
Detailed mutation result for generating new suggestions.
isPending
const { isPending } = useTamboSuggestions()
Boolean indicating if a suggestion operation is in progress.
isSuccess
const { isSuccess } = useTamboSuggestions()
Boolean indicating if the last operation was successful.
isError
const { isError } = useTamboSuggestions()
Boolean indicating if the last operation resulted in an error.
error
const { error } = useTamboSuggestions()
Error object containing details if the operation failed.
useTamboClient
This hook provides direct access to the Tambo client instance.
client
const { client } = useTamboClient()
The Tambo client instance for direct API access.
useTamboComponentState
This hook is similar to React's useState
, but allows Tambo to see the state values to help respond to later messages.
const [myValue, setMyValue] = useTamboComponentState()
value and setValue
const { value } = useTamboComponentState()
Current state value stored in the thread message for the given key.
setValue
const { setValue } = useTamboComponentState()
Function to update the state value, synchronizing both local state and server state.