st-annotated-text
A simple component to display annotated text in Streamlit apps.
Decision gist · record as of 2026-08-14
Yes, if you're building a Streamlit app that needs to display annotated or labeled text. Low install friction, no security issues, and permissive license make it straightforward. Dormant maintenance is not a blocker for a stable, single-purpose component; verify color customization and rendering work with your Streamlit version.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Designed for use within Streamlit applications; requires Streamlit to be installed separately.
- Low friction: pure Python wheel with a single runtime dependency (htbuilder).
- Dormant maintenance status—last commit January 2025—but stable and suitable for a single-purpose component.
License · maintenance · safety
Apache 2 (permissive) — Apache 2 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
last release 2025-01-23 (568 days) · last repo commit 2025-01-23 · 567 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 301,592 downloads/mo, #7,834 on PyPI
Alternatives
Verify before relying
pip install st-annotated-text
from st_annotated_text import annotated_text
annotated_text(
"This ",
("is", "verb"),
" some ",
("annotated", "adj"),
("text", "noun")
)- Whether background and foreground color customization works reliably across Streamlit versions
- Performance characteristics with large annotated text blocks or many annotations
- Integration requirements and compatibility with current Streamlit releases
What it is and what it does
st-annotated-text is a Streamlit component that renders text with inline annotations—labels, highlights, or custom styling applied to specific words or phrases. It wraps htbuilder to generate HTML markup and integrates into Streamlit apps via the annotated_text() function.
You pass the function a mix of plain strings and tuples; each tuple contains text to annotate plus a label, and optionally CSS color strings for background and foreground. The component renders the result as styled HTML in your UI. It's designed for scenarios where you need to highlight and label portions of text inline without building custom HTML yourself.
Use it for
- Display named entity recognition results with entity type labels on extracted text
- Highlight parts of speech or grammatical annotations in linguistic analysis tools
- Show sentiment or topic labels on text passages in data exploration dashboards
- Visualize text classification predictions with category labels
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you're building a Streamlit app that needs to display annotated or labeled text.
Low install friction, no security issues, and permissive license make it straightforward. Dormant maintenance is not a blocker for a stable, single-purpose component; verify color customization and rendering work with your Streamlit version.
Install
st-annotated-text on PyPI
Before you install
Low friction: pure Python wheel with a single runtime dependency (htbuilder). Dormant maintenance status—last commit January 2025—but stable and suitable for a single-purpose component.
Designed for use within Streamlit applications; requires Streamlit to be installed separately.
License in practice
Apache 2 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install st-annotated-text
from st_annotated_text import annotated_text
annotated_text(
"This ",
("is", "verb"),
" some ",
("annotated", "adj"),
("text", "noun")
)
Verify before relying
- Whether background and foreground color customization works reliably across Streamlit versions
- Performance characteristics with large annotated text blocks or many annotations
- Integration requirements and compatibility with current Streamlit releases
Package facts
| License | Apache 2 permissive |
| Python support | Supports the current Python release >=3.5 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagehtbuilder |
| Maintenance | Dormant 568 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 301,592 / month, #7,834 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: st_annotated_text-4.0.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “streamlit text annotation”
- st-annotated-textDisplays annotated text with labels and optional styling in Streamlit…
- streamlit-pdf-viewerStreamlit component that renders PDF documents in web applications…
- streamlit-image-coordinatesA Streamlit component that displays an image and captures pixel…
Give your agent the search over MCP, or paste the wish link into any chat.
More HTML packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Beautiful Soup parses HTML and XML documents into a navigable tree, providing Pythonic methods to search, iterate, and modify the parsed content.
Install it if you need to parse or extract data from markup documents.
lxml provides Python bindings to libxml2 and libxslt, enabling parsing, validation, and transformation of XML and HTML documents through an ElementTree-compatible API with support for XPath, XSLT, and schema validation.
Install it if you need robust XML/HTML parsing, validation, or transformation; avoid it only if you must stay pure-Python and can accept slower performance.
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
Converts Markdown text to HTML using a Python implementation of John Gruber's Markdown specification, with support for extensions.
Install it if you need to parse Markdown in Python.
See also streamlit-ace · streamlit-pdf-viewer · streamlit-pdf · streamlit-code-editor · streamlit-feedback · st-theme · streamlit-embedcode · streamlit-quill · streamlit-avatar · annotated-doc