# StreamlitCallbackHandler

> **Function** in `langchain_community`

📖 [View in docs](https://reference.langchain.com/python/langchain-community/callbacks/streamlit/StreamlitCallbackHandler)

Callback Handler that writes to a Streamlit app.

This CallbackHandler is geared towards
use with a LangChain Agent; it displays the Agent's LLM and tool-usage "thoughts"
inside a series of Streamlit expanders.

Parameters
----------
parent_container
    The `st.container` that will contain all the Streamlit elements that the
    Handler creates.
max_thought_containers
    The max number of completed LLM thought containers to show at once. When this
    threshold is reached, a new thought will cause the oldest thoughts to be
    collapsed into a "History" expander. Defaults to 4.
expand_new_thoughts
    Each LLM "thought" gets its own `st.expander`. This param controls whether that
    expander is expanded by default. Defaults to True.
collapse_completed_thoughts
    If True, LLM thought expanders will be collapsed when completed.
    Defaults to True.
thought_labeler
    An optional custom LLMThoughtLabeler instance. If unspecified, the handler
    will use the default thought labeling logic. Defaults to None.

Returns
-------
A new StreamlitCallbackHandler instance.

Note that this is an "auto-updating" API: if the installed version of Streamlit
has a more recent StreamlitCallbackHandler implementation, an instance of that class
will be used.

## Signature

```python
StreamlitCallbackHandler(
    parent_container: DeltaGenerator,
    *,
    max_thought_containers: int = 4,
    expand_new_thoughts: bool = True,
    collapse_completed_thoughts: bool = True,
    thought_labeler: Optional[LLMThoughtLabeler] = None,
) -> BaseCallbackHandler
```

---

[View source on GitHub](https://github.com/langchain-ai/langchain-community/blob/a6a6079511ac8a5c1293337f88096b8641562e77/libs/community/langchain_community/callbacks/streamlit/__init__.py#L18)