# StreamlitCallbackHandler

> **Function** in `langchain_classic`

📖 [View in docs](https://reference.langchain.com/python/langchain-classic/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.
expand_new_thoughts
    Each LLM "thought" gets its own `st.expander`. This param controls whether that
    expander is expanded by default.
collapse_completed_thoughts
    If `True`, LLM thought expanders will be collapsed when completed.
thought_labeler
    An optional custom LLMThoughtLabeler instance. If unspecified, the handler
    will use the default thought labeling logic.

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: LLMThoughtLabeler | None = None,
) -> BaseCallbackHandler
```

---

[View source on GitHub](https://github.com/langchain-ai/langchain/blob/51e954877efd2d2c3c5bf09364dcfec8794eadb0/libs/langchain/langchain_classic/callbacks/streamlit/__init__.py#L12)